微服务进程间通信 学习记录

2020-03-25  本文已影响0人  MlLance

学习文章: https://www.nginx.com/blog/introduction-to-microservices/

客户端⇔服务交互方式

第一个维度是互动是一对一还是一对多:

二个维度是交互是同步还是异步:

API 定义

API定义的性质取决于您所使用的IPC机制。如果使用消息传递,则API包含消息通道和消息类型。如果使用的是HTTP,则API由URL以及请求和响应格式组成。

处理部分故障

方法

处理部分故障的策略包括:

IPC技术

基于消息的异步通信

一条消息由标头(例如发送方之类的元数据)和一条消息主体组成。消息通过通道交换。任何数量的生产者都可以将消息发送到一个频道。同样,任何数量的使用者都可以从频道接收消息。

点对点渠道和发布订阅渠道。

消息传递优点
* 使客户端与服务脱钩–客户端仅通过向适当的通道发送消息即可发出请求。客户端完全不知道服务实例。它不需要使用发现机制来确定服务实例的位置。

消息传递缺点

同步,请求/响应IPC

当使用基于请求/响应的同步IPC机制时,客户端会将请求发送到服务。该服务处理请求并发送回响应。其他客户端可能使用异步的,事件驱动的客户端代码,这些代码可能由Futures或Rx Observables封装。但是,与使用消息传递时不同,客户端假定响应将及时到达。有许多协议可供选择。两种流行的协议是REST和Thrift。首先让我们看一下REST。

REST

REST是(几乎始终)使用HTTP的IPC机制。REST中的一个关键概念是一种资源,通常代表一个业务对象,例如客户或产品,或业务对象的集合。REST使用HTTP谓词来操纵资源,这些谓词是使用URL引用的。


image.png

Apache Thrift

上一篇 下一篇

猜你喜欢

热点阅读