以编程方式在远程服务器上创建 Artemis 集群

Programmatically create Artemis cluster on remote server

是否可以通过编程方式 create/update 远程 Artemis 服务器上的集群? 我将有很多 docker 个实例,如果可能的话,我宁愿即时配置也不愿在 XML 文件中设置。

理想情况下,我想在应用程序启动时检查是否已设置集群,如果没有则创建集群。 这可能涉及获取当前服务器配置并使用集群详细信息更新它。

我看到可以创建配置。 但是,如果可能的话,我不确定如何获取远程服务器配置。

            Configuration config = new ConfigurationImpl();
            ClusterConnectionConfiguration ccc = new ClusterConnectionConfiguration();
            ccc.setAddress("231.7.7.7");
            config.addClusterConfiguration(ccc);
            
            // need a way to get and update the current server configuration
            ActiveMQServer.getConfiguration();

如有任何建议,我们将不胜感激。

如果可能的话,这是一种动态配置的好方法吗?

谢谢

org.apache.activemq.artemis.core.config.impl.ConfigurationImpl 对象可用于以编程方式配置代理。代理测试套件使用此对象来配置代理实例。但是,此对象在任何远程意义上都不可用。

一旦代理启动,就会有一个丰富的管理 API 您可以使用它来添加安全设置、地址设置、转移、桥接、地址、队列等内容。但是,大多数人所做的更改(尽管不是全部)这些操作都是易变的,这意味着每次代理启动时都需要执行其中的许多操作。此外,没有添加集群连接的管理方法。

您可以考虑使用 Ansible to manage the configuration or even roll your own solution with a templating engine like FreeMarker 之类的工具来自定义 XML,然后使用其他技术将其分发到您的 Docker 实例。