springboot2.x純註解整合dubbo

springboot1.x和springboot2.x整合差距挺大的,基於最新的2.x進行整合,使用純註解的方式git

依賴選取

首先pom文件的依賴引入,maven倉庫有Apachealibaba兩個github

Dubbo早已孵化完成,破殼而出,成爲Apache頂級項目,這裏引用Apache的maven依賴web

框架搭建

採用maven聚合項目,架構如圖所示spring

詳細層級結構圖apache

api        公用的entity和service接口api

provider-log    log服務提供方tomcat

provider-message  message服務提供方springboot

consumer       消費方架構

引入依賴

頂級pom.xml引入spring-boot-starter-parent,使用新版2.1.6.releaseapp

 三個聚合模塊

    <modules>
        <module>api</module>
        <module>provider-log</module>
        <module>provider-message</module>
    </modules>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

api模塊用於提供dubbo服務接口,因此將dubbo的依賴添加在api裏面,是有些不妥

api->pom.xml

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>2.7.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
            <type>pom</type>
        </dependency>

其他的三個工程,都是引入父工程依賴引入apispring-boot-starter-web可選,提供web服務的話加上,不提供服務能夠不加

    <parent>
        <groupId>com.chy.wx</groupId>
        <artifactId>spring-boot-dubbo</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <dependencies>

        <dependency>
            <groupId>com.chy.wx</groupId>
            <artifactId>sea-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

api添加兩個entity和兩個service,更有區分性

配置文件

兩個提供者provider,爲的是更有區分性,application配置,這裏採用yuml語法。

跟springboot1.x的區別是,dubbo單獨開頭,前面並無spring

server:
  port: 8081


dubbo:
  application:
    name: sea-provider-log
  registry:
    protocol: zookeeper
    address: 192.168.1.222:2181
  protocol:
    name: dubbo
    port: 20887
  version: 1.0.0
  scan:
    base-packages: com.log

 參數說明

  • dubbo.application.name       給provider起的名稱
  • dubbo.registry.address              表示註冊的地址,不必定非得是zookeeper
  • dubbo.protocol.name                就是dubbo
  • dubbo.protocol.port                   是註冊的端口號,多個提供者使用的port須要區分開來
  • dubbo.protocol.scan                 是表示掃描哪些包下面的服務
  • version是自定的一個版本屬性

 發佈的服務經過@Service註解,加載被掃描的實現類上面,這裏使用的是dubbo的註解

啓動類上面添加@EnableDubbo註解

測試發佈

命令操做查看

經過以下命令進入dubbo

telnet 192.168.1.222 21880

查看發佈的服務使用ls

以下表示ErrorLogService發佈成功,且版本爲1.0.0

更多命令查看 Telnet 命令參考手冊

web服務查看

感受不直觀能夠下載dubbo-admin監控工程,配置application.xml,以後啓動查看

release版本 https://github.com/apache/dubbo/releases 下載運行便可

或者下載我已經上傳的dubbo-admin.war包(博客園上傳限制爲10M)

百度雲

連接:https://pan.baidu.com/s/18QSZLySLj8az11ebQJvG1Q 

提取碼:2jgy 

CSDN

以爲慢快速下載地址:https://download.csdn.net/download/qq_37933127/10569470

war包放入tomcatwebapps目錄下,啓動會自動解壓

以後將application.xml修改爲本身的zookeeper地址便可

默認用戶名和密碼都爲root

啓動訪問便可,默認的根路徑爲文件夾的名字,訪問如圖所示便可以看詳細信息

 

web調用方使用@Reference註解便可,若是提供了版本號須要加版本號,以下所示

完整的dubbo-demo 

僅須要修改yml的zookeeper地址便可

https://github.com/chywx/spring-boot-dubbo

相關文章
相關標籤/搜索