Я новичок в ActiveMQ Artemis и не знаю, как изменять/редактировать/устанавливать какие-либо конфигурации (атрибуты) после создания адреса, очередей или чего-либо еще. В веб-консоли, когда я нажимаю, скажем, на адрес или очередь, на вкладке атрибутов я могу просмотреть массу информации, например: тип маршрутизации, адрес, роль, долговечность и т. д. Но когда я нажимаю на поле, Я могу только просматривать, но нет возможности редактировать.
Я попытался снимать в темноте, создав очередь с именем «TestTopic» в веб-консоли. Пошел в папку брокера и искал эту строку, используя следующую команду:
grep -R "TestTopic" .
Но не повезло!
Затем я попытался изучить сам документ java API, но у них есть только методы получения. А jolokia API предоставляет данные только для чтения.
Я подумал, что это может быть из-за моей роли, которая дает мне разрешение только на чтение, но это было бы странно, поскольку первоначальный пользователь должен иметь права администратора, и когда я проверил его, мне кажется, что это правильно с «набором *» метод доступа.
В файле artemis-roles.properties:
amq = admin
В файле broker.xml:
<security-settings>
<security-setting match = "#">
<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>
</security-settings>
В файле management.xml:
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<management-context xmlns = "http://activemq.apache.org/schema">
<authorisation>
<allowlist>
<entry domain = "hawtio"/>
</allowlist>
<default-access>
<access method = "list*" roles = "amq"/>
<access method = "get*" roles = "amq"/>
<access method = "is*" roles = "amq"/>
<access method = "set*" roles = "amq"/>
<access method = "*" roles = "amq"/>
</default-access>
<role-access>
<match domain = "org.apache.activemq.artemis">
<access method = "list*" roles = "amq"/>
<access method = "get*" roles = "amq"/>
<access method = "is*" roles = "amq"/>
<access method = "set*" roles = "amq"/>
<!-- Note count and browse are need to access the browse tab in the console-->
<access method = "browse*" roles = "amq"/>
<access method = "count*" roles = "amq"/>
<access method = "*" roles = "amq"/>
</match>
</role-access>
</authorisation>
</management-context>
У меня заканчиваются варианты, где искать. Если вы, ребята, можете указать мне правильное направление, это было бы очень признательно :)
Очереди практически неизменяемы. Это сделано для того, чтобы изменения конфигурации не оказали непреднамеренного негативного влияния на сообщения в очереди (например, изменение очереди на durable = false, а затем перезапуск брокера только для того, чтобы обнаружить, что все устойчивые сообщения в очереди удалены). Рекомендуемый способ «изменить» конфигурацию — создать новую очередь с желаемой конфигурацией, переместить сообщения (если есть) в эту очередь по мере необходимости и удалить старую очередь.
Если вы создаете долговременную очередь или адрес через веб-консоль, эти данные сохраняются в журнале «привязок» брокера. Он не записывается обратно в broker.xml
, поэтому вы не можете найти его с помощью grep
.