mq选型对比

  • Post author:
  • Post category:其他




在选择MQ之前我们要想清楚为什么要使用MQ


使用场景


比如在下单之后要给用户添加积分,通知物流发货等…如果这些操作我们全部在下单接口当中处理,那么接口性能将会非常低下.


使用MQ之后会带来什么问题

  1. 增加了系统的复杂性
  2. 要考虑消息丢失的问题
  3. 一致性,比如收到消息后要三个系统都执行完成才算流程结束,但是某个系统可能挂了,但是还是返回的成功


会带来什么好处

  1. 提高系统的相应速度
  2. 削峰填谷
  3. 增加吞吐量



各种MQ的特点


ActiveMQ


ActiveMQ:可能存在消息丢失,吞吐量万级,社区不够活跃,可能会遇到不可解决的bug,偶尔可能会丢失消息


RabbitMQ


RabbitMQ:中小型公司的选择。社区特别活跃,但想要自己维护很难,因为语言是erlang,java工程师很难读懂。吞吐量可以达到万级


RocketMQ


RocketMQ:阿里的开源项目,社区相对活跃,建议大型公司使用,即使官网不维护了,本公司也要有实力自己维护(java写的)。经过阿里双十一验证的 性能可达到十万级,并且有多种消息模式


kafka


kafka:功能比较简单,吞吐超高,如果是大数据方面的业务,用这个毫无问题,但是有可能消息重复消费,API比较少


建议


一般情况下建议中小公司使用rabbitmq,大公司或者有专门的人员研究中间件的公司可以使用rocketmq



版权声明:本文为qq_44787151原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。