RabbbitMq入门以及四种队列模式

这篇博客介绍了RabbitMQ的基本概念和工作原理,包括AMQP协议和JMS的对比。重点讲解了RabbitMQ的四种队列模式:direct、fanout、topic和header,并给出了案例实现,帮助理解其在实际应用中的工作方式。
摘要由CSDN通过智能技术生成

一、RabbitMq介绍

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

问题来了,什么是消息队列?

MQ全称为Message Queue,即消息队列。“消息队列”是在消息的传输过程中保存消息的容器。它是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。

消息队列可以解决哪些问题?

使用消息队列,异步处理请求,将不必同步处理且耗时的操作,交由消息队列,并通知消息接收方进行异步处理,减少了应用程序的响应时间。解决高并发环境下,大量的同步请求堵塞。

生产方通过MQ与消费方交互,不必在服务器内部提供接口,解耦应用程序。

主流的MQ实现方式:AMQP、JMS

  • JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式

  • JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。

  • JMS规定了两种消息模型;而AMQP的消息模型更加丰富

 代表产品:ActiveMQ:基于JMS ;RabbitMQ:基于AMQP协议;

 RabbitMQ工作原理

 组成部分:

  •  Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue
  • Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。
  • Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的
  • Producer:消息生产者,即生产方客户端,生产方客户端将消息发送
  • Consumer:消息消费者,即消费方客户端,接收MQ转发的消息。

二、四种常见的队列模式 

1、direct模式(直接模式)

 生产者将消息发送到交换器;队列根据routing_key接收消息,消费者消费queue接收到的消息。生产者也可以直接将消息发送给queue,而不设定Exchange以及路由键;

2、fanout模式(广播)

生产者将消息发送到交换器;队列接收所有消息,消费者消费指定queue接收到的消息;

3、topic模式 (匹配 订阅&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值