MQ: 消息队列。
- 服务之间互相通信的中间件;
- 队列的目的是保证消息的有序;
不同点:
rabbitmq:
1. 完全按照AMQP协议实现的消息队列。
- erlang语言开发的,所以 要想自己扩展不是太方便;但是并发性能好。
- 原生不支持批量消息发送。
- 注重消息的可靠传递和丰富的消息路由特性;
kafka:
- 专注于高吞吐、低延迟的流处理和日志记录;
- 原生支持消息的批量发送;
- 还有分布式存储,零拷贝,顺序写等技术优化;
rocketmq:
本身是对kafka的重写与部分改造。
- 自己实现了注册中心;
- 消息增加了tag等优化;
- 全部topic消息 顺序写入一个文件;
- 支持分布式事务;
- 原生支持延时队列;