几种常见MQ消息队列的对比

Rabbit MQ

1. 简介

MQ(Message Queue)消息队列实际上就是一种我们很熟悉的“先进先出FIFO”数据结构。是一种消息系统间相互协作的通信机制。

2. 消息队列的功能

●解耦:模块之间使用MQ进行通信,系统间只关心通知,而非处理,降低系统间的耦合性。

●流量削峰(异步):通过MQ使短时间内的高并发请求持久化,然后逐步处理,防止系统雪崩,削平高峰期的并发流量。

●日志收集:利用MQ在接受和持久方面的高性能,防止日志导致的系统阻塞和请求延迟。

●事务最终一致性:使用消息事件表和消息队列实现分布式事务。

3. 消息队列的功能特点

●消息堆积:当消费者的消费速度比生产者发送消息慢很多的时候,消息将在处理中心逐渐积压得不到释放。我们可以通过设置阈值的方式来避免这种问题的出现,即超过阈值的消息将不会再放入处理中心,防止系统资源被耗尽。

●消息持久化:防止消息因为宕机等原因丢失,我们不在内存中持久化消息,因为我们可以在本地文件、分布式文件系统或者数据库系统将消息持久化。

●可靠投递:可靠投递是指在生产者到消息处理中心、消息处理中心到消息消费者、消息处理中心持久化消息这三个过程中丢失的情况,我们使用一些方法避免这些消息丢失,保证可靠投递。

●消息重复:消息重复是指当消息发送失败或者不知道是否发送成功的时候,消息状态的是待发送的,定时任务轮训发送所有待发送的消息,保证消息不会丢失,这就带来了可能重复发送的问题。

●严格有序:严格有序是指有些场景下需要消息按照进入队列的顺序执行。

●集群

●消息中间件

4. 常见MQ对比

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容