服务分组(group)
使用场景
当一个接口有多种实现时,可以用group进行区分。
在平时开发时,多个开发者使用同一个注册中心的话,可以使用group进行区分各自的服务。
服务
<dubbo:service interface="com.joyxj.dubbo.demo.api.DemoService" group="demo" ref="demoServiceImpl" />
引用
<dubbo:reference interface="com.joyxj.dubbo.demo.api.DemoService" id="demoService" group="demo"/>
任意服务
<dubbo:reference interface="com.joyxj.dubbo.demo.api.DemoService" id="demoService" group="*"/>
多版本(version)
使用场景
当一个接口实现,出现不兼容升级时,可以用版本号进行过渡,版本号不同的服务相互间不引用。
可以使用以下方法进行版本迁移:
- 在低压力段,先升级一半提供者为新的版本。
- 再将所有消费者升级为新的版本。
- 然后将剩下的一半提供者升级为新的版本。
配置
老版本提供者配置
<dubbo:service interface="com.joyxj.dubbo.demo.api.DemoService" id="demoService" group="demo" version="1.0.0"/>
新版本提供者配置
<dubbo:service interface="com.joyxj.dubbo.demo.api.DemoService" id="demoService" group="demo" version="2.0.0"/>
老版本消费者配置
<dubbo:reference interface="com.joyxj.dubbo.demo.api.DemoService" id="demoService" group="demo" version="1.0.0"/>
新版本消费者配置
<dubbo:reference interface="com.joyxj.dubbo.demo.api.DemoService" id="demoService" group="demo" version="2.0.0"/>