服务分组
当一个接口有多种实现时,可以用 group 区分。
- 提供者配置
<bean id="demoService" class="com.github.davidji80.dubbo.providerimpl.DemoServiceImpl" />
<bean id="demoServiceGroup" class="com.github.davidji80.dubbo.providerimpl.DemoServiceGroupImpl" />
<dubbo:service group="default" interface="com.github.davidji80.dubbo.service.DemoService"
ref="demoService" protocol="dubbo"/>
<dubbo:service group="group" interface="com.github.davidji80.dubbo.service.DemoService"
ref="demoServiceGroup" protocol="rmi"/>
- 消费者配置
<dubbo:reference id="demoService" interface="com.github.davidji80.dubbo.service.DemoService" loadbalance="leastactive" group="group"/>
多版本
当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用。
可以按照以下的步骤进行版本迁移:
- 在低压力时间段,先升级一半提供者为新版本
- 再将所有消费者升级为新版本
- 然后将剩下的一半提供者升级为新版本
- 提供者配置
<dubbo:service interface="com.github.davidji80.dubbo.service.DemoService"
ref="demoService" protocol="dubbo" version="1.0.0"/>
<dubbo:service interface="com.github.davidji80.dubbo.service.DemoService"
ref="demoServiceGroup" protocol="dubbo" version="2.0.0"/>
- 消费者配置
<dubbo:reference id="demoService2" interface="com.github.davidji80.dubbo.service.DemoService"
check="false" version="2.0.0"/>
代码
https://github.com/DavidJi80/dubbo
v0.4.3