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

相关文章
相关标签/搜索