Skip to main content

ActiveMQ Easy Config

This project aims a easy way to setup a network of ActiveMQ brokers. You can change easily the topology and this script will create the configurations based on your setup. ActiveMQ Easy Config will produce for you:

  • An activemq.xml file for each broker with the specific configuration for the broker
  • A Docker image for each broker to easy adapt in your container orchestrator.
  • A script for run the docker image locally in order to test your network locally.

How it works?

Let's take an example of a duplex connection between two ActiveMQ brokers:


   +----------+                    +----------+
   |          |       Duplex       |          |  
   | Broker 1 | ---<-->----<-->--- | Broker 2 |
   |          |                    |          | 
   +----------+                    +----------+

First you have to define the yaml file with the configuration of your network:

brokers:
  node1: "static:(tcp://node1:61616)"
  node2: "static:(tcp://node2:61616)"

networks:
  common_configuration:
    set_broker_name: "false"
    queue:
      conduit_subscriptions: "false"
      consumer_ttl: "1"
      duplex: "true"
      message_ttl: "-1"
      physical_name: ">"
      user_name: "admin"
    topic:
      conduit_subscriptions: "true"
      consumer_ttl: "1"
      duplex: "true"
      message_ttl: "-1"
      physical_name: ">"
      user_name: "admin"

  network_connector:
    node1:
      to:
        - node2
      config:
        queue:
          duplex: "false"
        topic:
          _ignore: "true"
    node2:
      to:
        - node1

The first topic in the yaml will define the broker and your respective connection. If you intend to use docker, the address can be the broker name.

You can see a lot of examples of network of brokers in the directory templates. In the same directory you have an activemq.xml file used as base also.

After create your template you can just run:

python aec.py \
    --config templates/simple-duplex-config.yaml \
    --activemq templates/activemq.xml \
    --save-to /my/path/project

And you'll get the follow files as result:

  • node1.xml
  • node2.xml

Optionally if you pass a path to a Dockerfile and a registry name, the system will create:

  • run.sh
  • build.sh
  • Dockerfile

You can run build.sh to build the docker images and run.sh to run the containers in your local machine.

The docker image created can easily adapted to run on Kubernetes, Docker Swarm or ECS.

In the folder check you can run a simple producer/consumer to check the communication.

Installing

Recommended:

pip install aec

get from source

Just clone the repository.

git clone git@github.com:byjg/activemq-easy-config

To Do

Help here is appreciate :)

  • This configuration can be expanded to other features on ActiveMQ.
  • K8s implementation
  • Docker swarm implementation
  • ECS implementation

Metadata

Release files for aec 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for aec 0.1.3
File Interpreter ABI Platform
aec-0.1.3-py3-none-any.whl Python 3 none any Details

Release files / aec-0.1.3-py3-none-any.whl

Download URL aec-0.1.3-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8cae3bffe4a0659419a8e9a689705ae9bc22a4d932f58240d5f3d44630be61d3
BLAKE2b-256 checksum
How to use checksums
185b423798d2f9ce538d5fbe3927206fa5170de80aaf92b2e050fdae40f7cead
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

Release history Release notifications | RSS feed

This release

0.1.3 This release

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page