参考答案
Kafka、ActiveMQ、RabbitMQ、RocketMQ 的区别:
1. kafka
- 开发语言: Scala开发。
- 性能、吞吐量: 吞吐量所有MQ里最优秀,QPS十万级、性能毫秒级、支持集群部署。
- 功能: 功能单一。
- 缺点: 丢数据, 因为数据先写入磁盘缓冲区,未直接落盘。机器故障会造成数据丢失。
- 应用场景: 适当丢失数据没有关系、吞吐量要求高、不需要太多的高级功能的场景,比如大数据场景。
2. RabbitMQ
- 开发语言: Erlang开发。
- 性能、吞吐量: 吞吐量比较低,QPS几万级、性能u秒级、主从架构。
- 功能: 功能单一。
- 缺点: Erlang小众语言开发,吞吐量低,集群扩展麻烦。
- 应用场景: 中小公司对并发和吞吐量要求不高的场景。
3. RocketMQ
- 开发语言: Java开发。
- 性能、吞吐量: 吞吐量高,QPS十万级、性能毫秒级、支持集群部署。
- 功能: 支持各种高级功能,比如说延迟消息、事务消息、消息回溯、死信队列、消息积压等等。
- 缺点: 官方文档相对简单可能是RocketMQ目前唯一的缺点。
- 应用场景: 适当丢失数据没有关系、吞吐量要求高、不需要太多的高级功能的场景,比如大数据场景。
方便理解及记忆,整理如图:
以上,是MQ面试题【Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—