目录
在正常的dubbo开发迭代过程,本地调试是比较常见的情况,一般来说,主要以下两种情况我们需要本地调试
-
dubbo服务开发调试阶段:
这个阶段我们一般不希望服务被别人访问
-
dubbo服务已经发布测试环境,但是某个服务出了问题希望本地断点定位:
本地启动的应用不希望对外暴露,但是又需要对特定的服务路由到本地
开发调试阶段
一、禁止注册到配置中心 Dubbo从2.0.8开始增加了协议注册开关,我们可以通过关闭注册开关,关闭服务注册
<dubbo:registry address="xxxxxx" register="false"/>
二、版本号区分
在Provider配置版本号1.0.0
<dubbo:provider timeout="10000" threadpool="fixed" threads="100" accepts="1000" version="1.0.0"/>
复制代码
Consumer 配置和provider相同的version 1.0.0
<dubbo:consumer version="1.0.0" />
三、通过url直接访问
服务方不注册到注册中心
<dubbo:registry address="xxxxxx" register="false"/>
consumer通过设置关联服务的URL地址,可以实现直连本地dubbo服务
<dubbo:reference id="xxxxService" interface="xxxxx.xxxxService" protocol="dubbo" url="dubbo://127.0.0.1:10000"/>
已发布测试阶段
在dubbo提供的管理后台,通过服务治理的几种方式可以实现流量的重新分布;dubbo支持条件路由、标签路由、权重以及动态配置
一、条件路由 Dubbo提供动态创建条件路由的服务治理能力,可以在无需重启应用的情况下,根据请求发起方、请求的方法条件路由。详细配置可以参考官方文档
二、动态配置 dubbo也支持通过动态规则轻松实现请求的重新分布 例如: 需要对 com.xxxx.api.xxService服务下的所有方法请求路由到本地,我们只需简单创建一个动态规则
-
service unique Id 配置为com.xxxx.api.xxService
-
规则内容模板如下
configVersion: v2.7
scope: application/service
key: app-name/group+service+version
enabled: true
configs:
- addresses: [0.0.0.0] # 0.0.0.0 for all addresses
side: consumer # effective side, consumer or addresses
parameters:
timeout: 6000
配置的时候我们只需要把本地服务ip配置即可,更多的参数选项配置可以参考官方文档