3. What is Messaging?
Store and Forward
Enables asynchronous communication
• Reduces latency for information transfer
- 3-
4. What is Messaging?
Loosely coupled distributed communication (Data or Command)
Exchange of messages between software components
Two forms
• Point-to-Point (Queue)
• Publish/Subscribe (Topic)
- 4-
5. Enterprise Application Integration
Integration of data and services between applications
Communication between information silos
Approaches
• File Transfer
• Shared Database
• Remote Procedure Call
• Messaging
- 5-
9. Message Queue Features
Redelivery handling
• DLQ/Discard
• Delay redelivery
Message Ordering on Topics
Client side load balancing options
• Random
• Round Robin
Message prioritization
- 9-
10. Introducing HornetQ
New ultra high performance enterprise grade messaging system
from JBoss
Apache V2 License
HornetQ 2.0.GA obtained scores up to 307% higher than
previously published SPECjms2007 benchmark results
“Throughput of 800K small non persistent messages per second
on a single 4 x 2.5GHz core server” – Tim Fox
- 10 -
11. HornetQ – Secret Sauce
LibAIO
• Linux Kernel 2.6 Subsystem
• Able to submit I/O requests without waiting for completion
HornetQ uses an append-only journal using LibAIO
ActiveMQ 6 will support LibAIO
- 11 -
12. ActiveMQ Issues
Difficult to configuration correctly
Prone to hang
Poor persistence options
• KahaDB – better scalability, shorter recovery time
• AMQ Message Store – faster
• JDBC database – too slow
- 12 -
13. High Availability - About Resiliency
Active/Passive replication
HornetQ Example
- 13 -
27. Messaging at Shopzilla
Merchant Service
• Offer Bidding Service – Using to scale
Inventory
• Offer Service
Dampening request to Coherence
Dampening request to Oracle for write behind
- 27 -
30. HornetQ – Lessons Learned
Use the right Connection Factory
Use Spring 2.5.6 or 3.0
For High Availability disable Spring reconnection logic
Be aware of the High Availability restart sequence
Paging is turned off by default
JMX is your friend
- 30 -