消息中间件用途
用于异步和一个Provider多个Consumer的场景中。
消息分类
实时消息和延时消息。
消息分类——实时消息
消息分类——实时消息——用途——异步 解耦
可以分开调用者和被调用者的处理逻辑,降低系统耦合,解决处理语言之间的差异、数据结构之间的差异以及生产消息和消费者的速度差异(削峰填谷)。
消息分类——实时消息——用途——异步解耦——保证
1.最终的一致性。一致性要求不能丢消息,保证消息最终可达,如果最终不可达要反馈给发送方。
2.消息的有序性。按消息的发送时间排序。
消息分类——实时消息——用途——多消费端
消息分类——实时消息——用途——多消费端——问题
1.确认消息是否被消费。
2.消息队列需要有容错能力。当某个消息失败后,需要消息队列有容错能力,保证消费端恢复后能重新投递消息,所以消息队列要有能力保存一定的消息量。
消息分类—延时消息
延时消息的核心是需要有一个延时事件的触发器。
问题
所有的消息队列都必须要解决最终一致性、高性能和高可靠性问题。