市面上很多MQ产品,比如ActiveMQ、RabbitMQ、ZeroMQ、Kafka、RocketMQ,到底哪种更加适合呢?
- RabbitMQ:
- 消息堆积的支持并不好,当大量消息积压的时候,会导致RabbitMQ的性能急剧下降。
- 每秒钟可以处理几万到十几万条消息。
- RabbitMQ使用的编程语言Erlang,二次开发难度大。
- 最流行的消息中间之一。
- RocketMQ:
- RocketMQ响应时延大多数情况下可以做到毫秒级的响应,适合在线业务场景。
- 周边生态系统的集成和兼容程度要略逊一筹。
- 支持事务消息。
- RocketMQ的每秒钟大概能处理几十万条消息。
- Kafka:
- Kafka与在大数据和流计算领域支持很好。
- Kafka使用Scala和Java语言开发。
- 每秒钟可以处理几十万条消息,Kafka的极限处理能力可以超过每秒2000万条
- 同步收发消息的响应时延比较高,不太适合在线业务场景。
- ActiveMQ:
- 已经脱离正轨。
- ZeroMQ:
- 不是一个完整的消息队列产品