1、官网地址:
https://cn.dubbo.apache.org/zh-cn/overview/tasks/develop/version_group/
涉及注解:
(1)提供方
@DubboService(group = "group1",version = "1.0")
public class XXX {
}
@DubboService(group = "group2",version = "2.0")
public class XXX {
}
(2)消费方
@DubboReference(group = "group1",version = "1.0")
private DevelopService developService;
@DubboReference(group = "group2",version = "2.0")
private DevelopService developServiceV2;
(3)别人的好文:
参考:https://blog.51cto.com/u_12462157/3796302
2、大概步骤
2.1 接口
public interface DevelopService {
String invoke(String param);
}
2.2 提供方
@DubboService(group = "group1",version = "1.0")
public class DevelopProviderServiceV1 implements DevelopService{
@Override
public String invoke(String param) {
StringBuilder s = new StringBuilder();
s.append("ServiceV1 param:").append(param);
return s.toString();
}
}
@DubboService(group = "group2",version = "2.0")
public class DevelopProviderServiceV2 implements DevelopService{
@Override
public String invoke(String param) {
StringBuilder s = new StringBuilder();
s.append("ServiceV2 param:").append(param);
return s.toString();
}
}
2.3 消费方
@DubboReference(group = "group1",version = "1.0")
private DevelopService developService;
@DubboReference(group = "group2",version = "2.0")
private DevelopService developServiceV2;
@Override
public void run(String... args) throws Exception {
//调用DevelopService的group1分组实现
System.out.println("Dubbo Remote Return ======> " + developService.invoke("1"));
//调用DevelopService的另一个实现
System.out.println("Dubbo Remote Return ======> " + developServiceV2.invoke("2"));
}