软件开发分布式消息通信

第一章、初识消息中间件

2019-02-16  本文已影响48人  YQ_1024

一、什么是消息中间件、它可以干什么?

1.传递数据

消息中间件是用来在两个组件或者平台件传递数据,起的是一个桥梁的作用,类似下图,主要是让组件A和组件B之间解耦合。组件A的只负责传递消息,不用关系组件B如何使用消息。因此通过消息传递机制可以把组件A和组件B解耦合。


消息中间件示意图

2.在分布式系统中,同时可以起到系统集成的作用,在分布式架构进行进行进程间的通信

3.解耦合说明

(1)传统的做法

以用户注册为例,我们可能会将下面的过程封装成几个方法,然后调用。然而其实这几个步骤之间并无关联性,同时在分布小架构或者领域模型中。我们很有可能将短信发送营销活动、持久话用户信息、邮箱激活等作出一个子域。而且者几个子域之间不存在调用顺序上的问题,其实是异步化的操作。如果采用这个传统的设计,将会出现问题。也不符合正常的业务逻辑

传统思维

(2)使用消息中间件来实现

消息中间件

4.屏蔽平台之间之间的协议问题

组件A和组件B之间可以使用不同的协议和中间件通信,发布和消费自己的消息。这样可以解决不同平台间协议不一致的问题。
通过这样的方式、每个组件之间,通过消息中间件来进行通信。并且消费段(消极的接受者)根据自己的情况做相应的操作。实现了各组件之间的完全解耦。

5.实现组件将的异步化处理

通过消息中间件,可以使各个组件并行处理

6.实现流量整形

缓解流量,秒杀服务

通过消息中间件,我们可以先把请求发布到中间间的队列中。如果队列的长度超过指定的长度,就把请求抛弃。然后服务再获取请求进行处理。这样可以缓解服务的压力。

7.通过消息中间件,解决分布式锁的问题

在弱一致性事务模型中,可以采用分布式消息队列的实现最大能力通知方式来实现数据的最终一致性等等。

上一篇下一篇

猜你喜欢

热点阅读