在开发Dubbo服务时,可能是多个人同时开发,但是都公用一个Zookeeper注册中心,这时就会出现同一个服务会有多个提供者(如果每个开发者都运行了提供者服务),这时如果某个开发者通过消费者服务在调用提供者服务时(调试服务时),调用的不一定是自己本机的提供者服务,可能是其他开发者的服务,这时就无法进行断点调试(代码运行在他人电脑上怎么断点调试?),为了能够调用自己的本机消费者服务,需要两步骤:
- 本机提供者服务不在Zookeeper注册服务(这样做使得他人调用不了自己的本机服务,因为服务还不稳定)
<!-- 使用zookeeper广播注册中心暴露服务地址 -->
<dubbo:registry protocol="zookeeper" address="${dubbo.zookeeper.address}" register="false" />
- 在消费者服务指定条用本地服务(直连调试)
<!-- 用户相关服务代理 -->
<dubbo:reference interface="com.unisound.iot.busi.uc.dubbo.facade.user.UserFacade" id="userFacadeV2"
version="2.0" url="dubbo://localhost:20880" />
这样就可以实现本机消费者服务调用的一定是本地的提供者服务,从而可以实现断点调试。