将SpringBoot项目改造成dubbo项目

需求

  • 导入所需要的依赖环境
  • 抽取出公共的api接口,以及接口需要的实体类
  • 将模块根据需求修改成提供者和消费者

依赖环境

         <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </dependency>

项目结构

在这里插入图片描述
如上图所示,common里面是工具类,service里面是各个服务模块,我要将模块中httpClient的调用方式修改成dubbo的Rpc调用方式。

构建api模块

在这里插入图片描述
如上图所示,我们只需要将service下对应的模块在api中再创建一遍,但是此时api模块下只有api接口和实体类。这个api接口就是,httpclient方式中被访问的接口。
至于为什么要api中重新创建一下各个模块呢?因为我已经踩过坑了,一开始呢,我并没有抽取api接口中的实体类,而且api的接口都是写到一个下面的,如下图所示。
在这里插入图片描述
这样写会造成什么循环依赖的问题,而且各个模块如果只需要调用其中一个接口,那么它就得把所有的接口都引入。所以,需要将service下面的各个模块在api中都创建一遍,并且api模块下只有Interface(接口)和entity(实体类)。

provider和consumer的创建

我们只需要在接口上添加@DubboService注解就可以了,如下图所示。
在这里插入图片描述
最关键的是,provider的配置文件,因为我service的各个模块都是依赖common模块的,所以我将各个配置都写到了common下的模块。

#dubbo 配置信息
dubbo.consumer.version=1.0.0         
dubbo.consumer.scope=remote    
dubbo.consumer.check=false
dubbo.reference.check=false
dubbo.registry.check=false
dubbo.consumer.retries=1
dubbo.consumer.init=true
dubbo.consumer.timeout=5000
dubbo.registry.simplified=true
dubbo.registry.address=127.0.0.1:2181
dubbo.registry.protocol=zookeeper
dubbo.protocol.port=-1
dubbo.protocol.payload=100000000
dubbo.protocol.name=dubbo
dubbo.provider.group=test
dubbo.provider.version=1.0.0
dubbo.provider.scope=remote
dubbo.provider.check=false
dubbo.provider.timeout=5000

我是将provider和consumer所需要的公共配置在了common的配置文件中,然后在privoder中只需要配置

dubbo.application.name=  banzhuanren
spring.dubbo.scan= cn.banzhaunren.service

下面是consumer,consumer调用提供者只需要添加一个 @DubboReference如下图
在这里插入图片描述
同样在consumer中配置文件中添加这两个配置就可以了

dubbo.application.name=  banzhuanren
spring.dubbo.scan= cn.banzhaunren.service
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值