MQ的基本概念

常见的MQ产品

/RabbitMQActiveMQRicketMQKafka
公司/社区RabbitAoacge阿里Apache
开发语言ErlangJavaJavaScala&Java
协议支持ANQP,XMPP,SMTP,STOMPOpenWire,STOMP,REST,XMPP,AMQP自定义自定义协议,社区封装了http协议支持
客户端支持语言官方支持Erlang,Java,Ruby等,社区产出多重API,几乎支持所有语音Java,C,C++,Python,PHP,Perl,.net等Java,C++(不成熟)官方支持Java,社区产出多重API,如PHP,Python等
单季吞吐量万级(其次)万级(最差)十万级(最好)十万级(其次)
消息延迟微秒及毫秒级毫秒级毫秒以内
功能特性并发能力强,性能及其好,延时低,社区活跃,管理界面丰富老牌产品,成熟度高,文档较多MQ功能比较完备,扩展性佳只支持主要的MQ功能,毕竟是为大数据领域准备的

MQ优势

应用解耦:提高系统容错性和可维护性
异步提速:提升用户体验和系统吞吐量
削峰填谷:提高系统稳定性

MQ劣势

系统可用性降低:引入外部依赖越多,系统稳定性越差,MQ宕机就会对业务造成影响,要保证MQ的高可用
系统复杂度提高:从系统间同步调用转为通过MQ进行异步调用,如何保证消息没有被重复消费?怎么处理消息丢失情况?保证消息传递的顺序性
一致性问题:通过MQ给B/C/D系统发消息数据,如果B/C系统处理成功,D系统处理失败,如何保证消息数据处理的一致性?

MQ小结:

1.生产者不需要重消费者处获得反馈。引入消息队列之前的直接调用,其接口的返回值应该为空,这才让明明下层的动作还没做,上层却当成动作做完了继续往后走,即所谓异步成为了可能。
2.允许短暂的不一致
3.确实是用了有效果。即解耦、提速、削峰这些方面的收益,超过管理加入MQ这些成本

RabbitMQ官网地址:http://www.rabbitmq.com
安装文档:资料/软件/安装 RabbitMQ.md

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值