Customer和RabbitMQ代理之间存在哪种绑定?

时间:2017-10-06 18:13:26

标签: rabbitmq

我是RabbitMQ的初学者,我从RabbitMQ官方网站的必需品开始冒险。

现在,我已经在层中使用了代理消息器的以下模式:

Backend Server(Business logic) -> (push message) -> RabbitMQ -> Customer(receiver).

关于这个逻辑,我有一个简单的问题:如果这些物理组件放在不同的服务器上,那么Customer和RabbitMQ代理之间以及Backend ServerRabbitMQ Broker之间存在哪种绑定?是套接字层还是无状态HTTP连接?

说明我的想法的架构是:

 Backend Server(Business logic) ->(???) -> (push message) -> RabbitMQ -> (???) Customer(receiver).

2 个答案:

答案 0 :(得分:1)

这是一个名为AMQP的套接字级二进制协议,版本为0-9-1

该规范可以在RMQ的网站上找到:https://www.rabbitmq.com/amqp-0-9-1-reference.html,您可以看到这些方法反映在例如Java API。

答案 1 :(得分:1)

消费者使用来自队列的消息,您不需要关心来自消费者的绑定。

但是,

消息不会直接发布到队列,而是生产者将消息发送到交换机。交换是消息路由代理,在RabbitMQ中为每个虚拟主机定义。交换机负责将消息路由到不同的队列。交换机接受来自生产者应用程序的消息,并借助于头属性,绑定和路由键将它们路由到消息队列。

绑定是一个"链接"您设置为将队列绑定到交换。

路由键是一个消息属性。在决定如何将消息路由到队列时,交换机可能会查看此密钥(取决于交换类型)。

在RabbitMQ中,有四种不同类型的交换,使用不同的参数和绑定设置以不同方式路由消息。

可在此处找到更多信息:https://www.cloudamqp.com/blog/2015-09-03-part4-rabbitmq-for-beginners-exchanges-routing-keys-bindings.html

enter image description here