One thing that is common in the enterprise world, especially in highly regulated industries, is to have separation of duties. Role-based access controls (RBAC) have built-in support for separation of duties. Roles determine what operations a user can and cannot perform. This post provides an example of how to configure proper RBAC on top of Red Hat AMQ, a flexible, high-performance messaging platform based on the open source Apache ActiveMQ Artemis project.
In most of the cases, separation of duties on Red Hat AMQ can be divided into three primary roles:
- Administrator role, which will have all permissions
- Application role, which will have permission to publish, consume, or produce messages to a specific address, subscribe to topics or queues, or create and delete addresses.
- Operation role, which will have read-only permission via the web console or supported protocols
To implement those roles, Red Hat AMQ has several security features that need be configured, as described in the following sections.
Continue reading “Setting up RBAC on Red Hat AMQ Broker”
In this article, we will use a Python-based messaging client to connect and subscribe to a topic with a durable subscription in the Apache ActiveMQ Artemis broker. We will use the text-based STOMP protocol to connect and subscribe to the broker. STOMP clients can communicate with any STOMP message broker to provide messaging interoperability among many languages, platforms, and brokers.
If you need to brush up on the difference between persistence and durability in messaging, check Mary Cochran’s article on developers.redhat.com/blog.
A similar process can be used with Red Hat AMQ 7. The broker in Red Hat AMQ 7 is based on the Apache ActiveMQ Artemis project. See the overview on developers.redhat.com for more information.
Continue reading “Using the STOMP Protocol with Apache ActiveMQ Artemis Broker”
Monitoring Red Hat AMQ 7
Red Hat AMQ 7 includes some tools for monitoring the Red Hat AMQ broker. These tools allow you to get metrics about the performance and behavior of the broker and its resources. Metrics are very important for measuring performance and for identifying issues that are causing poor performance.
The following components are included for monitoring the Red Hat AMQ 7 broker:
- Management web console that is based on Hawtio: This console includes some perspectives and dashboards for monitoring the most important components of the broker.
- A Jolokia REST-like API: This provides full access to JMX beans through HTTP requests.
- Red Hat JBoss Operation Network: This is an enterprise, Java-based administration and management platform for developing, testing, deploying, and monitoring Red Hat JBoss Middleware applications.
These tools are incredible and fully integrated with the original product. However, there are cases where Red Hat AMQ 7 is deployed in environments where other tools are used to monitor the broker, for example,
Continue reading “Monitoring Red Hat AMQ 7 with the jmxtrans Agent”
In my previous article, Enabling Byteman Script with Red Hat JBoss Fuse and AMQ – Part 1, we found a basic use-case for Byteman scripts with Red Hat JBoss Fuse or Red Hat JBoss AMQ. However, the log file was generated separately and only limited operations were possible. In this article I will show you how to use a Java helper class. By using Java, we get advanced operations to view or modify the content. Also, using java.util.logging allows us to log the statements to fuse.log, avoiding the creation of any other log file.
Continue reading “Enabling Byteman Script with Red Hat JBoss Fuse and AMQ – Part 2”
In a production or customer environment it is not always possible to identify issues by looking at logs, nor is it always possible to setup remote debugging using an integrated development environment (IDE) and remote debug port. Often the issues are specific to the environment and can’t be reproduced. Having byteman scripts can help in these situations to identify issues without actual code changes. Whenever certain java class or logic is invoked, byteman scripts will also be invoked as per defined class and method in the byteman script.
Continue reading “Enabling Byteman Script with Red Hat JBoss Fuse and AMQ – Part1”
In this post, I wanted to address how to configure mKahaDB persistence storage on ActiveMQ for better management and reducing disk usage.
Default configured KahaDB persistence adapter works well when all the destinations (queues/topics) being managed by the broker have similar performance. However, an enterprise solution where several third parties are involved is never the case.
There are multiple queues or topics and different consumers or listeners listening to these queues/topics. Some consumers might be slower than other consumers. This will grow the message store’s disk usage rapidly. Due to this situation and being single KahaDB all store destinations might perform slow.
Continue reading “Configuring mKahaDB persistence storage for ActiveMQ”
We hear about Microservices a lot nowadays. Its implementation requires us to deal with new challenges. A key question that comes with using microservices is how to handle interactions in an asynchronous way. The answer to that is messaging.
Among other things, messaging features the following:
- Loose coupling since it decouples client from services.
- Improved availability since the message broker buffers messages until the consumer is able to process them.
- Supports a variety of communication patterns including request/reply, notifications, request/async response, publish/subscribe, publish/async response and more.
One of the most famous products in messaging is JBoss A-MQ. Among the questions I receive from customers is whether it’s possible to run Red Hat JBoss A-MQ on Red Hat OpenShift. The answer is yes, Red Hat JBoss A-MQ (A-MQ) is available as a containerized image that is designed for use with OpenShift. It allows developers to quickly deploy an A-MQ message broker in a hybrid cloud environment.
The configuration of the broker can be performed two ways:
Before we proceed with how to deploy A-MQ on OpenShift, let’s take a look at different A-MQ architectures in high availability environment.
Continue reading “JBoss A-MQ on OpenShift Cheat Sheet”
A-MQ 7 Beta provides fast, lightweight, and secure messaging for Internet-scale applications. It sets a strong foundation for building modern distributed reactive architecture. A-MQ offers the rich feature set and reliability that enterprise customers depend on. A-MQ gives you the strong foundation you need to build modern distributed applications.
Continue reading Download A-MQ 7 Beta 2 Today
Messaging is a critical aspect of integrating systems, and while there are many different messaging platforms and infrastructures, a common request is for “zero loss of messages.” From there, the terms “Persistence” and “Durability” often get thrown around, but what do those two things really mean?
Continue reading “Persistence vs. Durability in Messaging. Do you know the difference?”