Dubbo进阶(十二)——dubbo中group和version配置项说明
【摘要】 当一个接口有多种实现时,可以应用group区分。
为什么要用dubbo分组配置?
因为服务器有限,想在同一个注册中心中,分隔测试和开发环境。
那么,分组如何配置?
spring管理bean,先看dubbo的配置:
1、service中的dubbo配置: spring-dubbo.xml:
<?xml version="1.0" encoding="UT...
当一个接口有多种实现时,可以应用group
区分。
为什么要用dubbo
分组配置?
因为服务器有限,想在同一个注册中心中,分隔测试和开发环境。
那么,分组如何配置?
spring
管理bean
,先看dubbo
的配置:
1、service
中的dubbo
配置: spring-dubbo.xml
:
<?xml version="1.0" encoding="UTF-8"?>
- 1
<!-- 应用信息,用于计算依赖关系 -->
<dubbo:application name="graservice"/>
<dubbo:protocol name="dubbo" port="20901"/>
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" register="${dubbo.registry.register}" />
<dubbo:annotation package="com.compony.itoo.gra.facade"/>
<dubbo:annotation package=" com.compony.itoo.gra.service"/>
<dubbo:consumer check="false" timeout="3000" group ="${dubbo.gra.group}"/>
<dubbo:provider timeout="3000" group ="${dubbo.gra.group}"/>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
dubbo.registry.address=zookeeper://192.168.23.60:2181
dubbo.registry.register=true
dubbo.gra.group=ls
- 1
- 2
- 3
2、web
中的dubbo
配置: spring-dubbo.xml
:
<?xml version="1.0" encoding="UTF-8"?>
- 1
<!-- dubbo配置-start -->
<dubbo:protocol name="dubbo" port="20900"/>
<dubbo:application name="graweb"/>
<dubbo:registry address="${dubbo.registry.address}" />
<dubbo:consumer check="false" timeout="100000" group ="${dubbo.gra.group}"/>
<dubbo:annotation/> <!--开启dubbo注解-->
<!-- dubbo配置-end -->
- 1
- 2
- 3
- 4
- 5
- 6
- 7
dubbo.registry.address=zookeeper://192.168.23.60:2181
dubbo.gra.group=ls
- 1
- 2
group
分组的设置就如上面红色标注所示:给<dubbo:consumer/>
和<dubbo:provider/>
添加group
属性。测试环境和开发环境设置不同的分组值,可以通过组内调用的特性,达到共用注册中心的同时实现环境隔离的效果。同样开发人员本地开发,调试代码,也可以通过使用分组来实现。
先在本地测试,配置好后,启动服务,去dubbo
控制台看服务注册情况,显示分组已起作用:
version
当一个接口的实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用
<!-- 机器A提供1.0.0版本服务 -->
<dubbo:service interface=“com.foo.BarService” version=“1.0.0” />
- 1
- 2
<!-- 机器B提供2.0.0版本服务 -->
<dubbo:service interface=“com.foo.BarService” version=“2.0.0” />
- 1
- 2
<!-- 机器C消费1.0.0版本服务 -->
<dubbo:reference id=“barService” interface=“com.foo.BarService” version=“1.0.0” />
- 1
- 2
<!-- 机器D消费2.0.0版本服务 -->
<dubbo:reference id=“barService” interface=“com.foo.BarService” version=“2.0.0” />
- 1
- 2
此外,消费者消费服任意版本的服务时:
<dubbo:reference id=“barService” interface=“com.foo.BarService” version="*" />
- 1
另外,接口升级时,要注意方法:在低压力时间段,先升级一半的提供者为新版本; 再将所有的消费者升级为新版本;然后将剩下的一半提供者升级为新版本;
文章来源: shq5785.blog.csdn.net,作者:No Silver Bullet,版权归原作者所有,如需转载,请联系作者。
原文链接:shq5785.blog.csdn.net/article/details/86237186
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)