首页IT科技rabbitmq的topic(RabbitMQ的使用介绍)

rabbitmq的topic(RabbitMQ的使用介绍)

时间2025-06-19 21:55:11分类IT科技浏览4546
导读:一、RabbitMQ是什么 RabbitMQ是一种常用的消息中间件,是基于AMQP协议,采用erlang语言开发的面向消息服务的中间件,是一个独立的系统应用程序,可以管理服务器计算资源和网络通信。一般可作为同构或异构系统间的数据交换平台,由于erlang语言的高并发特性,使得RabbitMQ的性能较好。应用较为...

一            、RabbitMQ是什么

RabbitMQ是一种常用的消息中间件            ,是基于AMQP协议                   ,采用erlang语言开发的面向消息服务的中间件      ,是一个独立的系统应用程序         ,可以管理服务器计算资源和网络通信            。一般可作为同构或异构系统间的数据交换平台                   ,由于erlang语言的高并发特性         ,使得RabbitMQ的性能较好                  。应用较为广泛       。

二                   、RabbitMQ的使用场景

举几个例子      ,如果订单系统最多能处理一万次订单                   ,这个处理能力应付正常时段的下单时绰绰有余            ,正常时段我们下单一秒后就能返回结果         。但是在高峰期   ,如果有两万次下单操作系统是处理不了的                   ,只能限制订单超过一万后不允许用户下单                  。而使用消息中间件做缓冲               ,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理                ,这时有些用户可能在下单十几秒后才能收到下单成功的操作                   ,但是比不能下单的体验要好          。

简单来说: 就是在访问量剧增的情况下   ,但是应用依然能够提供服务            ,比如“双十一            ”下单的人多                   ,但是淘宝这个应用仍然要运行      ,所以就可以使用消息中间件采用队列的形式减少突然访问的压力      。我们称之为“流量削峰                   ”                  。

第二个例子         ,以电商应用为例                   ,应用中有订单系统      、库存系统         、物流系统                   、支付系统             。用户创建订单后         ,如果耦合调用库存系统         、物流系统      、支付系统      ,任何一个子系统出了故障                   ,都会造成下单操作异常   。当转变成基于消息队列的方式后            ,系统间调用的问题会减少很多   ,比如物流系统因为发生故障                   ,需要几分钟来修复                  。在这几分钟的时间里               ,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成                。当物流系统恢复后                ,继续处理订单信息即可                   ,中间用户感受不到物流系统的故障   ,降低了系统间的耦合性            ,但是却提高了系统的复杂性                   ,一定程度上提高了系统的可用性。我们称之为“应用解耦      ”               。

第三个例子      ,还是以电商应用为例         ,我们下单之后                   ,需要调用库存系统         ,查看当前库存余量是否支持订单需要      ,这个时候订单系统在向库存系统发送下单申请后                   ,它不能保证能够立马收到库存系统的反馈            ,所以需要在库存系统完成查询后   ,再告诉订单系统下单成功                   ,这是一个异步的过程               ,订单系统无需因等待库存系统回复而阻塞                   。我们称之为“异步处理         ”    。

三                   、RabbitMQ的组成

生产者:生产无非就是发送            。发送消息的程序是生产者

队列:队列是 RabbitMQ 中存放消息的结构的名称                  。 尽管消息流经 RabbitMQ 和您的应用程序,但它们只能存储在队列中       。 队列仅受主机内存和磁盘限制的约束                ,它本质上是一个大消息缓冲区         。 许多生产者可以将消息发送到一个队列                   ,许多消费者可以尝试从一个队列接收数据                  。

消费者:消费者是一个主要等待接收消息的程序

交换机:本质上   ,消息的生产者并不知道自己产生的消息会具体发送至哪个队列            ,生产者将消息传递给交换机                   ,由交换机决定将消息发送至哪个队列

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
蓝桥杯干嘛的(【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 2 期-职业院校组)