消息队列已经逐渐成为企业IT系统内部通讯的核心手段。它具备低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有不少主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,煊赫一时的Kafka,阿里巴巴自主开发RocketMQ等。java
主流消息中间件比较:架构
对比之总结以下:异步
通常的业务系统要引入MQ,最先你们都用ActiveMQ,可是如今确实你们用的很少了,没通过大规模吞吐量场景的验证,社区也不是很活跃,因此你们仍是算了吧,我我的不推荐用这个了;ide
后来你们开始用RabbitMQ,可是确实erlang语言阻止了大量的java工程师去深刻研究和掌控他,对公司而言,几乎处于不可控的状态,可是确实人是开源的,比较稳定的支持,活跃度也高;大数据
如今确实愈来愈多的公司,会去用RocketMQ,确实很不错,可是我提醒一下本身想好社区万一忽然黄掉的风险,对本身公司技术实力有绝对自信的,我推荐用RocketMQ,不然回去老老实实用RabbitMQ吧,人是活跃开源社区,绝对不会黄因此中小型公司,技术实力较为通常,技术挑战不是特别高,用RabbitMQ是不错的选择;大型公司,基础架构研发实力较强,用RocketMQ是很好的选择;spa
若是是大数据领域的实时计算、日志采集等场景,用Kafka是业内标准的,绝对没问题,社区活跃度很高,绝对不会黄,况且几乎是全世界这个领域的事实性规范。.net
RabbitMQ比Kafka成熟,在可用性上,可靠性上,稳定性上,RabbitMQ理论上胜于Kafka,因为Kafka设计初衷是处理日志,能够看作是日志(消息)系统一个重要组件,针对性很强,虽然吞吐量远高于RabbitMQ,但从业务方面考虑仍是建议选择RabbitMQ。设计
参考资料:3d
https://blog.csdn.net/leexide/article/details/80035462日志
https://blog.csdn.net/luckyzhoustar/article/details/50411500
https://blog.csdn.net/java_zyq/article/details/80022391
https://blog.csdn.net/kingmax54212008/article/details/51706128
https://www.jianshu.com/p/5192654fc0a7
https://www.jianshu.com/p/be2958745054