国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Dubbo學習筆記

BlackHole1 / 3156人閱讀

摘要:學習筆記的設計目的動態注冊發現服務,軟負載均衡和服務降級。一下是整個工程的內容公共定義一般和共享的接口應該多帶帶一個包進行定義,方便雙方的共享。暴露的服務實現如下入口類的實現如下實現其文件和類似其配置如下,聲明了對服務的引用。

Dubbo學習筆記 Dubbo的設計目的

動態注冊、發現服務,軟負載均衡和服務降級。

描述服務依賴關系,描述整體服務架構。

統計服務負載,按需擴展容量。

簡單實例

該實例參考官方實例,有所修改。

整個項目結構:

dubbo-hello
.
├── dubbo-hello-api
│?? ├── pom.xml
│?? ├── src
│?? │?? ├── main
│?? │?? │?? ├── java
│?? │?? │?? │?? └── com
│?? │?? │?? │??     └── tc
│?? │?? │?? │??         └── dubbo
│?? │?? │?? │??             └── hello
│?? │?? │?? │??                 └── HelloService.java
│?? │?? │?? └── resources
│?? │?? └── test
│?? │??     └── java
│?? └── target
│
├── dubbo-hello-consumer
│?? ├── pom.xml
│?? ├── src
│?? │?? ├── main
│?? │?? │?? ├── java
│?? │?? │?? │?? └── com
│?? │?? │?? │??     └── tc
│?? │?? │?? │??         └── dubbo
│?? │?? │?? │??             └── hello
│?? │?? │?? │??                 └── consumer
│?? │?? │?? │??                     └── Consumer.java
│?? │?? │?? └── resources
│?? │?? │??     ├── META-INF
│?? │?? │??     │?? └── spring
│?? │?? │??     │??     └── dubbo-hello-consumer.xml
│?? │?? │??     ├── dubbo.properties
│?? │?? │??     └── log4j.properties
│?? │?? └── test
│?? │??     └── java
│?? └── target
│??    
├── dubbo-hello-provider
│?? ├── pom.xml
│?? ├── src
│?? │?? ├── main
│?? │?? │?? ├── java
│?? │?? │?? │?? └── com
│?? │?? │?? │??     └── tc
│?? │?? │?? │??         └── dubbo
│?? │?? │?? │??             └── hello
│?? │?? │?? │??                 └── provider
│?? │?? │?? │??                     ├── HelloServiceImpl.java
│?? │?? │?? │??                     └── Provider.java
│?? │?? │?? └── resources
│?? │?? │??     ├── META-INF
│?? │?? │??     │?? └── spring
│?? │?? │??     │??     └── dubbo-hello-provider.xml
│?? │?? │??     ├── dubbo.properties
│?? │?? │??     └── log4j.properties
│?? │?? └── test
│?? │??     └── java
│?? └── target
└── pom.xml

整個項目分為三個模塊,dubbo-hello-api、dubbo-hello-provider和dubbo-hello-consumer。一下是整個dubbo-hello工程的pom內容:



    4.0.0

    com.tc
    dubbo-hello
    1.0-SNAPSHOT
    pom

    ${project.artifactId}

    
        false
        UTF-8
        1.8
        1.8
    

    
        dubbo-hello-api
        dubbo-hello-provider
        dubbo-hello-consumer
    

公共API定義

一般Provider和Consumer共享的接口應該多帶帶一個包進行定義,方便雙方的共享。這里新建了模塊dubbo-hello-api來定義公共接口。其pom文件為基本配置,無特殊性,簡單定義接口HelloService如下:

package com.tc.dubbo.hello;

/**
 * Created by tianchi on 2018/3/14.
 */
public interface HelloService {
    String sayHello(String name);
}
Provider實現

服務提供者模塊dubbo-hello-provider的pom文件內容如下:



    
        dubbo-hello
        com.tc
        1.0-SNAPSHOT
    
    4.0.0

    dubbo-hello-provider
    jar
    ${project.artifactId}
    The demo provider module of dubbo project
    
        false
    

    
        
            com.tc
            dubbo-hello-api
            ${project.parent.version}
        

        
            com.alibaba
            dubbo
            2.6.0
        

    

    
        
            
                org.apache.maven.plugins
                maven-assembly-plugin
                2.3
                
                    false
                    
                        jar-with-dependencies
                    
                    
                        
                            com.tc.dubbo.hello.provider.Provider
                        
                    
                
                
                    
                        make-assembly
                        package
                        
                            assembly
                        
                    
                
            
        
    

其中聲明了對com.tc:dubbo-hello-api接口的依賴,還有對com.alibaba:dubbo的依賴。插件plugin聲明了采用加入依賴的打包方式,這樣方便直接運行。

在文件dubbo-hello-provider.xml中聲明了要暴露的服務:





    
    

    
    

    
    

    
    

    
    

其中說明了注冊方式為multicast,也即利用廣播,無注冊中心的方式。同時聲明了協議和端口號。

暴露的服務HelloServiceImpl實現如下:

package com.tc.dubbo.hello.provider;

import com.alibaba.dubbo.rpc.RpcContext;
import com.tc.dubbo.hello.HelloService;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by tianchi on 2018/3/14.
 */
public class HelloServiceImpl implements HelloService{
    public String sayHello(String name) {
        System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress());
        return "Hello " + name + ", response form provider: " + RpcContext.getContext().getLocalAddress();
    }
}

入口類Provider的實現如下:

package com.tc.dubbo.hello.provider;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by tianchi on 2018/3/14.
 */
public class Provider {

    public static void main(String[] args) throws Exception {
        //Prevent to get IPV6 address,this way only work in debug mode
        //But you can pass use -Djava.net.preferIPv4Stack=true,then it work well whether in debug mode or not
        System.setProperty("java.net.preferIPv4Stack", "true");
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-hello-provider.xml"});
        context.start();

        System.in.read(); // press any key to exit
    }

}
Consumer實現

其pom文件和Provider類似:



    
        dubbo-hello
        com.tc
        1.0-SNAPSHOT
    
    4.0.0

    dubbo-hello-consumer
    jar
    ${project.artifactId}
    The demo consumer module of dubbo project

    
        
            com.tc
            dubbo-hello-api
            ${project.parent.version}
        

        
            com.alibaba
            dubbo
            2.6.0
        

    

    
        
            
                org.apache.maven.plugins
                maven-assembly-plugin
                2.3
                
                    false
                    
                        jar-with-dependencies
                    
                    
                        
                            com.tc.dubbo.hello.consumer.Consumer
                        
                    
                
                
                    
                        make-assembly
                        package
                        
                            assembly
                        
                    
                
            
        
    

其dubbo-hello-consumer.xml配置如下,聲明了對服務的引用。




    
    

    
    

    
    

入口類Consumer實現如下:

package com.tc.dubbo.hello.consumer;

import com.tc.dubbo.hello.HelloService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by tianchi on 2018/3/14.
 */
public class Consumer {

    public static void main(String[] args) {
        //Prevent to get IPV6 address,this way only work in debug mode
        //But you can pass use -Djava.net.preferIPv4Stack=true,then it work well whether in debug mode or not
        System.setProperty("java.net.preferIPv4Stack", "true");
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-hello-consumer.xml"});
        context.start();
        HelloService helloService = (HelloService) context.getBean("helloService"); // get remote service proxy

        while (true) {
            try {
                Thread.sleep(1000);
                String hello = helloService.sayHello("world"); // call remote method
                System.out.println(hello); // get result

            } catch (Throwable throwable) {
                throwable.printStackTrace();
            }
        }

    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68864.html

相關文章

  • Dubbo學習筆記-思維導圖

    摘要:思維套圖系列說明性質筆記寫的時候沒打算給人看沒有相關知識一般看不明白除非對我特有興趣不然還是不要浪費時間看系列了目的在這里當云存儲用方便各端自己回看看不清點擊圖片查看原圖源文件 思維套圖系列說明 性質:筆記(寫的時候沒打算給人看,沒有相關知識一般看不明白,除非對我特有興趣,不然還是不要浪費時間看系列了) 目的:在這里當云存儲用,方便各端自己回看 看不清:點擊圖片->查看原圖 sho...

    neuSnail 評論0 收藏0
  • 跳槽季如何快速全面復習面試題

    摘要:排序算法和集合工具類排序算法和集合工具類。面試官總是問排序算法也不是在難為你,而是在考察你的編程功底。你首先要理解多線程不僅僅是和那么簡單,整個并發包下面的工具都是在為多線程服務。 去年的這個時候樓主通過兩個月的復習拿到了阿里巴巴的 offer,有一些運氣,也有一些心得,借著跳槽季來臨特此分享出來。簡單梳理一下我的復習思路,同時也希望和大家一起交流討論,一起學習,如果不對之處歡迎指正一...

    keke 評論0 收藏0
  • 近幾個月Github上最熱門的Java項目一覽

    摘要:今天逛了逛,順手精選出了一下近幾個月以來上最熱門的個項目。相關閱讀正式開源,幫助應用快速容器化未來可能會上熱門的項目地址介紹哈哈,皮一下很開心。這是我自己開源的一份文檔,目前仍在完善中,歡迎各位英雄好漢一起完善。 showImg(https://segmentfault.com/img/remote/1460000015766827?w=391&h=220);今天逛了逛Github,順...

    cyqian 評論0 收藏0
  • TCC 開源項目源碼學習(一)

    摘要:最終一致性通常使用消息機制來設計,其核心是消息的安全送達與消費。事務狀態,在的不通階段進行事務狀態的變更。除了,最近項目中還涉及了安全消息,等弄清楚了再來一發。 TCC 開源項目源碼學習(一) 學習TCC分布式事務的知識是使用了GIT上的一個開源項目,之前有簡單的看過一些,有了一個大概的了解,但是隨著時間的‘清洗’,又開始變得‘渾濁不清’了,這次索性把這份源碼從頭看了下,又把流程推演了...

    DTeam 評論0 收藏0
  • 從小白程序員一路晉升為大廠高級技術專家我看過哪些書籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術專家我看過哪些技術類書籍。 大家好,我是...

    sf_wangchong 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<