RabbitMQ 和 Kafka
💡
原文中文,约2700字,阅读约需7分钟。
📝
内容提要
本文介绍了作者对Kafka和RabbitMQ的了解和使用,Kafka是高级集群消息中间件,但存在消息重复、丢失、错误和顺序问题,而RabbitMQ是使用Erlang开发的消息队列,具有高性能和可靠性,还提到了Kafka对Zookeeper的依赖和RabbitMQ的热备机制,最后补充了Kafka和RabbitMQ的更新和改进。
🎯
关键要点
- 本文介绍了作者对Kafka和RabbitMQ的了解和使用。
- Kafka是高级集群消息中间件,但存在消息重复、丢失、错误和顺序问题。
- RabbitMQ是使用Erlang开发的消息队列,具有高性能和可靠性。
- Kafka依赖Zookeeper来管理broker与consumer的动态加入与离开。
- RabbitMQ的热备机制可以保证消息的可靠性。
- RabbitMQ在不使用ACK机制时,QPS可达6W+,但使用ACK机制后QPS降至1W+。
- RabbitMQ的复杂性和Erlang语言的使用使其不易上手。
- Kafka的broker不保存任何状态,依赖Zookeeper,可能导致消息丢失。
- RabbitMQ适合处理实时且高可靠性的消息,消费者和生产者能力应对等。
- Kafka适合对消息顺序不依赖且不那么实时的系统。
- Kafka在2.8.2版本后引入了ISR模式,增强了对broker宕机的容错能力。
- Kafka在3.5及以后的版本中引入了KRaft机制,减少对Zookeeper的依赖。
- RabbitMQ在3.x版本中可以通过插件实现hash队列,支持镜像队列消费。
➡️