Getting Started With JMS-ActiveMQ: Explained in a Simple Way

Java Message Service (JMS) is a very useful open source that works as a message-oriented middleware.

About JMS

  • The Java Message Service (JMS) API is a messaging standard that allows application components based on the Java Platform Enterprise Edition (Java EE) to create, send, receive, and read messages.
  • It enables distributed communication that is loosely coupled, reliable, and asynchronous.
  • Messaging is a technique to communicate with different software components and/or applications.
  • JMS, a messaging service, is mainly used to send and receive messages from one application to another.
  • There are different JMS brokers/providers like ActiveMQ, RabbitMQ, OpenMQ, etc.
  • I will be using ActiveMQ for this tutorial.

About ActiveMQ

  • ActiveMQ is a messaging service that facilitates disparate data at scale in enterprise systems. 
  • ActiveMQ is a popular open-source messaging service that is built in Java. 
  • It works as a message-oriented middleware or MoM for short.

Setting Up ActiveMQ

  • Java must be installed and set up (JAVA_HOME and PATH variables). I am using Java 8 for this tutorial.
  • Download ActiveMQ (we will use "Classic" for this tutorial)

ActiveMQ classic

Debugging the Java Message Service (JMS) API Using Lightrun

The Java Message Service API (JMS) was developed by Sun Microsystems in the days of Java EE. The JMS API provides us with simple messaging abstractions, including message producer, message consumer, and so on. Messaging APIs let us place a message on a “queue” and consume messages placed into said queue. This is immensely useful for high-throughput systems — instead of wasting user time by performing a slow operation in real time, an enterprise application can send a message. This non-blocking approach enables extremely high throughput while maintaining reliability at scale.

The message carries a transactional context which provides some guarantees on deliverability and reliability. As a result, we can post a message in a method and then just return, which provides similar guarantees to the ones we have when writing to an ACID database.

How To Use JMS ActiveMQ With Mule 4 – Part 6

This is the 6th part of the JMS ActiveMQ with the Mule 4 series. You can read previous parts here: Part 1, Part 2, Part 3, Part 4, Part 5  In this post, we will learn about the durable topic and how we can use it in MuleSoft. 

JMS topics are used to implement a pub-sub model where the same message is broadcasted to multiple subscribers. In simple words, A message published to a topic can be consumed by any number of subscribers. But a topic subscriber can only pick the message if it listens to the topic at the time of publishing of Message means the subscriber will miss the message if not listening to the topic.

Java JMS Oversimplified

Java Messaging Service

JMS or Java Messaging service is a solution for asynchronous communication using messages (objects). Initially, it was part of JSR (specification used in Java EE).

Simple Problem as Example to Explain: User Creation Service

Let's assume we have any service that can process only 100 requests per second. Any higher load will freeze service or put it down.

Fast JMS for Apache Pulsar: Modernize and Reduce Costs with Blazing Performance

Written by: Chris Bartholomew

DataStax recently announced the availability of Fast JMS for Apache Pulsar, a JMS 2.0 API. By combining the industry-standard Java Messaging Service (JMS) API with the cloud-native and horizontally scalable Apache Pulsar™ streaming platform, DataStax is providing a powerful way to modernize your JMS infrastructure, improve performance, and reduce costs. Fast JMS is open source and is included in DataStax’s Luna Streaming Enterprise support of Apache Pulsar.

Messaging With Spring Boot and Azure Service Bus

Like many other companies, my employer is currently on a journey towards a cloud-based infrastructure. We have decided to go with Azure as our cloud provider, and my team and I are the lucky ones to be in the front row to deploy our project to the cloud. Our project consists primarily of Spring Boot based microservices written in Kotlin that are hosted on a Kubernetes cluster.  

We have recently had to implement features that would benefit from event-based messaging using topics, which brought the opportunity to dig into Azure Service Bus. Luckily, Microsoft has created a Spring Boot Starter package that can communicate with Azure Service Bus using JMS and the AMQP messaging protocol. How difficult can that be? Going from zero to something that connects and sends a couple of messages is quite easy. Still, I have discovered some pitfalls that should be avoided before the application hits the production environment that isn’t covered by the Azure Service Bus JMS Spring Boot Starter client library documentation.