Поделитесь конфигом в кластере - PullRequest
0 голосов
/ 27 января 2020

Как я могу поделиться конфигурационным файлом в кластере с режимом отработки отказа? Я не хочу редактировать файлы artemis-user.properties, artemis-role.properties и broker.xml на каждом сервере в кластере.

Настройки кластера:

  • security-enabled: true
  • постоянство включено: true
  • каталог подкачки, каталог привязок, журнал-каталог, каталог больших сообщений, используемый с главного сервера

Настройки безопасности, такие как это:

<security-setting match="clusterQueue">
    <permission type="createNonDurableQueue" roles="amq"/>
    <permission type="deleteNonDurableQueue" roles="amq"/>
    <permission type="createDurableQueue" roles="amq"/>
    <permission type="deleteDurableQueue" roles="amq"/>
    <permission type="createAddress" roles="amq"/>
    <permission type="deleteAddress" roles="amq"/>
    <permission type="consume" roles="amq"/>
    <permission type="browse" roles="amq"/>
    <permission type="send" roles="amq"/>
    <!-- we need this otherwise ./artemis data imp wouldn't work -->
    <permission type="manage" roles="amq"/>
</security-setting>

Это возможно?

1 Ответ

1 голос
/ 27 января 2020

ActiveMQ Artemis не предоставляет какого-либо автоматизированного способа обмена конфигурацией между участниками кластера. Однако, поскольку вся конфигурация, на которую вы ссылаетесь, основана на тексте, ее довольно просто скопировать на брокеров с помощью стандартных инструментов и / или инфраструктуры. Например, вы могли бы использовать SCP для копирования файлов, создания с ними общего монтирования NFS и т. Д. c.

Даже в однородном кластере часто бывают небольшие различия в файлах конфигурации (например, для cluster-connection, acceptor и др. c.). В этом случае вы можете использовать замену системных свойств (на которую есть ссылка в документации ), чтобы извлечь биты из каждого брокера, которые необходимо настроить, а затем установить их в artemis.profile, например:

JAVA_ARGS="$JAVA_ARGS -DmyAcceptor=tcp://192.168.1.10:61616"

Затем укажите это системное свойство в вашем broker.xml, например:

<acceptor name="netty-acceptor">${myAcceptor}</acceptor>

Таким образом, вы можете иметь один и тот же broker.xml, общий для всех брокеров, но каждый из них может иметь своего artemis.profile с уникальными значениями, которые нужны каждому брокеру.

...