Dubbo服务分组实现举例
程序员文章站
2022-07-08 09:51:30
服务分组与多版本控制的使用方式几乎是相同的,只要将 version 替换为 group 即可。 但使用目的不同。使用版本控制的目的是为了升级,将原有老版本替换掉,将来不再提供老 版本的服务,所以不同版本间不能出现相互调用。而分组的目的则不同,其也是针对相同接 口,给出了多种实现类。但不同的是,这些不同实现并没有谁替换掉谁的意思,是针对不同 需求,或针对不同功能模块所给出的不同实现。这些实现所提供的服务是并存的,所以它们 间可以出现相互调用关系。例如,对于支付服务的实现,可以有微信支付实现与支付宝支付......
服务分组与多版本控制的使用方式几乎是相同的,只要将 version 替换为 group 即可。 但使用目的不同。使用版本控制的目的是为了升级,将原有老版本替换掉,将来不再提供老 版本的服务,所以不同版本间不能出现相互调用。而分组的目的则不同,其也是针对相同接 口,给出了多种实现类。但不同的是,这些不同实现并没有谁替换掉谁的意思,是针对不同 需求,或针对不同功能模块所给出的不同实现。这些实现所提供的服务是并存的,所以它们 间可以出现相互调用关系。例如,对于支付服务的实现,可以有微信支付实现与支付宝支付 实现等。
1、创建提供者
(1)定义两个接口实现类
public class WeixinServiceImpl implements SomeService {
@Override
public String hello(String name) {
System.out.println("使用【微信】付款");
return "WeixinServiceImpl";
}
}
public class ZhifubaoServiceImpl implements SomeService {
@Override
public String hello(String name) {
System.out.println("使用【支付宝】付款");
return "ZhifubaoServiceImpl";
}
}
(2)修改配置文件
2、创建消费者
(1)修改配置文件
(2)修改消费者类
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("spring-consumer.xml");
// 使用微信支付
SomeService weixinService = (SomeService) ac.getBean("weixin");
String weixin = weixinService.hello("China");
System.out.println(weixin);
// 使用支付宝支付
SomeService zhifubaoService = (SomeService) ac.getBean("zhifubao");
String zhifubao = zhifubaoService.hello("China");
System.out.println(zhifubao);
}
3、运行结果
客户端代码会根据定义的dubbo的id找到对应分组的实现
本文地址:https://blog.csdn.net/xyajia/article/details/107678019
下一篇: 低成本获客系列之知乎推广
推荐阅读
-
nodeJs直连Java服务化dubbo协议长连接实现
-
Dubbo环境搭建-管理控制台dubbo-admin实现服务监控
-
(八)整合 Dubbo框架 ,实现RPC服务远程调用
-
JAVAEE——宜立方商城02:服务中间件dubbo、工程改造为基于soa架构、商品列表实现
-
Dubbo服务分组实现举例
-
使用 Apache Dubbo 实现远程通信(微服务架构)
-
Dubbo基于Zookeeper实现分布式服务
-
【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
-
Dubbo环境搭建-管理控制台dubbo-admin实现服务监控
-
SpringBoot+Dubbo+zookeeper 搭建一个简单的单机服务实现RPC调用