【微服务】

当系统采用微服务架构重构后,如何清晰的展示出多个服务之间的消息提供和消费关系。

参考:

https://www.jianshu.com/p/9c03081bc0d9

https://baijiahao.baidu.com/s?id=1693264015139013993&wfr=spider&for=pc

https://www.jianshu.com/p/9a440c5ea1db
 
 
微服务需要使用进程间通信的机制进行交互,当设计你的服务如何通信的时候,需要考虑多个问题:
服务如何交互、
如何为服务定义API、
如何处理API进化、
如何处理局部故障。
有两种微服务可以使用的IPC机制:异步消息和同步的请求/响应。

在微服务架构中,每个服务拥有自己的数据存储。不同服务可能是一不同的SQL或者NoSQL数据库。这样的数据库架构有很多优势,当然也带来了分布式数据管理的挑战。挑战之一就是如何实现跨多服务的业务逻辑事务来维持一致性,挑战之二就是如何从多服务查询数据。

对很多应用来讲,使用事件驱动架构来应对这些挑战。实现事件驱动架构的挑战之一是如何保证更新数据状态和发布事件的原子性 ,有几种方案来实现,包括以数据库为message queue,事务日志挖掘,事件源。

 

交互风格

 一对一一对多
同步 请求/响应
异步 通知 发布/订阅
异步 请求/异步响应 发布/异步响应

处理局部故障

异步,基于消息的通信

同步,基于请求/响应的IPC

事件驱动架构

原文地址:https://www.cnblogs.com/cathygx/p/14502368.html