RabbitMQ-基于AMQP增强消息队列访问协议的信息队列

如果遇到了双11这样的节日,对数据库的写库能力是一个非常大的考验。如果面临每秒12万次的写库操作,传统的mysql肯定不能应对。
矛盾点:用户的写入操作必须现在完成,不能等待。否则必须报连接超时。
解决方法:
采用队列的机制,将用户的写库请求,发往队列中,并且告知用户已经完成,请稍后。
说明:
当引入消息队列的机制后,首先将用户的请求先保存到消息队列中,mysql从队列中获取需要处理的数据分批执行。直到将消息队列中的请求全部执行完成。这时的操作才算结束。
好处:用户的写库操作与数据库处理的操作是异步的。能够极大减轻数据库的压力。


RabbitMQ介绍 https://www.rabbitmq.com/

MQ全称为Message Queue, (MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。

RabbitMQ是原来爱立信公司的产品。它早期为金融服务,金融的特点是不允许数据丢失,于是想了一种异步提交方式:把数据存到缓存里,读的时候从缓存去读直到读完为止。随着阿里的兴起,好的东西慢慢被取代了。

RabbitMQ特点

  1. 高可用,能搭建集群服务器。
  2. 可扩展,有大量插件
  3. 有消息确认机制
  4. 有持久化机制,可靠性高。
  5. 开源

RabbitMQ的工作模式

  1. 简单模式


    简单模式
  2. 工作模式


    工作模式
  3. 订阅模式


    订阅模式
  4. 路由模式


    路由模式
  5. 主题模式


    主题模式

    6.RPC模式
    用作系统底层传输


    RPC模式

RabbitMQ的性能和同类型产品

ZeroMQ:(提供了很大的吞吐量)并发处理能力物理最快速的消息队列,适用于大数据,但是对于数据的有效性不能保证
RabbitMQ:现阶段主流的消息队列。对于数据的有效性提供了很好的支持。一般在金融领域适用的较多。并且处理速度相对较快。
MSMQ:市面上没人用了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容