本地调试dubbo服务的几种方法


一、通过修改版本号来区分本地版本

把本地的某些服务版本修改调,和测试环境的做区分,测试环境就不会访问到你本地启动的服务了。

提供者配置version:

<dubbo:provider timeout="10000" threadpool="fixed" threads="100" 
              accepts="1000" version="0.0.6"/>

改版本号来区分

消费端配置version: 和提供者配置相同的version

<dubbo:consumer version="0.0.6" />

改版本号来区分

二、使用telnet

1、dubbo从2.0.8版本开始增加了协议注册开关(register="false") 例如:<dubbo:registry address="xxxxxx" register="false"/> 可以关掉,不注册到配置中心,启动本地服务,使用telnet

2、使用telnet登录dubbo,进行调用

image.png

3、查看提供者都提供了什么服务,ls命令,ls com.cxxx.xxxx**

dubbo>ls
com.test.DemoService

dubbo>ls com.test.DemoService
queryDemoPageList
insertDemolist

4、调用方法 调用响应方法,可以在本地调试

dubbo> invoke com.test.DemoService.queryDemoPageList({"id":"100"}, 1, 2)

{"totalCount":1,"data":[{date":"2017-03-23 14:10:32","name":"张三","keyword":"222"}]}

三、直接访问本地URL

1、服务方 添加register="false"

<dubbo:registry address="xxxxxx" register="false"/>

2、消费方 通过设置关联服务的URL地址,可以实现直连本地dubbo服务 例如:

 <dubbo:reference id="xxxxService" interface="xxxxx.xxxxService" 
protocol="dubbo" url="dubbo://127.0.0.1:28050"/>

四、多注册中心的连接

1.写两个注册中心地址,分别定义不同的id image.png

2.在引入指定服务接口时需要加入registry属性指定注册中心定义的id

image.png

这样就实现 了多注册中心的连接,因为我本地电脑无法启动所有微服务,除了自己写的微服务之外的服务全部调用测试接口的服务,只有自己需要测试的服务连接本地的服务,用于调试就行了

注意

如果使用了公司的vpn,发现通过修改版本号的方式还是不行的,有多个IP,服务使用不了。 在dubbo.xml可以配置主机地址,这个不建议修改,只是调试用

<dubbo:protocol host="205.182.23.201">

还有些开源工具也可以用来调试本地环境,https://github.com/VIPJoey/doe

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×