MQ的用途与对比
一、MQ的用途:解耦和流量肖锋
二、常用MQ产品对比和选择
社区活跃度:
RabbitMQ > ActiveMQ = RocketMQ > kafka
消息持久化:
RabbitMQ、ActiveMQ、RocketMQ、kafka都支持持久化。ZeroMQ不支持持久化。
高并发:
RabbitMQ = kafka > RocketMQ > ActiveMQ。RabbitMQ高并发是基于ErLang的。ErLang本身就是针对高并发提供的一种开发脚本语言。
吞吐量:
RabbitMQ = kafka > RocketMQ > ActiveMQ。小型项目(并发吞吐低于万级别)使用ActiveMQ。中型项目(并发吞吐10万~100万级),可选RocketMQ、ActiveMQ。大型项目优先考虑RabbitMQ和Kafka。
综合技术:
RabbitMQ和kafka最好。RocketMQ次之。ActiveMQ最弱。如:可靠性、路由、集群、事务、高可用队列、消息可靠排序、持久化、可视化管理工具等。
RabbitMQ和Kafka选择:
建议Kafka针对日志处理。
其他使用RabbitMQ。
商业项目中,如果现有的系统架构已经使用了某一个MQ产品,且没有业务和性能上的问题,不推荐切换MQ产品。
业务需求变更永无休止,技术前进就永无止境!