跳至主要內容

RabbitMQ使用指南

Alooc...大约 3 分钟后端框架RabbitMQRabbitMQ

前置概念了解:

什么是AMQP 和 JMS?

AMQP:即Advanced Message Queuing Protocol,是一个应用层标准高级消息队列协议,提供统一消息服务。是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。

JMS:即Java消息服务(Java Message Service)应用程序接口,由sun公司提出,并且sun公司定义好了接口。包括create、send、recieve。只要想使用它,就得实现它定义的接口。 消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。不好的地方是语言层面的限制,只能为JAVA,这其实稍微有点和微服务的观点相违背。要求语言只能是JAVA,而不能是py等。

常见的MQ产品

ActiveMQ:基于JMS,Apache

RocketMQ:(Rocket,火箭)阿里巴巴的产品,基于JMS,目前由Apache基于会维护

Kafka:分布式消息系统,亮点:吞吐量超级高,没秒中数十万的并发。

RabbitMQ:(Rabbit,兔子)由erlang语言开发,基于AMQP协议,在erlang语言特性的加持下,RabbitMQ稳定性要比其他的MQ产品好一些,而且erlang语言本身是面向高并发的编程的语言,所以RabbitMQ速度也非常快。且它基于AMQP协议,对分布式、微服务更友好。

基础概念

中文名英文名描述
生产者Producer消息的发送者,可以将消息发送到交换机
消费者Consumer消息的接收者,从队列中获取消息并进行消费
交换机Exchange接收生产者发送的消息,并根据路由键发送给指定队列
队列Queue存储从交换机发来的消息
交换机类型type不同类型的交换机转发消息方式不同
发布/订阅模式fanout广播消息给所有绑定交换机的队列
路由模式direct根据路由键发送消息
通配符模式topic根据路由键的匹配规则发送消息

5种消息模式:

1、简单模式

一个生产者、一个消费者

2、工作模式

一个生产者、多个消费者,消费者之间竞争消费

3、发布/订阅模式

一个生产者,一个转换机,多个消费者。转换机绑定队列,消费者仅消费订阅的队列消息

4、路由模式

一个生产者,一个转换机,多个消费者。转换机根据key绑定队列

5、通配符模式

一个生产者,一个转换机,多个消费者。转换机根据key值匹配绑定队列

中间件、框架入门很简单,深入原理需理解源码。

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5