我正在尝试设置2个支持HA和故障转移的ActiveMQ Artemis服务器。但是我在文档和in this example中看到的是,Artemis不可扩展,因为我必须在代码中为每个Artemis节点设置连接和会话。这意味着如果我想通过添加第三个服务器来扩展Artemis,那么我将不得不创建一个新版本的代码,其中存在与该服务器的连接和会话,对吧?
这是否意味着我手动必须在故障服务器启动时再次创建新连接和新会话并再次显示在群集上?
答案 0 :(得分:1)
要以这种方式扩展,您必须使用使用UDP多播甚至JGroups的发现组。
然后,您可以在应用程序端设置发现配置以发现Artemis节点。所有这些都通过示例在Clustering section of the documentation。
中进行了描述答案 1 :(得分:0)
example you cited演示了(部分)在使用STRICT
<message-load-balancing>
的节点发生故障之后如何使用来自两台服务器的所有消息。这不是使用群集时通用客户端配置的示例。
您当然不需要连接到集群中的每个节点。在正常的集群环境中,您将有许多不同的客户端仅连接到一个集群节点,以确保消息的有效使用。有关配置用于群集的代理以及该配置对客户端的影响的更多详细信息,请参见the clustering documentation。
在进行故障转移的情况下,您只需为HA配置连接(例如tcp://host:61616?ha=true
),并且如果主节点发生故障,它将自动连接到从属节点。有关配置代理以实现高可用性的更多详细信息,请参见the HA documentation。