Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

DCM 2.0 consists of multiple components that are linked to the Blueriq Runtime. Because these components are separated from each other, they need a way to communicate with each other. To do that, aside from using HTTP protocol, the AMQP (Advanced Message Queueing is an essential component Protocol) is used. This technology enables multiple components to send messages to each other via multiple so-called queues. Queues are essential for the new DCM architecture. This page describes:

  • How queueing is used in the DCM setup
  • How to install RabbitMQ
  • How to configure RabbitMQ using the default configuration
  • How to override the default configuration

One of the advantages of messaging is that communication is asynchronous. This means that when a message has been sent, the producing component does not have to wait for an answer and can continue doing other tasks. The receiving component does not need to be running to be able to send a message to it. When a message has been delivered to the exchange, it will be placed in the bound queue and will be read when the receiving component is online. Also the order of receival is kept within the queue, and delivered in the same order to the receiving component.

For the DCM setup, we use several queues and exchanges. We use dead letter queues to store messages that could not be processed, because an error occurred when processing. The error should be visible in the log file. Messages on these dead letter queues will be automatically retried by the DCM Maintenance Application. If it exceeds the configured amount of retries it should be reviewed manually by a system administrator instead. There is no notification mechanism for dead letter messages, so Blueriq advises to check the dead letter queues periodically.

Queuing supports asynchronous communication between the different components. The overview on the Blueriq DCM architecture overview page shows the different components that communicate to with each other using a queue.

RabbitMQ

To use the asynchronous communication with queues, we need software that manages these queues. This software is called a message broker. The message broker is where queues are defined together with the corresponding exchanges.

Blueriq supports RabbitMQ as the message broker.

The following page describes how to install RabbitMQ: Installing Installation of RabbitMQ

Warning

The following steps will overwrite the existing configuration.

Automatic configuration

After RabbitMQ has been installed, we can configure the queues, exchanges and the bindings between the exchanges and queues. The default configuration has been attached to this page. This file is a JSON file which contains all queues, exchanges and bindings necessary for the DCM setup. It can be imported in the RabbitMQ dashboard in the "Overview" tab, under "Import definitions". 

View file
namedefinitions.json
height150

Image Removed

After importing the file it might be necessary to reconfigure the users. To add a new user so you can remove the guest user. please see: https://www.rabbitmq.com/access-control.html

Manual configuration

For manual configuration see Manual queueing configurationThe following page describes how to configure RabbitMQ: Configuring RabbitMQ