消息队列之RabbitMQ原理

本文详细介绍了RabbitMQ,一个基于AMQP协议的开源消息中间件。RabbitMQ通过Erlang实现,支持多种编程模型,如JMS。文章探讨了AMQP的特征、RabbitMQ的结构和工作原理,以及消息队列在异步处理、应用解耦、流量削锋等场景的应用。同时,解释了RabbitMQ的交换机类型,包括Direct、Fanout、Topic和Headers,以及消息的路由和持久化机制。
摘要由CSDN通过智能技术生成

什么是AMQP?

AMQP,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件而设计的。基于此协议的客户端与消息中间件可以传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。RabbitMQ就是通过Erlang语言实现的一种消息中间件。

AMQP的特征

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布\订阅模式)、可靠性、安全

JMS编程模型

connectionFactory、destination、connection、session(产生客户端与消息队列服务器的TCP连接)
消息生产者、消息消费者、消息监听器

RabbitMQ是什么

RabbitMQ是一个遵循AMQP协议的消息中间件,它从生产者接受消息并传递给消费者,在这和过程中,根据路由规则就行路由、缓存和持久化。

消息队列中间件的应用场景(不只是RabbitMQ)

  • 异步处理:在注册服务的时候,如果同步串行化的方式处理,让存储数据、邮件通知等挨着完成,延迟较大,采用消息队列,可以将邮件服务分离开来,将邮件任务之间放入消息队列中,之间返回,减少了延迟,提高了用户体验
  • 应用解耦:电商里面,在订单与库存系统的中间添加一个消息队列服务器,在用户下单后,订单系统将数据先进行持久化处理,然后将消息写入消息队列,直接返回订单创建成功,然后库存系统使用拉/推的方式,获取订
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值