消息中间件

来源:互联网 发布:java九九乘法表下三角 编辑:程序博客网 时间:2024/05/15 15:05

一、概念

消息中间件,简称MOM。它为应用系统提供高效、灵活的消息同步和异步传输处理、存储转发、可靠传输。在大规模分布式环境下确保消息安全、可靠、高效送达。

也可以理解为它是消息传输过程中保存消息的容器


二、目的

主要目的是提供路由并保证消息的传递,如果发送消息时接收者不可用,消息队列会自动保存消息,直到成功传递它为止。当然,保存也是有期限的,也就是租约


三、特点

1异步模式

消息发送者可以发送一个消息而无须等待响应。一个消息可能最终转发给一个或多个消息接收者。例如:注册用户收到短信和邮件。

2、应用程序和应用程序调用关系为松耦合关系(发送者和接收者不必了解对方,只需要确认消息;发送者和接收者不必同时在线)

这里有个概念:最终一致、强一致、弱一致

最终一致:最终状态一致,可能中间有时间差

强一致,弱一致:有读写一致性、读读一致性

 

举例:




四、消息中间件的工作原理



五、消息队列的模型

1、点对点模型(PTP),也就是一对一

特点:①每个消息只有一个消费者②消息发送者和接收者没有时间依赖③接收者确认消息接受和处理成功



2、发布/订阅模型(pub/sub),也就是一对多

①每个下次可以有多个接收者②客户端只有订阅后才能接收到消息③分为持久订阅和非持久订阅④有时间依赖



在网络状态中,从消费者到消息中间件关系有三张情况:成功、失败、未知

持久订阅:会在消息中间件里面保存着依赖关系

非持久订阅:会有长连接的关系

 

六、应用场景

1、用户注册



2、日志分析



3、数据复制

将数据从与源头复制到多个目的地,要保证①数据完整性②数据顺序性

用于跨机房数据传输、搜索、离线数据计算等。



4、延迟消息发送和暂存

把消息中间件当做可靠的消息暂存地

定期进行消息投递,比如模拟用户秒杀访问(小流量测试)、进行系统性能压测



5、消息广播

缓存数据同步更新、往应用推送数据



七、总体架构




1 0
原创粉丝点击