`

基于消息的架构

阅读更多
各个模块或系统基于消息彼此联系起来,这种异步的通讯方式能够应用以一种松耦合的方式组合起来,并且让这种通讯更加可靠,因为两个系统可以不是同时运行的,但消息以一种可存储的方式存储。消息组建负责将数据从一个应用传递到另一个应用,所以应用程序可以只关注它要共享的数据,而不是如何去共享。

基本概念:
消息包含了一些基本的概念,只有理解了这些细节才能知道如何去使用。

通道(Channel):基于消息的应用通过消息通道来传输数据,这个通道将发送者和接收者连接起来。一个新的消息系统开始没有任何管道,需要根据需要通讯的应用来创建通道。

消息(Message): 一个消息是在通道中传递的一个原子的包。一个应用程序可以将数据分成一个或者多个包,将每一个包包装成消息,然后在通道中发送,同样,一个接收者接受到消息,需要将从消息中提取相应的数据然后进行处理。消息系统会不断重复的尝试发送消息直到成功。

管道和过滤器(Pipe and Filter):在最简单的例子中,一个消息系统将消息直接从发送着的计算机上传送接收者的计算机上。但是通常在消息从发送者发出之后和接收者收到之前会做一些处理,比如由于发送者的数据格式和接受者的格式不同,消息需要被验证并转换。基于管道和过滤器的架构描述了多个处理步骤可以通过通道链接起来。

路由(Routing):在一个大的系统中,各种应用通过通道连接起来,一个消息可能通过多个通道并到达目的地。由于消息路由的复杂性,最初的发送着可能不知道通过哪些管道将消息流向接收者。所以出现了消息路由器,发送者只需要将消息发送给消息路由器即可,消息路由器决定怎么从管道的拓扑结构中找到通往最终接受这个得路径,或者至少是下一个消息路由器。

转换(Transformation):各种应用使用同一概念数据的不同格式,发送是一种格式,而接收者期望的是另一种格式,要解决这个问题,需要在一个中间的过滤器,一个消息的转换者,将一种格式转换成另一种格式。

Endpoint:很多程序并没有内建和消息系统的兼容接口。需要有一层代码它既知道应用的工作方式又知道消息系统的工作方式,以胶水的方式将它们联系起来,这层胶水代码被称为Message Endpoints,它能够让应用程序发送和接受消息。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics