- RabbitMQ
轻量、开箱即用
对消息堆积支持差,大量消息积压时,性能会急剧下降
性能差,每秒钟可以处理几万到十几万条消息
由Erlang开发
- RocketMQ(设计参考了Kafka,ali-> Apache基金会)
java开发
社区活跃
响应速度时延低(毫秒级)
每秒钟大概能处理几十万条消息
与周边生态系统的集成和兼容程度不够
- kafka(LinkedIn )
生态兼容性好(大数据、流式计算)
由Scala 和 Java 开发
大约每秒钟可以处理几十万条消息
有足够的客户端并发进行异步批量发送,并且开启压缩的情况下,Kafka 的极限处理能力可以超过每秒 2000 万条消息。
同步收发消息的响应时延比较高,因为当客户端发送一条消息的时候,Kafka 并不会立即发送出去,而是要等一会儿攒一批再发送,在它的 Broker 中,很多地方都会使用这种先攒一波再一起处理的设计。当你的业务场景中,每秒钟消息数量没有那么多的时候,Kafka 的时延反而会比较高。所以,Kafka 不太适合在线业务场景。
- mqtt
面向移动端,适合具有海量设备,单设备数据较少的场景。mqtt适合使用在中低带宽、网络环境不稳定的场景如智能家居、智慧城市等。
mqtt协议简洁、小巧、可扩展性强、省流量、省电更适合使用在移动端和小型设备上。