Zmodyfikuj plik %ACTIVEMQ_BASE%/conf/activemq.xml, nazwa użytkownika i hasło są przechowywane w pliku %ACTIVEMQ_BASE%/conf/credentials.properties,
activemq.xml szczegóły są następujące:
<!-- Licencjonowane dla Apache Software Foundation (ASF) na jednej lub więcej licencji Umowy licencyjne dla współtwórców. Zobacz plik NOTICE dystrybuowany z To dzieło zawiera dodatkowe informacje dotyczące własności praw autorskich. ASF udziela licencji na ten plik na licencję Apache, wersja 2.0 ("Licencja"); Nie wolno używać tego pliku, chyba że zgodnie z Licencja. Kopię Licencji można uzyskać pod adresem
http://www.apache.org/licenses/LICENSE-2.0
Chyba że wymaga tego obowiązujące prawo lub nie jest to na piśmie, oprogramowanie dystrybuowane na podstawie Licencji jest dystrybuowane na zasadzie "AS AS", BEZ GWARANCJI LUB JAKICHKOLWIEK WARUNKÓW, wyraźnych lub dorozumianych. Zobacz Licencję, aby poznać konkretne przepisy dotyczące uprawnień, oraz ograniczenia wynikające z Licencji. --> <!-- START SNIPPET: przykład --> <fasola 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">
<!-- Pozwala nam używać właściwości systemu jako zmiennych w tym pliku konfiguracyjnym --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <nazwa własności="lokalizacje"> <value>file:${activemq.conf}/credentials.properties</value> </property> </bean>
<!-- Umożliwia wyszukiwanie logów w konsoli hawtio --> <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery" lazy-init="fałszywy" scope="singleton" init-method="start" destroy-method="stop"> </bean>
<!-- <broker> Element ten służy do konfiguracji brokera 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"> <!-- Strategia constantPendingMessageLimitLimit jest używana do zapobiegania powolni konsumenci tematyczni blokują producentów i wpływają na innych konsumentów poprzez ograniczenie liczby zachowywanych wiadomości Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia dystrybucji - > <dispatchPolicy> <!-- Dystrybucja sekwencyjna - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia Odzyskiwania - > <subscriptionRecoveryPolicy> <!-- Odzyskaj tylko ostatnią wiadomość --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Najpierw zapisuje odwołanie do wiadomości w pamięci, a jeśli zużycie pamięci jest maksymalnie wykorzystane, referencja do wiadomości jest zapisywana w pliku tymczasowym --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategyLimit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- CV – > <policyEntry queue="PER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Strategia constantPendingMessageLimitLimit jest używana do zapobiegania powolni konsumenci tematyczni blokują producentów i wpływają na innych konsumentów poprzez ograniczenie liczby zachowywanych wiadomości Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia dystrybucji - > <dispatchPolicy> <!-- Dystrybucja sekwencyjna - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia Odzyskiwania - > <subscriptionRecoveryPolicy> <!-- Odzyskaj tylko ostatnią wiadomość --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Najpierw zapisuje odwołanie do wiadomości w pamięci, a jeśli zużycie pamięci jest maksymalnie wykorzystane, referencja do wiadomości jest zapisywana w pliku tymczasowym --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategyLimit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Enterprise - > <policyEntry queue="COM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Strategia constantPendingMessageLimitLimit jest używana do zapobiegania powolni konsumenci tematyczni blokują producentów i wpływają na innych konsumentów poprzez ograniczenie liczby zachowywanych wiadomości Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia dystrybucji - > <dispatchPolicy> <!-- Dystrybucja sekwencyjna - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia Odzyskiwania - > <subscriptionRecoveryPolicy> <!-- Odzyskaj tylko ostatnią wiadomość --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Najpierw zapisuje odwołanie do wiadomości w pamięci, a jeśli zużycie pamięci jest maksymalnie wykorzystane, referencja do wiadomości jest zapisywana w pliku tymczasowym --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategyLimit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Targi pracy – > <policyEntry queue="RECR.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Strategia constantPendingMessageLimitLimit jest używana do zapobiegania powolni konsumenci tematyczni blokują producentów i wpływają na innych konsumentów poprzez ograniczenie liczby zachowywanych wiadomości Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia dystrybucji - > <dispatchPolicy> <!-- Dystrybucja sekwencyjna - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia Odzyskiwania - > <subscriptionRecoveryPolicy> <!-- Odzyskaj tylko ostatnią wiadomość --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Najpierw zapisuje odwołanie do wiadomości w pamięci, a jeśli zużycie pamięci jest maksymalnie wykorzystane, referencja do wiadomości jest zapisywana w pliku tymczasowym --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategyLimit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Mikro-rekrutacja --> <policyEntry queue="MCOM.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Strategia constantPendingMessageLimitLimit jest używana do zapobiegania powolni konsumenci tematyczni blokują producentów i wpływają na innych konsumentów poprzez ograniczenie liczby zachowywanych wiadomości Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia dystrybucji - > <dispatchPolicy> <!-- Dystrybucja sekwencyjna - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia Odzyskiwania - > <subscriptionRecoveryPolicy> <!-- Odzyskaj tylko ostatnią wiadomość --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Najpierw zapisuje odwołanie do wiadomości w pamięci, a jeśli zużycie pamięci jest maksymalnie wykorzystane, referencja do wiadomości jest zapisywana w pliku tymczasowym --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategyLimit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Mikro poszukiwanie pracy - > <policyEntry queue="MPER.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Strategia constantPendingMessageLimitLimit jest używana do zapobiegania powolni konsumenci tematyczni blokują producentów i wpływają na innych konsumentów poprzez ograniczenie liczby zachowywanych wiadomości Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia dystrybucji - > <dispatchPolicy> <!-- Dystrybucja sekwencyjna - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia Odzyskiwania - > <subscriptionRecoveryPolicy> <!-- Odzyskaj tylko ostatnią wiadomość --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Najpierw zapisuje odwołanie do wiadomości w pamięci, a jeśli zużycie pamięci jest maksymalnie wykorzystane, referencja do wiadomości jest zapisywana w pliku tymczasowym --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategyLimit="1000"/> </pendingMessageLimitStrategy> </policyEntry>
<!-- Backend - > <policyEntry queue="ERP.>" producerFlowControl="true" memoryLimit="10mb"> <!-- Strategia constantPendingMessageLimitLimit jest używana do zapobiegania powolni konsumenci tematyczni blokują producentów i wpływają na innych konsumentów poprzez ograniczenie liczby zachowywanych wiadomości Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/slow-consumer-handling.html
--> <!-- Strategia dystrybucji - > <dispatchPolicy> <!-- Dystrybucja sekwencyjna - > <strictOrderDispatchPolicy/> </dispatchPolicy> <!-- Strategia Odzyskiwania - > <subscriptionRecoveryPolicy> <!-- Odzyskaj tylko ostatnią wiadomość --> <lastImageSubscriptionRecoveryPolicy/> </subscriptionRecoveryPolicy> <pendingQueuePolicy> <!-- Najpierw zapisuje odwołanie do wiadomości w pamięci, a jeśli zużycie pamięci jest maksymalnie wykorzystane, referencja do wiadomości jest zapisywana w pliku tymczasowym --> <fileQueueCursor/> </pendingQueuePolicy> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategyLimit="1000"/> </pendingMessageLimitStrategy> </policyEntry> </policyEntries> </policyMap> </destinationPolicy>
<!-- Kontekst zarządzania służy do konfiguracji, jak ActiveMQ jest eksponowany w JMX. Domyślnie ActiveMQ korzysta z serwera MBean uruchamianego przez JVM. Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/jmx.html --> <managementContext> <managementContext createConnector="false"/> </managementContext>
<!-- Skonfiguruj trwałość wiadomości dla brokera. Domyślna trwałość mechanizmem jest magazyn KahaDB (oznaczony tagiem KahaDB). Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/persistence.html --> <persistenceAdapter> <kahaDB directory="E:/activemq_data" enableJournalDiskSyncs="false" indexWriteBatchSize="1000" indexCacheSize="10000" journalMaxFileLength="32mb"
/> </persistenceAdapter>
<plugins> <!-- Konfiguruj uwierzytelnianie; Nazwa użytkownika, hasła i grupy --> <simpleAuthenticationPlugin> <users> <authenticationUser username="${activemq.username}" password="${activemq.password}" groups="admins"/> <authenticationUser username="${per.username}" password="${per.password}" groups="personal"/> <authenticationUser username="${mper.username}" password="${mper.password}" groups="mpersonal"/> <authenticationUser username="${com.username}" password="${com.password}" groups="company"/> <authenticationUser username="${mcom.username}" password="${mcom.password}" groups="mcompany"/> <authenticationUser username="${erp.username}" password="${erp.password}" groups="erp"/> <authenticationUser username="${recr.username}" password="${recr.password}" groups="recr"/> </users> </simpleAuthenticationPlugin>
<!-- Konfigurujmy mechanizm autoryzacji oparty na miejscu docelowym --> <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, kompania, mcompany, ERP, reCR" /> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin> </plugins>
<!-- SystemUsage kontroluje maksymalną ilość przestrzeni, jaką broker będzie miał Użyj przed wyłączeniem cache'owania i/lub spowolnieniem producentów. Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/producer-flow-control.html --> <systemUsage> <systemUsage> <memoryUsage> <percentUżycia pamięciOfJvmHeap="100" /> </memoryUsage> <storeUsage> <storeUsage limit="1 gb"/> </storeUsage> <tempUsage> <tempUsage limit="100 mb"/> </tempUsage> </systemUsage> </systemUsage>
<!-- Konektory transportowe udostępniają ActiveMQ przez dany protokół Klienci i inni brokerzy. Więcej informacji można znaleźć w następstwie:
http://activemq.apache.org/configuring-transports.html --> <transportConnectors> <!-- ochronę DOS, ogranicz łącza równoczesne do 1000 i rozmiar ramki do 100MB — > <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>
<!-- zniszczyć kontekst wiosny podczas wyłączenia, aby zatrzymać nabrzeże — > <shutdownHooks> <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /> </shutdownHooks>
</broker>
<!-- Włącz konsole webowe, API REST i Ajax oraz dema Konsole internetowe domyślnie wymagają logowania, można to wyłączyć w pliku jetty.xml
Zajrzyj na ${ACTIVEMQ_HOME}/conf/jetty.xml po więcej szczegółów --> <import zasob="jetty.xml"/>
</beans> <!-- KONIEC ŁYKANIA: przykład -->
Credentials.properties:
## --------------------------------------------------------------------------- ## Licencjonowane dla Apache Software Foundation (ASF) na jednej lub więcej podstawie ## umowy licencyjne dla współtwórców. Zobacz plik NOTICE dystrybuowany z ## To dzieło dla dodatkowych informacji dotyczących własności praw autorskich. ## ASF licencjonuje ten plik na licencję Apache, wersja 2.0 ## ("Licencja"); Nie wolno używać tego pliku, chyba że zgodnie z ## Licencja. Kopię Licencji można uzyskać pod adresem ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Chyba że wymaga tego obowiązujące prawo lub jest to uzgodnione na piśmie, oprogramowanie ## dystrybuowane na podstawie Licencji jest dystrybuowane na zasadzie "TAK JAK JEST", ## BEZ GWARANCJI LUB JAKICHKOLWIEK WARUNKÓW, wyraźnych lub dorozumianych. ## Zobacz Licencję, aby poznać konkretny język regulujący uprawnienia oraz ## ograniczenia wynikające z Licencji. ## ---------------------------------------------------------------------------
# Definiuje poświadczenia uwierzytelniające używane przez komponenty (takie jak konsolę webową) do dostępu do brokera
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=***
Powyższa konfiguracja wykazała, że dziś w monitorowaniu kolejki wystąpiła nieprawidłowość, a ostatecznie problem pojawił się tutaj:
Ponieważ konto używane w monitorowaniu kolejki to administrator projektu: system/manager(webapps\admin\WEB-INF\webconsole-embedded.xml
grupa administratorów, która wymaga uprawnień
|