我是RabbitMQ的新手并试图弄清楚经纪人和交易所之间的区别。
从我所读过的内容来看,这些术语似乎几乎可以互换使用,而且在图表中,经纪人似乎都包含了交换和队列。
来自" RabbitMQ简洁"书:
交换是AMQP实体,其中消息被发送到消息 经纪人。交换机接收消息,然后将其路由到一个或多个 队列
那么什么是经纪人?在RabbitMQ管理中,有一个用于"交换"的标签,但不包括经纪人。我可以直接与经纪人互动,还是仅由交易所完成?
答案 0 :(得分:3)
“Broker”是RabbitMQ所使用的消息传递系统类型的通用术语。它是一个集中式消息传递系统,具有处理消息路由和传递等的服务器。
来自ZeroMQ的这篇论文很好地理解了代理商和无代理商之间的差异:http://zeromq.org/whitepapers:brokerless(虽然这篇论文相当偏向于无代理模型,但两者都很好并且都有用。我倾向于选择rabbitmq /代理系统,但并非总是如此)
从另一个角度来看,这是RabbitMQ的经纪人与无经纪人的帖子:https://www.rabbitmq.com/blog/2010/09/22/broker-vs-brokerless/
在大多数情况下,只要在你的脑海中替换“rabbitmq服务器”,当你看到工作“经纪人”时,你就会好起来。
正如您所指出的那样,交换是在RabbitMQ中发布消息的内容。它根据交换类型处理消息的绑定和路由。