RabbitMq
优点
1.轻量级,部署放便快捷
2。支持灵活的路由配置,可以根据配置的路由规则,让生产者生产出来的消息发送到不同的队列中。
3.兼容性好,RabbitMQ的客户端支持大多数的编程语言
缺点
1.如果有大量的消息堆积在队列中,性能会急剧下降
2.RabbitMQ是用Erlang开发的,在功能拓展和二次开发上不友好
3.对比RocketMQ和kafka,RabbitMQ性能是最差的
RocketMQ
优点
1.功能全,RocketMQ基本具备了消息队列应有的所有功能
2.RocketMQ使用java语言开发,在进行debug源码,扩展功能和二次开发方面都很友好
3.性能高,毫秒级响应,经受过多次双十一的考验
缺点
1.兼容性不好,目前只支持java和c++,但C++尚不成熟
2.社区活跃度一般
kafka
优点
1.可靠性和稳定性很高
2.性能卓越,单机吞吐量高
3.有很好的管理界面Kafka-Manager
4.日志领域非常成熟
缺点
1.消费失败后不能重试
2.由于是异步和批处理,延迟高
3.使用短轮询方式,实时性取决于轮询间隔时间