如何将消息发送到集群rabbitmq中的专用节点
How to send messages to specialised node in a cluster rabbitmq
我有一个 rabbitmq 服务器集群。但是托管服务器的机器在安装的软件方面存在差异。所以,他们没有重叠的能力,他们是专门的工作者,例如,只有一个节点安装了电子邮件软件。
我知道队列绑定到创建的节点。我的问题是,如何设置我的队列,以便我可以将某些消息发送到特殊的赋值节点,我的特殊软件正在等待工作,绕过 rabbitmq 分发消息循环算法。
也许这不是解决方案,我愿意接受任何可行的解决方案
rabbitmq 服务器是指实际的 rabbitmq 服务器还是 clients/workers?
如果我没理解错的话,你可以创建一个"topic"类型的单一交换。为每个工作人员创建一个独占队列,并使用一些唯一的路由密钥将其绑定到交换器,在您的情况下,这将是主机的功能。向交换器提交消息时,使用该功能作为路由键。邮件将被路由到适当的主机。
您始终可以连接到集群中特定节点的 IP 地址,而不是连接到集群前面的某种负载平衡器 - 因此在客户端的打开方法中指定不同的 IP连接。
这当然违背了集群的目的,但在我看来你的设置做同样的事情:)
我有一个 rabbitmq 服务器集群。但是托管服务器的机器在安装的软件方面存在差异。所以,他们没有重叠的能力,他们是专门的工作者,例如,只有一个节点安装了电子邮件软件。
我知道队列绑定到创建的节点。我的问题是,如何设置我的队列,以便我可以将某些消息发送到特殊的赋值节点,我的特殊软件正在等待工作,绕过 rabbitmq 分发消息循环算法。
也许这不是解决方案,我愿意接受任何可行的解决方案
rabbitmq 服务器是指实际的 rabbitmq 服务器还是 clients/workers?
如果我没理解错的话,你可以创建一个"topic"类型的单一交换。为每个工作人员创建一个独占队列,并使用一些唯一的路由密钥将其绑定到交换器,在您的情况下,这将是主机的功能。向交换器提交消息时,使用该功能作为路由键。邮件将被路由到适当的主机。
您始终可以连接到集群中特定节点的 IP 地址,而不是连接到集群前面的某种负载平衡器 - 因此在客户端的打开方法中指定不同的 IP连接。
这当然违背了集群的目的,但在我看来你的设置做同样的事情:)