dubbo 本地调试的三种方法

背景

在开发Dubbo服务时,可能是多个人同时开发,但是都公用一个Zookeeper注册中心,这时就会出现同一个服务会有多个提供者(如果每个开发者都运行了提供者服务),这时如果某个开发者通过消费者服务在调用提供者服务时,可能调到别的同事机器上了,此时无法进行调试。为了解决这个问题,dubbo 可以有三种方法来解决。

方法一

修改服务提供者和服务消费者的版本号,比如修改服务提供者需要本地调试的某个API的版本号

@Service(interfaceClass = CcbBankServiceApi.class,version = "0.0.2")

同时需要修改消费者此API的版本号

方法二

在启动本地的服务时加入全局版本号的参数

-Ddubbo.service.version=test

在这里插入图片描述
同时需要修改消费者侧API的版本号

方法三

本机服务提供者不去zookeeper 注册中心注册,这样别人将调不了你的服务。需要修改配置

dubbo.registry.register=false                            (properties)
dubbo:
    registry:
      protocol: zookeeper
      address: 192.168.0.1                                (yml)
      register: false

由于本地的服务提供者没有注册到注册中心,所以服务消费者需要指定本地服务提供者url地址,配置如下:

   <dubbo:reference id="xxxxxApi" interface="xxxxxxApi" version="0.0.1"  timeout="15000" url="dubbo://localhost:8136"/>

三种方法对比

方法服务提供者配置消费者配置备注
第一种方法需要需要此方法的弊端在于别的服务消费者请求仍然有可能会打到本机服务,但是本地的版本可能不符合服务消费者的需求。比如 服务消费者需要A版本,而本地是B版本
第二种方法不需要需要此方法可以避免方法一的问题,方法一是局部改变服务提供者的版本号,而方法是全局改变 本地服务提供者的版本号。
第三种方法需要需要此方法由于没有注册到注册中心,所以也可以避免方法一的问题,但是服务提供者和消费者都需要改配置,容易出错

综合以上的对比,个人强烈建议采用第二种方法,即在本地服务提供者启动时,加入VM参数 -Ddubbo.service.version=test ,这样可以不用改服务提供者的配置,避免上线配置忘记改过来的问题。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值