rabbitMq介绍

Posted 再等三分钟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitMq介绍相关的知识,希望对你有一定的参考价值。

RabbitMQ是一个消息中间件。

consumer:消息的消费者

producer:消息的生产者

exchange:是生产者向里面放消息

queue:消费者从里面拿消息。

binds:exchange和queue的绑定关系。

RabbitMQ可以看作一种投递服务,生产者生产消息后,发送给mq。那么消息是什么?

包括两部分内容:有效载荷(payload)和标签(label),有效载荷就是你想要传输的数据,它可以是任何内容,一个Json数组,或者一个map。标签是mq用来决定是谁将获得这些消息的拷贝,不同于TCP的是,当你明确发送发和接收方时,AMQP只会用标签表述这条消息(一个交换器的名称和可选的主题标记),然后把消息交给Rabbit。Rabbit会根据标签把消息发送给感兴趣的接收方。这种通信方式时一种”发后即忘“的单向方式。

消费者接受消息时,它只会得到消息的一部分:有效载荷,在消息路由过程中,消息的标签并没有随有效载荷一同传递,Rabbit不会告诉你是谁生产/发送了消息。当然有可能在有效载荷中带入了发送者的消息。

整个过程很简单:生产者创建消息,消费者接收消息,二者建立连接,是通过一条信道。

什么是信道?

必须首先连接到Rabbti,才能发送和消费消息。你在应用程序和Rabbit代理服务器之间创立一条TCP连接,一旦TCP连接打开,应用程序就可以创建一条AMQP信道。信道是建立在”真实“TCP连接内的虚拟连接。AMQP命令都是通过信道发送出去的。为什么不直接通过TCP呢?因为TCP的建立和销毁都是非常昂贵的。线程启动后,会在线程的连接上创建一条信道,不会给TCP栈造成额外的负担。

以上是关于rabbitMq介绍的主要内容,如果未能解决你的问题,请参考以下文章

JMeter RabbitMQ采样器AMQP详解与实战

消息中间件rabbitmq

RabbitMQ基本概念

Rabbitmq小书

如何解决RabbitMQ REST调用415响应问题?

RabbitMQ in Depth札记——AMQ协议