【问题标题】:Programmatically create Artemis cluster on remote server以编程方式在远程服务器上创建 Artemis 集群
【发布时间】:2020-07-08 11:25:22
【问题描述】:

是否可以通过编程方式在远程 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();

任何建议将不胜感激。

如果可能的话,这是否是一种即时配置的好方法?

谢谢

【问题讨论】:

    标签: activemq-artemis


    【解决方案1】:

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

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

    您可以考虑使用Ansible 之类的工具来管理配置,甚至使用FreeMarker 之类的模板引擎推出您自己的解决方案来自定义 XML,然后使用其他技术将其分发到您的 Docker 实例。

    【讨论】:

    • 感谢很高兴知道。我怀疑这是不可能的。我将在 Docker 中挂载 /etc 目录,并研究使用 XInclude 拆分 broker.xml。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多