分布式基础设施/中间件常见的3种通信风格

2021-08-08  本文已影响0人  Dakini_Wind

0x01 介绍

中间件基本遵循了以下3种不同的通信风格种的一种或多种:

0x02 区别

Broker:客户端可以调用托管在服务器上的远程组件对象的远程方法。隐藏掉网络的存在。
Messaging:实现多对一的通信方式,不需要静态的去预定义接口(接口会导致客户端对服务的依赖)。降低了耦合度、放宽了对类型的限制。客户端动态地把固定类型地消息发送给特定的远程服务,而不必须发给特定的方法。
Publisher-Subscriber:Publisher与Subscriber以一对多的方式交换事件,他们不关心也不知道对方。进一步解除应用组件之间的耦合。

模式 通信方式 通信关系 组件依赖性
Broker 远程方法调用 一对一 组件接口
Messaging 消息 多对一 通信终端地消息格式
Publisher-Subcriber 事件 一对多 事件格式

0x03 Messaging下细粒度的模式

基于Messaging模式的中间件可以细分为下面4种分布式基础架构模式。
Message Channel(信道)模式:可以连接不同的应用服务,这些服务之间通过交换消息进行交互。一个服务将消息写入到通道中,另一个服务从通道中读取信息。
Message Router(消息路由)模式:要求一个客户端根据不同的条件集,向应用的其他服务发送消息。
Message Translator(消息转化器)模式:支持将消息转换为另一种形式。
Message Endpoint(消息端点)模式:可以通过封装和实现必要的适配代码,从而帮助应用服务与消息基础设置进行连接。

0x04 Broker下细粒度的模式

Broker中间件的职责可以分解为下面的5种分布式基础设施模式。
Client Proxy(客户端代理)模式:为客户端提供了一个本地接口,用于与远程组件进行交互。客户端能够以一种与位置无关的方式访问远程组件,使得远程组件看起来是与本地组件在一起的。
Requestor(请求者)模式:封装了客户端远程通信的各种细节,比如封送、通过网络发送请求、允许客户以位置无关的方式访问远程组件。
Client Request Handler(客户端请求处理程序)模式:封装了客户端在同一的接口背后进行的进程间的通信的细节。
Server Request Handler(服务器请求处理程序)模式:封装了服务端在同一的接口背后进行的进程间通信的细节。
Invoker(调用者)模式:可以在服务器组件收到来自远程客户端的请求时,替服务器组件屏蔽掉与网络相关的问题,比如请求的接受、解封送、分派请求。

上一篇 下一篇

猜你喜欢

热点阅读