如何解决Artemis集群中的brokerURL
我有一个Artemis经纪人集群,其中有两个主经纪人和两个从经纪人。我正在尝试以编程方式将消息推送到此群集。我了解只有一名经纪人才能在ActiveMQConnectionFactory.setBrokerUrl(String brokerURL)中设置brokerUrl tcp://10.10.100.217:61616。
现在,我有一个包含两个主代理和两个从代理的集群,那么在那种情况下,brokerURL是什么? broker.xml中的组地址为231.7.7.7。
解决方法
有两种方法可以解决这个问题。
首先,您只需将所有主机和端口添加到URL,例如:
(tcp://master1:61616,tcp://slave1:61616,tcp://master2:61616,tcp://slave2:61616)
当核心客户端连接到主服务器时,它将自动收到任何备份的通知,但您不能保证其中一个预定义的主服务器实际上已启动,因此仅列出 all 是最安全的URL中的经纪人。
第二,您可以使用来自客户端的发现,例如:
udp://231.7.7.7:9876
此处,客户端使用与代理用来形成集群的相同的UDP多播地址和端口。客户端将侦听此多播地址和端口,以发现哪些代理已启动,然后连接到其中一个。
当然,要使其正常工作,UDP多播数据包必须能够从代理到达客户端,这通常意味着它们必须位于同一网络子网中,因为UDP多播通常不会在此范围之外广播。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。