您的位置 首页 golang

「rabbitmq」的基础

百度关于 MQ 的基础定义:

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。

1、队列、生产者、消费者

队列是 rabbitmq 的内部对象,用于存储消息。生产者生产消息并投递到队列中,消费者可以从队列中获取消息并消费。 多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理。

2、Exchange、Binding

刚才我们看到生产者将消息投递到队列中,实际上这在RabbitMQ中这种事情永远都不会发生。实际的情况是,生产者将消息发送到Exchange,再通过Binding将Exchange与Queue关联起来。

3、Exchange Type、Bingding key、routing key

在绑定(Binding)Exchange与Queue的同时,一般会指定一个binding key。在绑定多个Queue到同一个Exchange的时候,这些Binding允许使用相同的binding key。

生产者在将消息发送给Exchange的时候,一般会指定一个routing key,来指定这个消息的路由规则,生产者就可以在发送消息给Exchange时,通过指定routing key来决定消息流向哪里。

RabbitMQ常用的Exchange Type有三种:fanout、direct、topic。

fanout :把所有发送到该Exchange的消息投递到所有与它绑定的队列中。

direct: 把消息投递到那些binding key与routing key完全匹配的队列中。

topic :将消息路由到binding key与routing key模式匹配的队列中

文章来源:智云一二三科技

文章标题:「rabbitmq」的基础

文章地址:https://www.zhihuclub.com/100462.shtml

关于作者: 智云科技

热门文章

网站地图