zoukankan      html  css  js  c++  java
  • springboot2.x纯注解整合dubbo

    springboot1.x和springboot2.x整合差距挺大的,基于最新的2.x进行整合,使用纯注解的方式

    依赖选取

    首先pom文件的依赖引入,maven仓库有Apachealibaba两个

    Dubbo早已孵化完成,破壳而出,成为Apache顶级项目,这里引用Apache的maven依赖

    框架搭建

    采用maven聚合项目,架构如图所示

    详细层级结构图

    api        公用的entity和service接口

    provider-log    log服务提供方

    provider-message  message服务提供方

    consumer       消费方

    引入依赖

    顶级pom.xml引入spring-boot-starter-parent,使用新版2.1.6.release

     三个聚合模块

        <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

  • 相关阅读:
    强大的js时间选择器 万年历
    js 锚点平滑定位
    php str_replace的替换漏洞
    绝对路径 相对路径 小结
    昨天去了长城
    [转载]71个做饭技巧好好记住了,不要忘记给自己做一顿美餐噢
    最近心情很糟,情绪很低落
    用javascript实现html页面之间的参数传递的四种方法
    解决ajax缓存问题
    [转载]30岁前男人需要完成的事
  • 原文地址:https://www.cnblogs.com/chywx/p/11180719.html
Copyright © 2011-2022 走看看