1. RabbitMQ
    轻量、开箱即用
    对消息堆积支持差,大量消息积压时,性能会急剧下降

性能差,每秒钟可以处理几万到十几万条消息

由Erlang开发

  1. RocketMQ(设计参考了Kafka,ali-> Apache基金会)

java开发

社区活跃
响应速度时延低(毫秒级)
每秒钟大概能处理几十万条消息

与周边生态系统的集成和兼容程度不够

  1. kafka(LinkedIn )

生态兼容性好(大数据、流式计算)

由Scala 和 Java 开发

大约每秒钟可以处理几十万条消息

有足够的客户端并发进行异步批量发送,并且开启压缩的情况下,Kafka 的极限处理能力可以超过每秒 2000 万条消息。

同步收发消息的响应时延比较高,因为当客户端发送一条消息的时候,Kafka 并不会立即发送出去,而是要等一会儿攒一批再发送,在它的 Broker 中,很多地方都会使用这种先攒一波再一起处理的设计。当你的业务场景中,每秒钟消息数量没有那么多的时候,Kafka 的时延反而会比较高。所以,Kafka 不太适合在线业务场景。

  1. mqtt
    面向移动端,适合具有海量设备,单设备数据较少的场景。mqtt适合使用在中低带宽、网络环境不稳定的场景如智能家居、智慧城市等。
    mqtt协议简洁、小巧、可扩展性强、省流量、省电更适合使用在移动端和小型设备上。