Apache ActiveMQ
| Apache ActiveMQ | |
|---|---|
| Apache ActiveMQ Project Logo | |
| Developer | Apache Software Foundation |
| Repository | ActiveMQ Repository |
| Written in | Java |
| Engine | |
| Operating system | Cross-platform |
| Type | Java Message Service, Message-oriented middleware, Enterprise Messaging System, SOA |
| License | Apache License 2.0 |
| Website | 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. Supported clients include Java via JMS 1.1 as well as several other "cross language" clients.[1] The communication is managed with features such as computer clustering and ability to use any database as a JMS persistence provider besides virtual memory, cache, and journal persistency.[2]
There's another broker under the ActiveMQ umbrella code-named Artemis.
History
[edit | edit source]The ActiveMQ project was originally created by its founders from LogicBlaze[3] in 2004, as an open source message broker, hosted by CodeHaus. The code and ActiveMQ trademark were donated to the Apache Software Foundation in 2007, where the founders continued to develop the codebase with the extended Apache community.
Artemis
[edit | edit source]Artemis is another broker under the ActiveMQ umbrella based on the HornetQ code-base which was donated[4] from the JBoss community to the Apache ActiveMQ community in 2015. Artemis is the "next generation" broker from ActiveMQ.[5][6] Artemis is a multi-protocol, embeddable, high performance, clustered, asynchronous messaging system.[7][8]
Technical features
[edit | edit source]ActiveMQ Classic[9] uses several modes for high availability, including both file-system and database row-level locking mechanisms, sharing of the persistence store via a shared filesystem, or true replication using Apache ZooKeeper. ActiveMQ supports a horizontal scaling mechanism called a Network of Brokers[10] out of the box. ActiveMQ supports a number of transport protocols, including OpenWire, STOMP, MQTT, AMQP, REST, and WebSockets.[11]
Usage
[edit | edit source]ActiveMQ is used in enterprise service bus implementations such as Apache ServiceMix[12] and Mule.[13] Other projects using ActiveMQ include Apache Camel[14] and Apache CXF[15] in SOA infrastructure projects.[16]
Benchmark
[edit | edit source]Coinciding with the release of Apache ActiveMQ 5.3, the world's first results for the SPECjms2007 industry standard benchmark were announced. Four results were submitted to the SPEC and accepted for publication. The results cover different topologies to analyze the scalability of Apache ActiveMQ in two dimensions.[17][18]
Commercial support
[edit | edit source]Apache is used in enterprise software and offers limited ActiveMQ support on a voluntary basis. Users that need more extensive support may need to consult commercial companies specializing in ActiveMQ.[19]
See also
[edit | edit source]Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
- Amazon Simple Queue Service
- Amazon Simple Notification Service
- Enterprise Integration Patterns
- Enterprise messaging system
- Event-driven SOA
- Message-oriented middleware
- Service-oriented architecture
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
Bibliography
[edit | edit source]- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
External links
[edit | edit source]- Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).
- Official GitHub repository