在庞大的微服务生态下,可能存在成百上千的服务。越上层的业务服务,对于一些基础服务的依赖就会越多。比如订单服务会依赖支付服务、用户服务、商品服务等等。
这么多的依赖,我们如何让服务之间的依赖松散化,开箱即用化?
这将是本文为大家所解释的,废话不多说,Let‘s get it.
本文无特殊说明,均已Spring Cloud Open-Feign作为RPC框架做演示
- 基础架构:common-frame
- 业务应用:Authentication
你需要先clone common-dependency
然后执行mvn clean install 将 common-dependency包打到你本地仓库
否则你拉下来common-frame工程后会报找不到
<parent> <groupId>com.baiyan</groupId> <artifactId>common-dependency</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> 复制代码
一、RPC调用与依赖的困境
我在看过很多大的单体服务做微服务改造的时候,从业务出发,将工程划分为多个微服务。
原有业务之间的关联与调用关系从系统内变为系统外。
服务之间的通信方式从service调用改为rpc调用,从spring的事件通知改为MQ的消息通知。
跨服务之间消息通信也是遵守增删改查的逻辑。
我们以订单服务call用户服务获取用户信息为例👇🏻
这种比较常见的方式就是使用订单服务访问用户服务的RPC接口。
在同一注册中心下,使用o