Physical Address

Prague, Czechia, EU

ActiveMQ Artemis installation guideline for beginners

ActiveMQ Artemis is a high-performance, asynchronous messaging system designed to efficiently manage message-driven applications. It supports various messaging protocols, including AMQP, MQTT, STOMP, OpenWire, and JMS, making it a versatile choice for integrating complex systems and microservices.

How to Get

A single instance can handle up to millions messages per second!

You can download ActiveMQ Artemis directly from the official Apache ActiveMQ website:

  • Visit the official download page
  • Choose the version suitable for your operating system.
  • Download the latest stable release in either .zip or .tar.gz format.

How to Install

Prerequisities: Java 17 or higher, SUDO privileges

Step 1: Extract the archive

tar -xzf apache-artemis-<version>-bin.tar.gz -C /opt/

or for .zip file:

unzip apache-artemis-<version>-bin.zip -d /opt/

Step 2: Create group, user & permission

sudo addgroup --quiet --system activemq
sudo adduser --quiet --system --ingroup activemq \
--no-create-home --disabled-password activemq
sudo chown -R activemq:activemq /opt/apache-artemis-2.39.0/

Step 3: Create Broker instance

ActiveMQ Artemis cannot run directly from the unpacked directory. Instead one has to create a dedicated broker. The purpose of this extra step is to make it easier to upgrade as the broker implementation is separated from the data and configuration. Usually the directory is set to /var/lib/broker.

To create broker instance it is necessary to run following command

sudo /opt/artemis/bin/artemis create broker \
  —user admin \
  —password admin \
  —silent \
  —http-host 0.0.0.0 \
  —http-port 8161 \
  —relax-jolokia

When setting up an Apache ActiveMQ Artemis broker, you might need to access the management web console and Jolokia API remotely. Here’s what these options do:

–http-host 0.0.0.0 → Makes the web console accessible from any network, not just from localhost.

–http-port 8161 → Sets the port for the web console and Jolokia API (default is 8161).

–relax-jolokia → Allows remote access to Jolokia (JMX-over-HTTP) for monitoring.

These settings make remote management easier, but they also increase security risks. Always use firewalls, authentication, and access controls to protect your broker. 🚀

A broker instance directory will contain the following subdirectories:

  • bin: holds execution scripts associated with this instance.
  • etc: hold the instance configuration files
  • data: holds the data files used for storing persistent messages
  • log: holds rotating log files
  • tmp: holds temporary files that are safe to delete between broker runs

Finally, to run the broker instance execute:

$ sudo /var/lib/test-broker/bin/artemis run

Once the broker instance starts we can access the admin console at http://<<hostname>>:8161/console.