Измените файл %ACTIVEMQ_BASE%/conf/activemq.xml, имя пользователя и пароль хранятся в файле %ACTIVEMQ_BASE%/conf/credentials.properties,
activemq.xml детали следующие:
<!-- Лицензировано в Apache Software Foundation (ASF) под одним или несколькими номерами Лицензионные соглашения для участников. См. файл NOTICE, распространяемый с Это произведение для дополнительной информации о владении авторским правом. ASF лицензирует этот файл вам по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать этот файл, кроме как в соответствии с требованиями Лицензия. Вы можете получить копию лицензии по адресу
http://www.apache.org/licenses/LICENSE-2.0
Если это не требует применимого законодательства или не согласовано письменно, программное обеспечение распространяется по лицензии на принципе «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. лицензию для конкретного языка, регулирующего права и ограничения по лицензии. --> <!-- START ФРАГМЕНТ: пример --> <фасоль xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<!-- Позволяет использовать свойства системы в качестве переменных в этом конфигурационном файле --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <имя свойства="локации"> <value>File:${activemq.conf}/credentials.properties</value> </property> </bean>
<!-- Позволяет искать логи в Hawtio консоли --> <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery" lazy-init="ложный" scope="singleton" init-method="start" destroy-method="stop"> </bean>
<!-- <broker> Этот элемент используется для настройки брокера ActiveMQ. --> <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">
<destinationPolicy> <policyMap> <policyEntries> <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb"> <!-- Стратегия constantPendingMessageLimitStrategy используется для предотвращения Потребители замедлили тему, чтобы блокировать производителей и влиять на других потребителей ограничивая количество удерживаемых сообщений Для получения дополнительной информации см.:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Стратегия распределения — > <dispatchPolicy> <!-- Распространять последовательно - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Стратегия восстановления — > <subscriptionRecoveryPolicy> <!-- Восстановить только последнее сообщение --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Сначала сохраняется ссылка на сообщение в память, и если использование памяти максимально, ссылка на сообщение сохраняется в временном файле --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Резюме – > <policyEntry queue="PER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Стратегия constantPendingMessageLimitStrategy используется для предотвращения Потребители замедлили тему, чтобы блокировать производителей и влиять на других потребителей ограничивая количество удерживаемых сообщений Для получения дополнительной информации см.:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Стратегия распределения — > <dispatchPolicy> <!-- Распространять последовательно - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Стратегия восстановления — > <subscriptionRecoveryPolicy> <!-- Восстановить только последнее сообщение --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Сначала сохраняется ссылка на сообщение в память, и если использование памяти максимально, ссылка на сообщение сохраняется в временном файле --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Enterprise — > <policyEntry queue="COM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Стратегия constantPendingMessageLimitStrategy используется для предотвращения Потребители замедлили тему, чтобы блокировать производителей и влиять на других потребителей ограничивая количество удерживаемых сообщений Для получения дополнительной информации см.:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Стратегия распределения — > <dispatchPolicy> <!-- Распространять последовательно - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Стратегия восстановления — > <subscriptionRecoveryPolicy> <!-- Восстановить только последнее сообщение --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Сначала сохраняется ссылка на сообщение в память, и если использование памяти максимально, ссылка на сообщение сохраняется в временном файле --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Ярмарка вакансий – > <policyEntry queue="RECR.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Стратегия constantPendingMessageLimitStrategy используется для предотвращения Потребители замедлили тему, чтобы блокировать производителей и влиять на других потребителей ограничивая количество удерживаемых сообщений Для получения дополнительной информации см.:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Стратегия распределения — > <dispatchPolicy> <!-- Распространять последовательно - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Стратегия восстановления — > <subscriptionRecoveryPolicy> <!-- Восстановить только последнее сообщение --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Сначала сохраняется ссылка на сообщение в память, и если использование памяти максимально, ссылка на сообщение сохраняется в временном файле --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Микрорекрутинг — > <policyEntry queue="MCOM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Стратегия constantPendingMessageLimitStrategy используется для предотвращения Потребители замедлили тему, чтобы блокировать производителей и влиять на других потребителей ограничивая количество удерживаемых сообщений Для получения дополнительной информации см.:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Стратегия распределения — > <dispatchPolicy> <!-- Распространять последовательно - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Стратегия восстановления — > <subscriptionRecoveryPolicy> <!-- Восстановить только последнее сообщение --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Сначала сохраняется ссылка на сообщение в память, и если использование памяти максимально, ссылка на сообщение сохраняется в временном файле --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Микропоиск работы — > <policyEntry queue="MPER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Стратегия constantPendingMessageLimitStrategy используется для предотвращения Потребители замедлили тему, чтобы блокировать производителей и влиять на других потребителей ограничивая количество удерживаемых сообщений Для получения дополнительной информации см.:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Стратегия распределения — > <dispatchPolicy> <!-- Распространять последовательно - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Стратегия восстановления — > <subscriptionRecoveryPolicy> <!-- Восстановить только последнее сообщение --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Сначала сохраняется ссылка на сообщение в память, и если использование памяти максимально, ссылка на сообщение сохраняется в временном файле --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Бэкенд — > <policyEntry queue="ERP.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Стратегия constantPendingMessageLimitStrategy используется для предотвращения Потребители замедлили тему, чтобы блокировать производителей и влиять на других потребителей ограничивая количество удерживаемых сообщений Для получения дополнительной информации см.:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Стратегия распределения — > <dispatchPolicy> <!-- Распространять последовательно - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Стратегия восстановления — > <subscriptionRecoveryPolicy> <!-- Восстановить только последнее сообщение --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Сначала сохраняется ссылка на сообщение в память, и если использование памяти максимально, ссылка на сообщение сохраняется в временном файле --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy>
<!-- ManagementContext используется для настройки того, как ActiveMQ отображается в JMX. По умолчанию ActiveMQ использует сервер MBean, который запускается JVM. Для получения дополнительной информации см.:
http://activemq.apache.org/jmx.html --> <managementContext> <managementContext createConnector="false"/> </managementContext>
<!-- Настройте сохранение сообщений для брокера. Стандартная персистенция механизм — это хранилище KahaDB (обозначаемое тегом kahaDB). Для получения дополнительной информации см.:
http://activemq.apache.org/persistence.html --> <persistenceAdapter> <kahaDB directory="E:/activemq_data" enableJournalDiskSyncs="false" indexWriteBatchSize="1000" indexCacheSize="10000" journalMaxFileLength="32mb"
/> </persistenceAdapter>
<plugins> <!-- Настроить аутентификацию; Имя пользователя, пароли и группы --> <simpleAuthenticationPlugin> <users> <аутентификацияUser username="${activemq.username}" password="${activemq.password}" groups="admins"/> <аутентификацияUser username="${per.username}" password="${per.password}" groups="personal"/> <аутентификацияUser username="${mper.username}" password="${mper.password}" groups="mpersonal"/> <аутентификацияUser username="${com.username}" password="${com.password}" groups="company"/> <аутентификацияUser username="${mcom.username}" password="${mcom.password}" groups="mcompany"/> <аутентификацияUser username="${erp.username}" password="${erp.password}" groups="erp"/> <аутентификацияUser username="${recr.username}" password="${recr.password}" groups="recr"/> </users> </simpleAuthenticationPlugin>
<!-- Настроим механизм авторизации на основе назначения --> <authorizationPlugin> <map> <authorizationMap> <authorizationEntries> <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> <authorizationEntry queue="PER.>" read="personal, mpersonal, company, mcompany, erp, recr" write="personal" admin="personal" /> <authorizationEntry queue="MPER.>" read="personal, mpersonal, company, mcompany, erp, recr" write="mpersonal" admin="mpersonal" /> <authorizationEntry queue="COM.>" read="personal, mpersonal, company, mcompany, erp, recr" write="company" admin="company" /> <authorizationEntry queue="MCOM.>" read="personal, mpersonal, company, mcompany, erp, recr" write="mcompany" admin="mcompany" /> <authorizationEntry queue="ERP.>" read="personal, mpersonal, company, mcompany, erp, recr" write="erp" admin="erp" /> <authorizationEntry queue="RECR.>" read="personal, mpersonal, company, mcompany, erp, recr" write="recr" admin="recr" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="personal, mpersonal, company, mcompany, erp, recr" write="personal, mpersonal, company, mcompany, erp, recr" admin="personal, mpersonal, company, mcompany, erp, recr" /> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin> </plugins>
<!-- systemUsage контролирует максимальное пространство, которое занимает брокер Используйте до отключения кэширования и/или замедления производительов. Для получения дополнительной информации см.:
http://activemq.apache.org/producer-flow-control.html --> <systemUsage> <systemUsage> <memoryUsage> <memoryUsage percentOfJvmHeap="100" /> </memoryUsage> <storeUsage> <storeUsage limit="1 gb"/> </storeUsage> <tempUsage> <tempUsage limit="100 mb"/> </tempUsage> </systemUsage> </systemUsage>
<!-- Транспортные разъёмы предоставляют ActiveMQ по заданному протоколу Клиенты и другие брокеры. Для получения дополнительной информации см.:
http://activemq.apache.org/configuring-transports.html --> <transportConnectors> <!-- защиту DOS, ограничить одновременное подключение до 1000 МБ и размер кадра до 100 МБ --> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> </transportConnectors>
<!-- уничтожить весенний контекст отключения, чтобы остановить Джетти — > <shutdownHooks> <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /> </shutdownHooks>
</broker>
<!-- Включить веб-консоли, REST и Ajax API и демонстрации Веб-консоли требуют входа по умолчанию, вы можете отключить его в jetty.xml файле
Посмотрите ${ACTIVEMQ_HOME}/conf/jetty.xml для подробностей --> <import resource="jetty.xml"/>
</beans> <!-- КОНЕЦ ФРАГМЕНТА: пример -->
Удостоверения данных.свойства:
## --------------------------------------------------------------------------- ## Лицензировано Apache Software Foundation (ASF) по одному или нескольким ## Лицензионные соглашения для участников. См. файл NOTICE, распространяемый с ## Это произведение для дополнительной информации о владении авторским правом. ## ASF лицензирует этот файл вам по лицензии Apache, версия 2.0 ## («Лицензия»); Вы не можете использовать этот файл, кроме как в соответствии с требованиями ## Лицензия. Вы можете получить копию лицензии по адресу ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Если это не требуется действующим законодательством или не согласовано письменно, программное обеспечение ## распространяется по лицензии на принципе «КАК ЕСТЬ», ## БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. ## См. лицензию для конкретного языка, регулирующего права и ## ограничения по лицензии. ## ---------------------------------------------------------------------------
# Определяет учетные данные, которые будут использоваться компонентами (например, веб-консолью) для доступа к брокеру
activemq.username=*** activemq.password=***
per.username=*** per.password=***
mper.username=*** mper.password=***
com.username=*** com.password=***
mcom.username=*** mcom.password=***
erp.username=*** erp.password=***
recr.username=*** recr.password=***
Приведённая выше конфигурация обнаружила аномалию в сегодняшнем мониторинге очереди, и в итоге обнаружила, что проблема возникла здесь:
Поскольку аккаунт, используемый в мониторинге очереди, администратор проекта — system/manager(webapps\admin\WEB-INF\webconsole-embedded.xml
Группа администраторов, для которой требуются права
|