MQ消息队列

13 阅读1分钟

概述

消息队列(MessageQueue,MQ)是分布式系统中的重要组件。主要是用于解决异步、解耦、削峰等问题,通过高效可靠的消息传递机制进行平台无关的数据交流,可以在分布式环境下扩展进程间的通信,基于数据通信来进行分布式系统的集成,以实现高性能、高可用、可伸缩和最终一致性架构。

常用消息队列

Kafka、RocketMQ、RabbitMQ、ActiveMQ。

适用场景

1、构造实时流数据管道,用于系统或应用之间可靠的消息传输。

2、数据采集及处理,例如连接到一个数据库系统,捕捉表的变更内容。

3、构建实时流式应用程序,对这些流数据进行转换或者影响,如:应用程序作为一个流处理器,消费一个或者多个topic产生的输入流,然后生产一个输出流到一个或多个topic中去,在输入输出流中进行有效的转换。

特性

1. 生产者/消费者支持多语言

2. 支持分布式横向扩缩容

3. 高性能(高吞吐量)

4. 版本向下兼容

5. 提供消息持久化

6. 流处理

高性能实现

1. 磁盘顺序读取和写入(接近内存随机读写的性能)

2. nio和零拷贝

3. 消息批处理

4. 消息压缩

参考:

《我们一起进大厂》系列-消息队列基础

《我们一起进大厂》系列-分布式事务、重复消费、顺序消费

《浅入浅出》-RocketMQ

kafka全解

【万字长文】Kafka最全知识点整理(建议收藏)

kafka总结

Kafka到底有多高可靠?

消息队列-Kafka核心概念