I’m pleased to announce the availability of Apache Apollo 1.0. Apollo is a faster, more reliable, easier to maintain messaging broker built from the foundations of the Apache ActiveMQ project but with a radically different threading architecture which lets it scale to large number of concurrent connections and destinations while using a constant number of threads.
- Stomp 1.0 Protocol Support
- Stomp 1.1 Protocol Support
- Topics and Queues
- Queue Browsers
- Durable Subscriptions on Topics
- Persistent/Reliable Messaging
- Message Expiration
- Message Swapping
- Message Selectors
- JAAS Authentication
- ACL based Authorization
- SSL/TLS Support and Certificate based Authentication
- REST Management API
I’ve re-run the STOMP benchmarks I covered in a previous post against the 1.0 release. The benchmark uses the STOMP protocol to build an apples to apples performance comparison between all the major STOMP servers. I’ve also built a new JMS benchmark which uses the JMS API build the same kind of performance comparisons. Both benchmarks are open source and available to be tried out on your choice of hardware. Or better yet, follow the simple instructions found in each project’s readme to run the benchmarks on EC2:
For those of you wondering why the ActiveMQ project create new message broker as a subproject, it’s because we wanted to address the shift in the processor market to multi core for the next major release. ActiveMQ currently employs complex thread locking which starts to become bottleneck as you increase the core count and you don’t end up fully exploiting the potential on large core count machines. By developing the solution as a subproject, it’s easier to explore the best options without impacting current main line development of ActiveMQ 5.x.
Now that the Apollo sub project has proven itself, I think it’s time to start integrating it into ActiveMQ. Ideally, ActiveMQ 6 switches Apollo’s messaging engine and adds/ports all the existing features we’ve come to expect out of ActiveMQ like networks of brokers and priority queues. But we should really be talking about this on the Apache mailing lists.. join me there!