DUBBO-Group分组配置的应用
Posted 互联网技术共享平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DUBBO-Group分组配置的应用相关的知识,希望对你有一定的参考价值。
背景:我们经常会出现,开发人员在测试环境进行代码调试,将自己本地的DUBBO服务直接注册到了测试的ZK,经常会导致测试的请求直接到了开发者的本地调试服务中,还有的开发人员会把测试环境的对应服务禁掉,而自己调试完成后,又忘记开启,导致了测试环境不可用。
另外还有在开发环境直接注册服务,再进行调试的时候也会和别的开发人员产生冲突的情况。
这种情况我们可以使用DUBBO的Group分组配置,进行解决。设置好分组后,消费者只消费对应的分组中提供者提供的服务。
当一个接口有多种实现时,可以用group区分
<!-- dubbo group 使用示例 -->
<bean id="demoA" class="com.xxx.IndexServiceImpl1" />
<dubbo:service group="feedback" interface="com.xxx.IndexService" ref="demoA" />
<bean id="demoB" class="com.xxx.IndexServiceImpl2" />
<dubbo:service group="member" interface="com.xxx.IndexService" ref="demoB" />
此外,dubbo消费者也可以设置为:消费任意一个group的服务。
<dubbo:reference id="barService" interface="com.foo.BarService" group="*" />
另外拓展的场景 :
1. 可以使用Group分组,对不同的业务提供服务进行区分。
例如对接口类的服务是一类此类服务需要高可用,避免受到其他业务的干扰【例如 后台的导数,大数据量的查询等引起的服务不可用的情况】,而后台的一些查询、导数等可以独立去调用单独的Group分组的服务,即使产生BUG导致服务不可用,不会影响到商户业务的开展。
2. 我们可以使用Group分组进行A/B测试。
针对核心的交易服务,从API接口端,到后端的服务,新部署一套对应的Group节点。需要在nginx端进行请求控制,只有测试的商户的请求才能进入到此套Group节点中。
需要生产上线时,我们可以随时上线这套Group节点,然后配置好对应的控制器的请求,测试人员可以使用测试商户对上线后的功能进行测试,测试无误后,可以从控制器端配置几个量小的商户进行跑量观察,无误后,即可上线正常的节点,再利用控制器把测试商户切换到正常节点进行测试或同步观察生产交易。这样能极大的提高上线的成功率。
支付知识共享平台
微信:payment_3
业务、技术、心得分享
长按二维码关注
以上是关于DUBBO-Group分组配置的应用的主要内容,如果未能解决你的问题,请参考以下文章