ActiveMQ
is an open source message broker that implements JMS specification.
What is Message
Broker?
Message
brokers receive messages from publishers and route them to consumers.
Is ActiveMQ
implements JMS specification?
Yes
What are other
products that implements JMS specification?
There
are multiple products that implement JMS specification.
· Amazon SQS with Java
Messaging Library
· Apache ActiveMQ
· Apache Qpid
· Oracle Weblogic
· EMS from TIBCO
· FFMQ, GNU LGPL
licensed
· FioranoMQ
· IBM MQ
· JBoss Messaging and
HornetQ from JBoss
· JORAM, from the OW2
Consortium
· Lightstreamer JMS
Extender
· Open Message Queue,
from Oracle
· OpenJMS, from The
OpenJMS Group
· RabbitMQ, from
Pivotal (JMS Client for RabbitMQ)
· Solace JMS from
Solace Systems
· SAP NetWeaver Process
Integration
· SonicMQ from Aurea
Software
· SwiftMQ
· Tervela
· Ultra Messaging
· webMethods from
Software AG
· WebSphere Application
Server from IBM
Even
though ActiveMQ implements JMS specification, apart from this, it provides more
features. For example, it support REST, WebSocket interfaces.
What is the latest
version of ActiveMQ?
At
the time of writing this tutorial ‘5.15.3’ is the latest verison, released in
Jan 2018.
Is ActiveMQ written
in Java?
Yes
What are the
protocols supported by ActiveMQ?
AMQP,
MQTT, OpenWire and STOMP
Is ActiveMQ Support
languages other than java?
Yes,
at the time of writing this tutorial, ActiveMQ supports below languages.
· .NET
· C (defunct)
· C++
· Erlang
· Go
· Haskell
· Haxe (defunct)
· Jekejeke Prolog
· NetLogo
· Node.js
· Perl 5
· Pike
· Python
· Racket
· Ruby on Rails
· Tcl/Tk
What is Asynchronous
Messaging?
In
MOM (Message oriented Middleware) model, senders send the messages to message
brokers like Apache ActiveMQ, and receiver receive the messages from ActiveMQ.
There is no direct contact between sender and receiver. Senders do not have any
idea about receivers and Receivers do not have any idea about senders. This is
called Asynchronous Messaging.
Terminology
Message Broker: Message brokers
receive messages from publishers and route them to consumers.
Exchange: Messages are
published to exchanges. Exchanges distribute message copies to queues using
rules called bindings.
Producer: Program that sends
messages is called a producer.
Queue: Whatever the
messages sent by producers to ActiveMQ are stored in queues. Theoretically
queue is infinite size buffer, producers can send as many messages as they
want. Many producers can send messages that go to one queue. Many consumers can
try to receive data from one queue.
Consumer: It is a program that
receives messages from queue and processes them.
JMS Client: It is an application
that can send / receive messages from JMS provider.
JMS Producer: An application that
sends messages to JMS provider
JMS Consumer: An application that
receives messages from JMS provider
JMS Provider: An application that implements JMS
specification. Ex: Active MQ, Rabbit MQ etc.,
JMS Message: It is the basic
construct, used by JMS client, Receiver to send and receive messages. You can
send any information as part of jms message including text, binary, headers.
I
am using below maven dependency throughout the tutorial.
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>5.15.3</version>
</dependency>
No comments:
Post a Comment