Dubbo 动态调用 group
一:搭建Dubbo group(test-live) 案例:
- 生产方:公共接口+live实现+test实现
2.生产方:Spring注入+Dubbo服务注入
3.消费方:配置与生产方对应的组信息
4.消费方:根据已有的 group调用 对应的服务实现
5.测试:启动zk,并从页面发起请求
http://localhost:8882/controller/testService.action
http://localhost:8882/controller/liveService.action
二:以上案例是按照 注解的方式静态调用,关于动态调用(此处是根据 请求参数来确定到底调用哪个Group):
调用 group:live
http://localhost:8882/controller/dynamicCall.actiongroup=live
调用 group:test
http://localhost:8882/controller/dynamicCall.actiongroup=test
之前是通过如下方式来拿到远端服务的:
public MyDubboGroupService getInvokeService(String group) {
ApplicationConfig application = new ApplicationConfig();
application.setName(“students-consumer”);
RegistryConfig registry = new RegistryConfig();
registry.setAddress(“127.0.0.1:2181”);
registry.setProtocol(“zookeeper”);
ReferenceConfig referenceConfig = new ReferenceConfig<>();
referenceConfig.setApplication(application);
referenceConfig.setRegistry(registry);
referenceConfig.setGroup(group);
referenceConfig.setInterface(MyDubboGroupService.class);
return referenceConfig.get();
}
// 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0
//referenceConfig.setRetries(0);
// 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用
//referenceConfig.setLoadbalance(“leastactive”);
random,roundrobin,leastactive的策略实现
测试结果:
如对你有帮助,请留言/点赞/转发/收藏