ActiveMQ Artemis 控制台在哪里存储地址和队列定义?

Where does ActiveMQ Artemis Console store address and queue definitions?

我在 Ubuntu 18.04 的 /var/lib 中创建了 broker 文件夹。 /var/lib/[broker]/etc 内有 broker.xml 文件,您可以使用它来定义地址和队列。但是,我使用管理控制台创建了一个带有一对队列的地址,并且这个文件没有更新。事实上,代理目录或 Artemis 主目录中没有任何文件更新。

那么管理控制台在哪里存储定义?

另外,在 broker.xml 文件中而不是通过控制台创建地址和队列是更好的做法吗?

在运行时创建的地址和队列的定义以二进制形式存储在代理的日志中,特别是在与消息存储位置分开的 "bindings" 日志中。在您的配置中,绑定日志默认位于 /var/lib/[broker]/data/bindings 中。

就最佳实践而言,它实际上取决于用例。有些用户喜欢 broker.xml 中的地址和队列定义。 broker.xml 可以在运行时更新,代理将部署新配置的地址和队列。然而,其他用户不喜欢手动编辑 broker.xml 而是宁愿使用管理 API 而不是通过 Web 控制台或通过其他管理界面(例如通过 Jolokia 的 HTTP、JMX、管理消息等) .).还有一些根本不管理地址或队列,只是允许代理自动创建其应用程序所需的资源。