Messaging sz

737 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
737
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Messaging sz

  1. 1. Better Living Through Messaging - Leveraging the HornetQ Message Broker at Shopzilla Mark Lui ( Merchant Services) and Josh Long (Inventory) - 1-
  2. 2. What is Messaging - 2-
  3. 3. What is Messaging?  Store and Forward  Enables asynchronous communication • Reduces latency for information transfer - 3-
  4. 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. 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-
  6. 6. Integration Patterns  Patterns • Data Synchronization • Workflow • Portal - 6-
  7. 7. Enterprise Application Integration • Approaches integration using messaging • Enables Event Driven Architecture • Multiple users of information - 7-
  8. 8. Message Queue Features  Reliable  Fast …  Secure  Duplicate message detection  Flow control – Slow/Fast consumer handling  Wild card destinations  Durable subscription  Scheduled Delivery - 8-
  9. 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. 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. 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. 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. 13. High Availability - About Resiliency  Active/Passive replication  HornetQ Example - 13 -
  14. 14. High Availability - About Resiliency  Live Server - 14 -
  15. 15. High Availability - About Resiliency  Backup Server - 15 -
  16. 16. Clustering - About Scalability  Client side load balancing - 16 -
  17. 17. About performance  Offer Bidding Service Performance Data - 17 -
  18. 18. Spring Framework  Connection Options - 18 -
  19. 19. Spring Framework  Alternative Connection Options - 19 -
  20. 20. Spring Framework  JMS Template - 20 -
  21. 21. Spring Framework  Message Driven POJOs : MessageListener - 21 -
  22. 22. Spring Framework  Message Driven POJOs : MessageListener - 22 -
  23. 23. Spring Framework  Message Driven POJOs : SessionAwareMessageListener - 23 -
  24. 24. Spring Framework  Message Driven POJOs : SessionAwareMessageListener - 24 -
  25. 25. Spring Framework  Spring Integration - 25 -
  26. 26. Spring Framework  Spring Integration - 26 -
  27. 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 -
  28. 28. Merchant Service’s Order Bidding Service  Demo - 28 -
  29. 29. Inventory’s Offer Service  Demo - 29 -
  30. 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 -
  31. 31. Possible Future Opportunities  SLA compliance  Unified messaging  Real-time, event driven architectures - 31 -
  32. 32. Conclusion  Q and A?  Don't forget to tip your waiter! - 32 -

×