SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Better Living Through Messaging -
Leveraging the HornetQ Message
        Broker at Shopzilla

        Mark Lui ( Merchant Services)
                    and
           Josh Long (Inventory)



                     - 1-
What is Messaging




                    - 2-
What is Messaging?

  Store and Forward
  Enables asynchronous communication
    • Reduces latency for information transfer




                                      - 3-
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-
Enterprise Application Integration

  Integration of data and services between applications
  Communication between information silos
  Approaches
    • File Transfer
    • Shared Database
    • Remote Procedure Call
    • Messaging




                                - 5-
Integration Patterns

  Patterns
    • Data Synchronization
    • Workflow
    • Portal




                             - 6-
Enterprise Application Integration

•   Approaches integration using messaging
•   Enables Event Driven Architecture
•   Multiple users of information




                                        - 7-
Message Queue Features

  Reliable
  Fast

   …
  Secure
  Duplicate message detection
  Flow control – Slow/Fast consumer handling
  Wild card destinations
  Durable subscription
  Scheduled Delivery



                                 - 8-
Message Queue Features

  Redelivery handling
    • DLQ/Discard
    • Delay redelivery

  Message Ordering on Topics
  Client side load balancing options
    • Random
    • Round Robin

  Message prioritization




                                 - 9-
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 -
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 -
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 -
High Availability - About Resiliency

  Active/Passive replication
  HornetQ Example




                                - 13 -
High Availability - About Resiliency

  Live Server




                           - 14 -
High Availability - About Resiliency

  Backup Server




                           - 15 -
Clustering - About Scalability

  Client side load balancing




                                - 16 -
About performance

  Offer Bidding Service Performance Data




                              - 17 -
Spring Framework

  Connection Options




                        - 18 -
Spring Framework

  Alternative Connection Options




                               - 19 -
Spring Framework

  JMS Template




                   - 20 -
Spring Framework

  Message Driven POJOs : MessageListener




                            - 21 -
Spring Framework

  Message Driven POJOs : MessageListener




                            - 22 -
Spring Framework

  Message Driven POJOs : SessionAwareMessageListener




                            - 23 -
Spring Framework

  Message Driven POJOs : SessionAwareMessageListener




                            - 24 -
Spring Framework

  Spring Integration




                        - 25 -
Spring Framework

  Spring Integration




                        - 26 -
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 -
Merchant Service’s Order Bidding Service

  Demo




                         - 28 -
Inventory’s Offer Service

  Demo




                            - 29 -
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 -
Possible Future Opportunities

  SLA compliance
  Unified messaging
  Real-time, event driven architectures




                                - 31 -
Conclusion

  Q and A?
  Don't forget to tip your waiter!




                                      - 32 -

Mais conteúdo relacionado

Mais procurados

EAP6 performance Tuning
EAP6 performance TuningEAP6 performance Tuning
EAP6 performance Tuning
Praveen Adupa
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
Frank Munz
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administration
Muhammad Mansoor
 

Mais procurados (20)

EAP6 performance Tuning
EAP6 performance TuningEAP6 performance Tuning
EAP6 performance Tuning
 
Oracle WebLogic 11g Topology
Oracle WebLogic 11g TopologyOracle WebLogic 11g Topology
Oracle WebLogic 11g Topology
 
WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)WAS vs JBoss, WebLogic, Tomcat (year 2015)
WAS vs JBoss, WebLogic, Tomcat (year 2015)
 
Weblogic
WeblogicWeblogic
Weblogic
 
Weblogic security
Weblogic securityWeblogic security
Weblogic security
 
Weblogic server administration
Weblogic server administrationWeblogic server administration
Weblogic server administration
 
Oracle Weblogic Server 11g: System Administration I
Oracle Weblogic Server 11g: System Administration IOracle Weblogic Server 11g: System Administration I
Oracle Weblogic Server 11g: System Administration I
 
Introduction to weblogic
Introduction to weblogicIntroduction to weblogic
Introduction to weblogic
 
WebLogic FAQs
WebLogic FAQsWebLogic FAQs
WebLogic FAQs
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
 
Weblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencastWeblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencast
 
WLS
WLSWLS
WLS
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administration
 
WLST
WLSTWLST
WLST
 
WebLogic Server Work Managers and Overload Protection
WebLogic Server Work Managers and Overload ProtectionWebLogic Server Work Managers and Overload Protection
WebLogic Server Work Managers and Overload Protection
 
WebSphere Application Server JBoss TCO analysis
WebSphere Application Server JBoss TCO analysisWebSphere Application Server JBoss TCO analysis
WebSphere Application Server JBoss TCO analysis
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere concepts
 
Large Scale Migration from WebLogic to JBoss
Large Scale Migration from WebLogic to JBossLarge Scale Migration from WebLogic to JBoss
Large Scale Migration from WebLogic to JBoss
 
Weblogic application server
Weblogic application serverWeblogic application server
Weblogic application server
 

Destaque

LA Salesforce.com User Group: Shopzilla and Informatica Cloud
LA Salesforce.com User Group: Shopzilla and Informatica CloudLA Salesforce.com User Group: Shopzilla and Informatica Cloud
LA Salesforce.com User Group: Shopzilla and Informatica Cloud
Darren Cunningham
 

Destaque (20)

Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
Bizrate Insights iMedia Conference Presentation
Bizrate Insights iMedia Conference PresentationBizrate Insights iMedia Conference Presentation
Bizrate Insights iMedia Conference Presentation
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
 
LA Salesforce.com User Group: Shopzilla and Informatica Cloud
LA Salesforce.com User Group: Shopzilla and Informatica CloudLA Salesforce.com User Group: Shopzilla and Informatica Cloud
LA Salesforce.com User Group: Shopzilla and Informatica Cloud
 
Retail Reference Architecture Part 3: Scalable Insight Component Providing Us...
Retail Reference Architecture Part 3: Scalable Insight Component Providing Us...Retail Reference Architecture Part 3: Scalable Insight Component Providing Us...
Retail Reference Architecture Part 3: Scalable Insight Component Providing Us...
 
Real-time Recommendations for Retail: Architecture, Algorithms, and Design
Real-time Recommendations for Retail: Architecture, Algorithms, and DesignReal-time Recommendations for Retail: Architecture, Algorithms, and Design
Real-time Recommendations for Retail: Architecture, Algorithms, and Design
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By Design
 
Retail Reference Architecture Part 2: Real-Time, Geo Distributed Inventory
Retail Reference Architecture Part 2: Real-Time, Geo Distributed InventoryRetail Reference Architecture Part 2: Real-Time, Geo Distributed Inventory
Retail Reference Architecture Part 2: Real-Time, Geo Distributed Inventory
 
5 Conversion Rate Hacks That Yield Massive 3-5x Conversion Rate Improvements ...
5 Conversion Rate Hacks That Yield Massive 3-5x Conversion Rate Improvements ...5 Conversion Rate Hacks That Yield Massive 3-5x Conversion Rate Improvements ...
5 Conversion Rate Hacks That Yield Massive 3-5x Conversion Rate Improvements ...
 
Big Data for the Retail Business I Swan Insights I Solvay Business School
Big Data for the Retail Business I Swan Insights I Solvay Business SchoolBig Data for the Retail Business I Swan Insights I Solvay Business School
Big Data for the Retail Business I Swan Insights I Solvay Business School
 
Big data retail_industry_by VivekChutke
Big data retail_industry_by VivekChutkeBig data retail_industry_by VivekChutke
Big data retail_industry_by VivekChutke
 
The Big Data Revolution in Retail
The Big Data Revolution in RetailThe Big Data Revolution in Retail
The Big Data Revolution in Retail
 
Big Data in Retail: too big to ignore
Big Data in Retail: too big to ignoreBig Data in Retail: too big to ignore
Big Data in Retail: too big to ignore
 
Continuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile DevelopmentContinuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile Development
 
Connected Retail Reference Architecture
Connected Retail Reference ArchitectureConnected Retail Reference Architecture
Connected Retail Reference Architecture
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Competetive Differentiation - The past, present and future of newspapers
Competetive Differentiation - The past, present and future of newspapersCompetetive Differentiation - The past, present and future of newspapers
Competetive Differentiation - The past, present and future of newspapers
 
The Big Data Journey at Connexity - Big Data Day LA 2015
The Big Data Journey at Connexity - Big Data Day LA 2015The Big Data Journey at Connexity - Big Data Day LA 2015
The Big Data Journey at Connexity - Big Data Day LA 2015
 

Semelhante a Better Living Through Messaging - Leveraging the HornetQ Message Broker at Shopzilla

Membase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase Meetup - Silicon Valley
Membase Meetup - Silicon Valley
Membase
 
vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS Apps
VMware vFabric
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSEnterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMS
Bruce Snyder
 

Semelhante a Better Living Through Messaging - Leveraging the HornetQ Message Broker at Shopzilla (20)

RedHat MRG and Infinispan for Large Scale Integration
RedHat MRG and Infinispan for Large Scale IntegrationRedHat MRG and Infinispan for Large Scale Integration
RedHat MRG and Infinispan for Large Scale Integration
 
IBM MQ - better application performance
IBM MQ - better application performanceIBM MQ - better application performance
IBM MQ - better application performance
 
Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...
 
Membase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase Meetup - Silicon Valley
Membase Meetup - Silicon Valley
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with A...
 
vFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS AppsvFabric - Ideal Platform for SaaS Apps
vFabric - Ideal Platform for SaaS Apps
 
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache CamelJUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
 
Interconnect your future
Interconnect your futureInterconnect your future
Interconnect your future
 
Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
Virtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFireVirtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFire
 
Dataservices based on mesos and kafka kostiantyn bokhan dataconf 21 04 18
Dataservices based on mesos and kafka kostiantyn bokhan dataconf 21 04 18Dataservices based on mesos and kafka kostiantyn bokhan dataconf 21 04 18
Dataservices based on mesos and kafka kostiantyn bokhan dataconf 21 04 18
 
Migration to IBM SmartCloud Notes
Migration to IBM SmartCloud Notes Migration to IBM SmartCloud Notes
Migration to IBM SmartCloud Notes
 
Database as a Service - Tutorial @ICDE 2010
Database as a Service - Tutorial @ICDE 2010Database as a Service - Tutorial @ICDE 2010
Database as a Service - Tutorial @ICDE 2010
 
Au delà des brokers, un tour de l’environnement Kafka | Florent Ramière
Au delà des brokers, un tour de l’environnement Kafka | Florent RamièreAu delà des brokers, un tour de l’environnement Kafka | Florent Ramière
Au delà des brokers, un tour de l’environnement Kafka | Florent Ramière
 
InterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQInterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQ
 
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4jWebinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
 
Enterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMSEnterprise Messaging With ActiveMQ and Spring JMS
Enterprise Messaging With ActiveMQ and Spring JMS
 
Toronix - IBM WebSphere HA & High Availability Concepts
Toronix - IBM WebSphere HA & High Availability ConceptsToronix - IBM WebSphere HA & High Availability Concepts
Toronix - IBM WebSphere HA & High Availability Concepts
 
Kafka talk
Kafka talkKafka talk
Kafka talk
 

Mais de Joshua Long

Extending spring
Extending springExtending spring
Extending spring
Joshua Long
 
The spring 32 update final
The spring 32 update finalThe spring 32 update final
The spring 32 update final
Joshua Long
 
Spring in-the-cloud
Spring in-the-cloudSpring in-the-cloud
Spring in-the-cloud
Joshua Long
 

Mais de Joshua Long (20)

Economies of Scaling Software
Economies of Scaling SoftwareEconomies of Scaling Software
Economies of Scaling Software
 
Bootiful Code with Spring Boot
Bootiful Code with Spring BootBootiful Code with Spring Boot
Bootiful Code with Spring Boot
 
Microservices with Spring Boot
Microservices with Spring BootMicroservices with Spring Boot
Microservices with Spring Boot
 
Boot It Up
Boot It UpBoot It Up
Boot It Up
 
Have You Seen Spring Lately?
Have You Seen Spring Lately?Have You Seen Spring Lately?
Have You Seen Spring Lately?
 
Java Configuration Deep Dive with Spring
Java Configuration Deep Dive with SpringJava Configuration Deep Dive with Spring
Java Configuration Deep Dive with Spring
 
the Spring Update from JavaOne 2013
the Spring Update from JavaOne 2013the Spring Update from JavaOne 2013
the Spring Update from JavaOne 2013
 
Multi Client Development with Spring for SpringOne 2GX 2013 with Roy Clarkson
Multi Client Development with Spring for SpringOne 2GX 2013 with Roy ClarksonMulti Client Development with Spring for SpringOne 2GX 2013 with Roy Clarkson
Multi Client Development with Spring for SpringOne 2GX 2013 with Roy Clarkson
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
 
the Spring 4 update
the Spring 4 updatethe Spring 4 update
the Spring 4 update
 
Extending spring
Extending springExtending spring
Extending spring
 
The spring 32 update final
The spring 32 update finalThe spring 32 update final
The spring 32 update final
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
 
Integration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud FoundryIntegration and Batch Processing on Cloud Foundry
Integration and Batch Processing on Cloud Foundry
 
using Spring and MongoDB on Cloud Foundry
using Spring and MongoDB on Cloud Foundryusing Spring and MongoDB on Cloud Foundry
using Spring and MongoDB on Cloud Foundry
 
Spring in-the-cloud
Spring in-the-cloudSpring in-the-cloud
Spring in-the-cloud
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
 
The Cloud Foundry bootcamp talk from SpringOne On The Road - Europe
The Cloud Foundry bootcamp talk from SpringOne On The Road - EuropeThe Cloud Foundry bootcamp talk from SpringOne On The Road - Europe
The Cloud Foundry bootcamp talk from SpringOne On The Road - Europe
 
A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom
 
Multi client Development with Spring
Multi client Development with SpringMulti client Development with Spring
Multi client Development with Spring
 

Better Living Through Messaging - Leveraging the HornetQ Message Broker at Shopzilla

  • 1. Better Living Through Messaging - Leveraging the HornetQ Message Broker at Shopzilla Mark Lui ( Merchant Services) and Josh Long (Inventory) - 1-
  • 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-
  • 6. Integration Patterns  Patterns • Data Synchronization • Workflow • Portal - 6-
  • 7. Enterprise Application Integration • Approaches integration using messaging • Enables Event Driven Architecture • Multiple users of information - 7-
  • 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. 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 -
  • 14. High Availability - About Resiliency  Live Server - 14 -
  • 15. High Availability - About Resiliency  Backup Server - 15 -
  • 16. Clustering - About Scalability  Client side load balancing - 16 -
  • 17. About performance  Offer Bidding Service Performance Data - 17 -
  • 18. Spring Framework  Connection Options - 18 -
  • 19. Spring Framework  Alternative Connection Options - 19 -
  • 20. Spring Framework  JMS Template - 20 -
  • 21. Spring Framework  Message Driven POJOs : MessageListener - 21 -
  • 22. Spring Framework  Message Driven POJOs : MessageListener - 22 -
  • 23. Spring Framework  Message Driven POJOs : SessionAwareMessageListener - 23 -
  • 24. Spring Framework  Message Driven POJOs : SessionAwareMessageListener - 24 -
  • 25. Spring Framework  Spring Integration - 25 -
  • 26. Spring Framework  Spring Integration - 26 -
  • 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. Merchant Service’s Order Bidding Service  Demo - 28 -
  • 29. Inventory’s Offer Service  Demo - 29 -
  • 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. Possible Future Opportunities  SLA compliance  Unified messaging  Real-time, event driven architectures - 31 -
  • 32. Conclusion  Q and A?  Don't forget to tip your waiter! - 32 -