目前市面上常见的消息队列有以下几种:
- ActiveMQ
- RabbitMQ
- RocketMQ
- Kafka
特性 | ActiveMQ | RabbitMQ | RocketMQ | Kafka |
---|---|---|---|---|
吞吐量 | 万级 | 万级 | 十万级 | 十万级 |
时效性 | 毫秒(ms) | 微秒(μs) | 毫秒(ms) | 毫秒(ms) |
可用性 | 高,主从架构 | 高,主从架构 | 非常高,分布式架构 | 非常高,分布式架构 |
可靠性 | 有较低概率丢失 | 基本不丢 | 优化参数,不丢 | 优化参数,不丢 |
如何选择:
- ActiveMQ:早期 MQ,目前更新维护已不活跃,不建议使用
- RabbitMQ:erlang 语言开发,对 Java 开发者不友好,有点在于很稳定
- RocketMQ:阿里开发,相对还不错
- Kafka:目前比较火的消息队列,需要注意 topic 过多时,吞吐量会大幅度下降
总的来说,除了 ActiveMQ 外,其它都是不错的选择。Kafka 相比其它 MQ 功能不完备,它主要被设计用来实时计算以及日志采集