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的策略实现

测试结果:


如对你有帮助,请留言/点赞/转发/收藏
本文介绍了如何在Dubbo中实现动态调用服务,根据请求参数选择不同的服务Group。首先展示了创建生产者和消费者的静态调用过程,然后详细解释了动态调用的实现,包括设置ApplicationConfig、RegistryConfig和ReferenceConfig,并提供了测试用例。动态调用时,通过URL参数`group`来决定调用`live`或`test`组的服务。测试结果显示动态调用功能正常工作。
2023

被折叠的 条评论
为什么被折叠?



