HornetQ
   HOME

TheInfoList



OR:

HornetQ is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
asynchronous messaging project from
JBoss WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on mult ...
. It is an example of
Message-oriented middleware Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. Message-oriented middleware is in contrast to streaming-oriented middleware where data is communicate ...
. HornetQ is an open source project to build a multi-protocol, embeddable, very high performance, clustered, asynchronous messaging system. During much of its development, the HornetQ code base was developed under the name JBoss Messaging 2.0.


History

Tim Fox started work on HornetQ in 2007 as JBoss Messaging 2.0. After 2 years of effort, Fox realised the original JBoss Messaging codebase had been almost completely rewritten and it was decided to release it under a different name. Fox came up with the name "HornetQ". On 24 Aug 2009 HornetQ 1.0 was launched. In September 2010 Fox released the results of a set of benchmarks comparing HornetQ performance with other popular messaging systems. Fox led the project until October 2010, when he stepped down as project lead to pursue other projects.


HornetQ Apache donation and Apache Artemis 1.0.0 release

On Monday, 1 June 2015, the HornetQ code base was donated to the
Apache ActiveMQ Apache ActiveMQ is an open source message broker written in Java together with a full Java Message Service (JMS) client. It provides "Enterprise Features" which in this case means fostering the communication from more than one client or server. Su ...
community in late 2014 and now resides as a sub project under the ActiveMQ umbrella named Apache ActiveMQ Artemis. Since the code donation, the developers have been working tirelessly to get an initial release of Artemis out the door; to allow folks to give it a whirl and to finalise the donation process. With the release of Apache Artemis 1.0.0, that process has come to a close and the code donation has now been completed. The active developer community has migrated across to Artemis; all of the developers that were active on HornetQ are now committers to the Artemis project; working on the code base as part of the ActiveMQ umbrella. The hope is that the union of the two great communities HornetQ and ActiveMQ will provide a path for a next generation of message broker with more advanced features, better performance and greater stability. The community hopes to achieve these goals using the Artemis core with its superior performance in combination with the vast feature offering of ActiveMQ. The Artemis project is targeted to house this next generation of message broker, as such any new feature requests or contributions from the HornetQ community should now be placed into the Artemis stream of development. HornetQ will be mostly in maintenance only mode, aside of fixing bugs of its active branches (2.3 and 2.4). The HornetQ could easily migrate to Artemis 1.0.0 as Artemis is already compatible with HornetQ clients; it supports a number of other protocols such as AMQP, Stomp, ActiveMQ's native messaging protocol 'OpenWire' (at Alpha with support for ActiveMQ JMS clients and basic transport) and also JMS 2. In addition the team started development on support for MQTT.


Features

It has the following relevant features: * Supports STOMP and now AMQP 1.0 protocols for cross-language clients * 100% JMS compliant * 8.2 Million Messages per second with SpecJMS * AIO (over Linux)/NIO (over any OS) based high performance journal. * Clustering for scalability and reliability * Supports Master/Slave architecture for fault tolerance * Supports discovery groups for dynamic node clusters * Core Bridges to connect to other HornetQ servers (over unreliable WAN links) * JMS Bridges to connect to other JMS compatible servers * Diverts to reroute traffic without modifying application code * Paging to support messages whose size exceeds the available RAM * Large message support to enable file messaging * XA and JTA transaction support * Application Server integration using the JCA standard (allows MDBs too) * High performance Netty
NIO Nio or NIO may refer to: * NI Opera, Opera company * Nio (Buddhism), guardians of the Buddha * Nio Inc., a Chinese electric automobile manufacturer * Nicaraguan córdoba, currency by ISO 4217 currency code * National Institute of Oceanography (d ...
connector over TCP, SSL and Servlet modes (for messaging between firewalls) * JMX based management * Last Value Queues (for protocols that support these) * Filters and wildcard support * Security features integrated with JAAS * Simple
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
configuration


References

{{reflist


External links


Simple client for HornetQ by Jruby


Message-oriented middleware