Dubbo的三种连接方式

一、直连提供者+只订阅


开发测试环境下,需要绕过注册中心,直接测试服务提供者,

1.在消费方配置【可以两个以上,中间用逗号隔开】。

<dubbo:reference interface="com.changhf.service.DeptmentService" id="deptmentService" check="false"  url="dubbo://192.168.1.1:20881"/>
serviceImpl里加个断点,每次访问都会走断点。在管控台本地服务接口最后点击禁用,还是可以正常访问,说明绕过了注册中心。


2.在adminstrator账户下建一个dubbo.resolve.properties,默认会读取该文件,

该文件里只需加入以下内容

com.changhf.service.DeptmentService=dubbo\://192.168.1.1\:20881
【注意】如果两种方式都不配置,消费者可能调本地服务也可能是稳定版的服务。

3、有时候你的服务在本地开发测试时需要注册到注册中心,但又没有完全做完的时候,如果就这样注册上去,
其他消费者在调用该服务时,就会偶尔的调用到你本地的服务,这样就报错了。

<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" register="false"/>
在<dubbo:registry >最后添加register="false",这样别人就不会调你的本地服务,但你的本地服务所订阅的服务正常运行。


二、服务分组

官网上该应用值用在一个接口有多种实现类时,但可以用来替代上面的直连提供者+只订阅,因为配置xml,有可能会出现误提交,导致服务出现问题。最好不要为了切换环境而调整源码,这样容易导致将调整的代码发布到生产线,所以排除通过Spring的XML来配置。

<dubbo:service interface="com.changhf.service.IDubboGroupService" ref="dubboGroup1Service" group="feedback2"/>
<dubbo:reference interface="com.changhf.service.IDubboGroupService" id="dubboGroup1Service" check="false" group="feedback2"/>

group属性为该服务接口添加一个分组,消费者就只会调用同一分组的服务接口了。

也可以用version属性来替代:

<dubbo:service interface="com.changhf.service.DeptmentService" ref="deptmentService" version="2.0"/>
<dubbo:reference interface="com.changhf.service.DeptmentService" id="deptmentService" check="false" version="2.0"/>

两者结合,可实现服务的稳步升级。。



三、总结

经过试错,以下配置可以用户生产环境(推荐使用)

<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="dubboDemo" />

<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" file="/home/chf/registry/dubbo_demo.cache"/>
<!-- 用dubbo协议在20881端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />

<!-- 监控中心配置 -->
<!-- 监控中心协议,如果为protocol="registry",表示从注册中心发现监控中心地址,否则直连监控中心 -->
<dubbo:monitor protocol= "registry" />	
<dubbo:provider timeout="600000" group="${dubbo.service.group}" version="${dubbo.service.version}" retries="${dubbo.service.retries}"/>
<dubbo:service interface="com.changhf.service.user.UserInfoManager" ref="userInfoManager" />


<dubbo:provider>为<dubbo:service>和<dubbo:protocol>标签的缺省值设置

同理,<dubbo:consumer>作为<dubbo:reference>标签的缺省值设置。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值