| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- <?xml version='1.0'?>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- -->
- <configuration xmlns="urn:activemq"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xi="http://www.w3.org/2001/XInclude"
- xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">
- <core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:activemq:core ">
- <name>{MQHOST}</name>
- <cluster-user>admin</cluster-user>
- <cluster-password>5XQxLV8k909ppNGm</cluster-password>
- <connectors>
- <connector name="artemis">tcp://{MQHOST}:61616</connector>
- </connectors>
- <broadcast-groups>
- <broadcast-group name="my-broadcast-group">
- <local-bind-port>5432</local-bind-port>
- <group-address>231.7.7.7</group-address>
- <group-port>9876</group-port>
- <broadcast-period>2000</broadcast-period>
- <connector-ref>artemis</connector-ref>
- </broadcast-group>
- </broadcast-groups>
- <discovery-groups>
- <discovery-group name="my-discovery-group">
- <group-address>231.7.7.7</group-address>
- <group-port>9876</group-port>
- <refresh-timeout>10000</refresh-timeout>
- </discovery-group>
- </discovery-groups>
- <cluster-connections>
- <cluster-connection name="my-cluster">
- <address></address>
- <connector-ref>artemis</connector-ref>
- <check-period>1000</check-period>
- <connection-ttl>5000</connection-ttl>
- <min-large-message-size>50000</min-large-message-size>
- <call-timeout>5000</call-timeout>
- <retry-interval>500</retry-interval>
- <retry-interval-multiplier>1.0</retry-interval-multiplier>
- <max-retry-interval>5000</max-retry-interval>
- <initial-connect-attempts>-1</initial-connect-attempts>
- <reconnect-attempts>-1</reconnect-attempts>
- <use-duplicate-detection>true</use-duplicate-detection>
- <message-load-balancing>ON_DEMAND</message-load-balancing>
- <max-hops>1</max-hops>
- <confirmation-window-size>32000</confirmation-window-size>
- <call-failover-timeout>30000</call-failover-timeout>
- <notification-interval>1000</notification-interval>
- <notification-attempts>2</notification-attempts>
- <discovery-group-ref discovery-group-name="my-discovery-group"/>
- </cluster-connection>
- </cluster-connections>
- <persistence-enabled>true</persistence-enabled>
- <!-- this could be ASYNCIO, MAPPED, NIO
- ASYNCIO: Linux Libaio
- MAPPED: mmap files
- NIO: Plain Java Files
- -->
- <journal-type>NIO</journal-type>
- <paging-directory>data/paging</paging-directory>
- <bindings-directory>data/bindings</bindings-directory>
- <journal-directory>data/journal</journal-directory>
- <large-messages-directory>data/large-messages</large-messages-directory>
- <!--
- if you want to retain your journal uncomment this following configuration.
- This will allow your system to keep 7 days of your data, up to 10G. Tweak it accordingly to your use case and capacity.
- it is recommended to use a separate storage unit from the journal for performance considerations.
- <journal-retention-directory period="7" unit="DAYS" storage-limit="10G">data/retention</journal-retention-directory>>
- -->
- <journal-datasync>true</journal-datasync>
- <journal-min-files>2</journal-min-files>
- <journal-pool-files>10</journal-pool-files>
- <journal-device-block-size>4096</journal-device-block-size>
- <journal-file-size>10M</journal-file-size>
- <!--
- This value was determined through a calculation.
- Your system could perform 8.93 writes per millisecond
- on the current journal configuration.
- That translates as a sync write every 112000 nanoseconds.
- Note: If you specify 0 the system will perform writes directly to the disk.
- We recommend this to be 0 if you are using journalType=MAPPED and journal-datasync=false.
- -->
- <journal-buffer-timeout>112000</journal-buffer-timeout>
- <!--
- When using ASYNCIO, this will determine the writing queue depth for libaio.
- -->
- <journal-max-io>1</journal-max-io>
- <!--
- You can verify the network health of a particular NIC by specifying the <network-check-NIC> element.
- <network-check-NIC>theNicName</network-check-NIC>
- -->
- <!--
- Use this to use an HTTP server to validate the network
- <network-check-URL-list>http://www.apache.org</network-check-URL-list> -->
- <!-- <network-check-period>10000</network-check-period> -->
- <!-- <network-check-timeout>1000</network-check-timeout> -->
- <!-- this is a comma separated list, no spaces, just DNS or IPs
- it should accept IPV6
- Warning: Make sure you understand your network topology as this is meant to validate if your network is valid.
- Using IPs that could eventually disappear or be partially visible may defeat the purpose.
- You can use a list of multiple IPs, and if any successful ping will make the server OK to continue running -->
- <!-- <network-check-list>10.0.0.1</network-check-list> -->
- <!-- use this to customize the ping used for ipv4 addresses -->
- <!-- <network-check-ping-command>ping -c 1 -t %d %s</network-check-ping-command> -->
- <!-- use this to customize the ping used for ipv6 addresses -->
- <!-- <network-check-ping6-command>ping6 -c 1 %2$s</network-check-ping6-command> -->
- <!-- how often we are looking for how many bytes are being used on the disk in ms -->
- <disk-scan-period>5000</disk-scan-period>
- <!-- once the disk hits this limit the system will block, or close the connection in certain protocols
- that won't support flow control. -->
- <max-disk-usage>100</max-disk-usage>
- <!-- should the broker detect dead locks and other issues -->
- <critical-analyzer>true</critical-analyzer>
- <critical-analyzer-timeout>120000</critical-analyzer-timeout>
- <critical-analyzer-check-period>60000</critical-analyzer-check-period>
- <critical-analyzer-policy>HALT</critical-analyzer-policy>
- <page-sync-timeout>112000</page-sync-timeout>
- <!-- the system will enter into page mode once you hit this limit.
- This is an estimate in bytes of how much the messages are using in memory
- The system will use half of the available memory (-Xmx) by default for the global-max-size.
- You may specify a different value here if you need to customize it to your needs.
- <global-max-size>100Mb</global-max-size>
- -->
- <acceptors>
- <!-- useEpoll means: it will use Netty epoll if you are on a system (Linux) that supports it -->
- <!-- amqpCredits: The number of credits sent to AMQP producers -->
- <!-- amqpLowCredits: The server will send the # credits specified at amqpCredits at this low mark -->
- <!-- amqpDuplicateDetection: If you are not using duplicate detection, set this to false
- as duplicate detection requires applicationProperties to be parsed on the server. -->
- <!-- amqpMinLargeMessageSize: Determines how many bytes are considered large, so we start using files to hold their data.
- default: 102400, -1 would mean to disable large mesasge control -->
- <!-- Note: If an acceptor needs to be compatible with HornetQ and/or Artemis 1.x clients add
- "anycastPrefix=jms.queue.;multicastPrefix=jms.topic." to the acceptor url.
- See https://issues.apache.org/jira/browse/ARTEMIS-1644 for more information. -->
- <!-- Acceptor for every supported protocol -->
- <acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;supportAdvisory=false;suppressInternalManagementObjects=false</acceptor>
- <!-- AMQP Acceptor. Listens on default AMQP port for AMQP traffic.-->
- <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpMinLargeMessageSize=102400;amqpDuplicateDetection=true</acceptor>
- <!-- STOMP Acceptor. -->
- <acceptor name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true</acceptor>
- <!-- HornetQ Compatibility Acceptor. Enables HornetQ Core and STOMP for legacy HornetQ clients. -->
- <acceptor name="hornetq">tcp://0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true</acceptor>
- <!-- MQTT Acceptor -->
- <acceptor name="mqtt">tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true;sslEnabled=true;keyStorePath=/opt/cert/cert.jks;keyStorePassword=FEM39lkx;trustStorePath=/opt/cert/cert.p12;trustStorePassword=FEM39lkx</acceptor>
- </acceptors>
- <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-setting match="#">
- <permission type="createNonDurableQueue" roles="amq_user"/>
- <permission type="deleteNonDurableQueue" roles="amq_user"/>
- <permission type="createDurableQueue" roles="amq_user"/>
- <permission type="deleteDurableQueue" roles="amq_user"/>
- <permission type="createAddress" roles="amq_user"/>
- <permission type="deleteAddress" roles="amq_user"/>
- <permission type="consume" roles="amq_user"/>
- <permission type="browse" roles="amq_user"/>
- </security-setting>
- </security-settings>
- <address-queue-scan-period>60000</address-queue-scan-period>
- <address-settings>
- <!-- service mq cofnig -->
- <address-setting match="mq.#">
- <!-- with -1 only the global-max-size is in use for limiting -->
- <max-size-bytes>-1</max-size-bytes>
- <message-counter-history-day-limit>14</message-counter-history-day-limit>
- <expiry-delay>10000</expiry-delay>
- <address-full-policy>DROP</address-full-policy>
- <auto-create-queues>true</auto-create-queues>
- <auto-create-addresses>true</auto-create-addresses>
- <auto-create-jms-queues>true</auto-create-jms-queues>
- <auto-create-jms-topics>true</auto-create-jms-topics>
- <auto-delete-queues>true</auto-delete-queues>
- <auto-delete-created-queues>true</auto-delete-created-queues>
- <auto-delete-queues-message-count>-1</auto-delete-queues-message-count>
- <auto-delete-queues-delay>10000</auto-delete-queues-delay>
- <auto-delete-addresses>true</auto-delete-addresses>
- <auto-delete-addresses-delay>1000</auto-delete-addresses-delay>
- <config-delete-queues>FORCE</config-delete-queues>
- <config-delete-addresses>FORCE</config-delete-addresses>
- </address-setting>
- <!-- if you define auto-create on certain queues, management has to be auto-create -->
- <address-setting match="activemq.management#">
- <dead-letter-address>DLQ</dead-letter-address>
- <expiry-address>ExpiryQueue</expiry-address>
- <redelivery-delay>0</redelivery-delay>
- <!-- with -1 only the global-max-size is in use for limiting -->
- <max-size-bytes>-1</max-size-bytes>
- <message-counter-history-day-limit>10</message-counter-history-day-limit>
- <address-full-policy>PAGE</address-full-policy>
- <auto-create-queues>true</auto-create-queues>
- <auto-create-addresses>true</auto-create-addresses>
- <auto-create-jms-queues>true</auto-create-jms-queues>
- <auto-create-jms-topics>true</auto-create-jms-topics>
- </address-setting>
- <!--default for catch all-->
- <address-setting match="#">
- <dead-letter-address>DLQ</dead-letter-address>
- <expiry-address>ExpiryQueue</expiry-address>
- <redelivery-delay>0</redelivery-delay>
- <!-- with -1 only the global-max-size is in use for limiting -->
- <max-size-bytes>-1</max-size-bytes>
- <message-counter-history-day-limit>10</message-counter-history-day-limit>
- <address-full-policy>PAGE</address-full-policy>
- <auto-create-queues>true</auto-create-queues>
- <auto-create-addresses>true</auto-create-addresses>
- <auto-create-jms-queues>true</auto-create-jms-queues>
- <auto-create-jms-topics>true</auto-create-jms-topics>
- <auto-delete-queues>false</auto-delete-queues>
- <auto-delete-addresses>false</auto-delete-addresses>
- </address-setting>
- <address-setting match="#">
- <redistribution-delay>0</redistribution-delay>
- </address-setting>
- </address-settings>
- <addresses>
- <address name="DLQ">
- <anycast>
- <queue name="DLQ" />
- </anycast>
- </address>
- <address name="ExpiryQueue">
- <anycast>
- <queue name="ExpiryQueue" />
- </anycast>
- </address>
- </addresses>
- <!-- Uncomment the following if you want to use the Standard LoggingActiveMQServerPlugin pluging to log in events
- <broker-plugins>
- <broker-plugin class-name="org.apache.activemq.artemis.core.server.plugin.impl.LoggingActiveMQServerPlugin">
- <property key="LOG_ALL_EVENTS" value="true"/>
- <property key="LOG_CONNECTION_EVENTS" value="true"/>
- <property key="LOG_SESSION_EVENTS" value="true"/>
- <property key="LOG_CONSUMER_EVENTS" value="true"/>
- <property key="LOG_DELIVERING_EVENTS" value="true"/>
- <property key="LOG_SENDING_EVENTS" value="true"/>
- <property key="LOG_INTERNAL_EVENTS" value="true"/>
- </broker-plugin>
- </broker-plugins>
- -->
- </core>
- </configuration>
|