消息中间件(一)

一.    消息中间件

1. 概念

    没有标准定义,一般认为,采用消息传送机制/消息队列 的中间件技术,进行数据交流,用在分布式系统的集成

    作用:消息中间件解决了分布式系统之间消息的传递。

    RPC:远程过程调用协议

    RPC和消息中间件的选用/区分标准:

        a.系统之间的依赖程度

        b.量(业务量,数据量,访问量)

2. 使用场景

a. 异步处理

需求: 用户注册,注册完成后需要发短信,发邮件,通知用户。

方案一: 串行:用户注册--->发送短信--->发送邮件

方案二:并行:用户注册--|==(发送短信、发送邮件)

方案三:消息中间件:用户注册--->通知消息中间件发送短信,邮件||--->由消息中间件异步发送短信/邮件

b. 应用解耦

需求:订单系统和库存系统的关系。

关系一:订单系统直接对接库存系统,形成强耦合,库存系统奔溃直接影响到订单系统。

关系二:订单系统通过消息中间件对接库存系统,形成解耦,库存系统出问题不会导致订单系统不可用。


c. 流量削峰

需求:流量过大,对系统的冲击比较大。如秒杀系统

方案一:用户请求--->秒杀系统(直接面对大流量,可能处理不过来)

方案二:用户请求--->消息中间件的消息队列(负责存)<--- 秒杀系统(负责取,按一定的规则逐个处理请求,不需要直接面对大流量)

d. 日志处理

需求:日志处理程序

场景一:错误日志--->消息队列(负责存)<---日志处理程序(负责取数据,逐条处理)

场景二:用户的行为日志--->消息队列<---日志的流式处理或存储。

3. 常见消息中间件的比较

消息中间件(一)_第1张图片


你可能感兴趣的:(note)