SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
Advanced Messaging with
       Apache ActiveMQ


Bosanac Dejan
May 2011




                                                                                                                 A Progress Software
1   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
                                                                                                FuseSource                    Company
                                                                                                                     A Progress Software
                                                                                                                     Company
About me

 Bosanac Dejan
 Senior Software Engineer at FUSESource - http://
  fusesource.com
 Apache ActiveMQ committer and PMC member
 Co-author of ActiveMQ in Action




                                                                                                                  A Progress Software
 2   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
What we are going to cover?




       What is ActiveMQ
       The Basics
       Flow control
       Scaling
       High Availability
       Future
       Conclusion




                                                                                                                       A Progress Software
    3     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
What is ActiveMQ?




                                                                                                                 A Progress Software
4   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
                                                                                                FuseSource                    Company
                                                                                                                     A Progress Software
                                                                                                                     Company
Apache ActiveMQ



 Apache ActiveMQ
     • Leading Open Source messaging platform
     • Supported Java Standards:
                           o JMS 1.1, J2EE 1.4, JCA 1.5 and XA


 Reliable, high performance messaging
     • Out-performs many legacy proprietary message queues
     • Configurable for many different deployments


 Multi-Protocol/Multi-Language Support


                                                                                                                   A Progress Software
 5    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Background




       ActiveMQ started in 2005 at CodeHaus
       Moved to Apache Software Foundation in 2006
       1,117,537 lines of code
       24 committers
       Now the most widely used open source messaging
        system on the planet




                                                                                                                      A Progress Software
    6    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
The Basics




                                                                                                                 A Progress Software
7   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
                                                                                                FuseSource                    Company
                                                                                                                     A Progress Software
                                                                                                                     Company
Messaging is




 Loosely coupled exchange of messages between
  applications
 Location transparency
 Can be persistent or non-persistent
 Can be transactional




                                                                                                                  A Progress Software
 8   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Topics




                                                                                                                 A Progress Software
9   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Topics




 One message goes to 0-to-many consumers
  based on the current subscribers
 Think like mailing lists or discussion forums
 Ideal for publishing business events
 Distributed observer pattern
 Allows one part of your system to notify anyone
  else who may be interested in an event




                                                                                                                  A Progress Software
10   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Queues




                                                                                                                  A Progress Software
11   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Queues




    Messages are load balanced across many consumers
    Each message goes to exactly one consumer
    Consumers compete for messages
    Its easy to browse and monitor queues
    Ideal for grid style applications




                                                                                                                   A Progress Software
12    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Challanges


 Create a general messaging platform
 Support variety of use-cases
     • Large number of clients
     • Large number of destinations
     • Slow consumers
 Provide enterprise feaures
     •    Security
     •    High availability
     •    Management
     •    etc




                                                                                                                      A Progress Software
13       Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control




                                                                                                                  A Progress Software
14   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
                                                                                                 FuseSource                    Company
                                                                                                                      A Progress Software
                                                                                                                      Company
Flow Control - Why?

 Dealing with deep queues
 Dealing with slow consumers
 We want to prevent broker from being flooded with
  messages
 We want to prevent broker running out of memory and
  other resources




                                                                                                                  A Progress Software
15   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control - How?




 Message Cursors
 Producer Flow Control




                                                                                                                  A Progress Software
16   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control - Cursors




                                                                                                                  A Progress Software
17   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control - Store-based Cursor




                                                                                                                  A Progress Software
18   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control - Non-persistent cursor




                                                                                                                  A Progress Software
19   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control - Limits

                        Per destination
     <destinationPolicy>
           <policyMap>
             <policyEntries>
               <policyEntry queue=">" memoryLimit="10mb"/>
             </policyEntries>
           </policyMap>
     </destinationPolicy>

                       System settings
     <systemUsage>
       <systemUsage>
         <memoryUsage>
           <memoryUsage limit="256 mb" />
         </memoryUsage>
         <storeUsage>
           <storeUsage limit="100 gb" />
         </storeUsage>
         <tempUsage>
           <tempUsage limit="10 gb" />
         </tempUsage>
       </systemUsage>
     </systemUsage>
                                                                                                                    A Progress Software
20     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control - Producer Flow Control

 Throttling producer speed to the speed of consumers




                                                                                                                  A Progress Software
21   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Flow Control - VM Cursor




     <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
       <pendingQueuePolicy>
         <vmQueueCursor/>
       </pendingQueuePolicy>
     </policyEntry>



                                                                                                                  A Progress Software
22   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Scaling




                                                                                                                  A Progress Software
23   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
                                                                                                 FuseSource                    Company
                                                                                                                      A Progress Software
                                                                                                                      Company
Scaling - Types




 Vertical scaling
 Horizontal scaling
 Traffic partitioning




                                                                                                                  A Progress Software
24   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Vertical Scaling




     Increase load capacity using a single broker can handle.



     Problems:
     • Thread count
     • Memory usage
     • CPU usage




                                                                                                                    A Progress Software
25     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Vertical Scaling - Threads




     What are threads used for
     • For Connections - Thread per Connection (blocking transport)
     • For Dispatching - Thread per Destination




                                                                                                                    A Progress Software
26     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Vertical Scaling - Number of Connections




     Use non-blocking transport

     <transportConnectors>
       <transportConnector name="nio" uri="nio://0.0.0.0:61616"/>
     </<transportConnectors>



     Enables handling large number of clients




                                                                                                                    A Progress Software
27     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Vertical Scaling - Number of Destinations




     Don’t use dedicated task runner

      ACTIVEMQ_OPTS="-Dorg.apache.activemq.UseDedicatedTaskRunner=false"



     Use optimized dispatch for queues
 <destinationPolicy>
       <policyMap>
         <policyEntries>
           <policyEntry topic=">" optimizedDispatch="true">
           ...
           </policyEntry>
         </policyEntries>
       </policyMap>
 </destinationPolicy>


                                                                                                                    A Progress Software
28     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Vertical Scaling - Memory


 Give broker enough memory

     ACTIVEMQ_OPTS="-Xmx2048M -Dorg.apache.activemq.UseDedicatedTaskRunner=false"



 Configure big enough memory usage
 <systemUsage>
   <systemUsage>
     <memoryUsage>
       <memoryUsage limit="1024 mb" />
     </memoryUsage>

       ...

   </systemUsage>
 </systemUsage>


                                                                                                                    A Progress Software
29     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Vertical Scaling - CPU




 Disable tight encoding

 It uses more CPU to create smaller packets

 uri = "failover://(tcp://localhost:61616wireFormat.tightEncodingEnabled=false)";




                                                                                                                   A Progress Software
 30   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Vertical Scaling - Conclusion




     There is a limit to the scalability a single machine can
                               give




                                                                                                                   A Progress Software
31    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Horizontal Scaling


     Increase load capacity using networked brokers




  Concepts:
 Network of Broker




                                                                                                                    A Progress Software
32     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Horizontal Scaling - Network of Brokers




                                                                                                                  A Progress Software
33   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Horizontal Scaling - NOB Usage

                                                       Configuration

                <networkConnector name="broker1-broker2"
                    uri="static:(tcp://broker2:61617)"
                    dynamicOnly="true"
                    prefetchSize="1000"
                    conduitSubscriptions="true"
                    decreaseNetworkConsumerPriority="true"
                    suppressDuplicateTopicSubscriptions="true"
                    networkTTL="3">
                </networkConnector>



                                                          Connecting


      failover://(tcp://broker1:61616,tcp://broker2:61616)?randomize=true




                                                                                                                  A Progress Software
34   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Horizontal Scaling - Conclusion




 More latency in processing messages
 Beware of complex topologies




                                                                                                                  A Progress Software
35   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Hybrid Scaling

     Partition traffic to more non-connected brokers




                                                                                                                    A Progress Software
36     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Hybrid Scaling - Conclusion




 Pros
     • You can use all the tuning techniques used in Vertical scaling
     • Have better Horizontal scaleability than using Network Of
       Brokers (Less broker cross talk)
 Cons
     • Added complexity required on the end user Application




                                                                                                                   A Progress Software
37    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
High Availability




                                                                                                                  A Progress Software
38   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
                                                                                                 FuseSource                    Company
                                                                                                                      A Progress Software
                                                                                                                      Company
High Availability




 Pure Master/Slave
 JDBC Master/Slave
 Shared File System Master/Slave




                                                                                                                  A Progress Software
39   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Pure Master-Slave




                                                                                                                  A Progress Software
40   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Pure Master-Slave




 Shared nothing
 Fully replicated
     • All messages
     • All acknowledgements
     • All transactions
 Slave does not start any transports or network
  connections




                                                                                                                   A Progress Software
41    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
JDBC Master-Slave




                                                                                                                  A Progress Software
42   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
JDBC Master-Slave




    Extreme reliability – but not as fast
    Recommended if already using an enterprise database
    No restriction on number of slaves
    Simple configuration




                                                                                                                    A Progress Software
43     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Shared Storage Master-Slave




                                                                                                                  A Progress Software
44   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Shared Storage Master-Slave




    Recommended if you have a SAN
    No restriction on number of slaves
    Simple configuration
    N.B. – ensure file locking works – and times out – NFSv4
     good!




                                                                                                                    A Progress Software
45     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Future




                                                                                                                  A Progress Software
46   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.
                                                                                                 FuseSource                    Company
                                                                                                                      A Progress Software
                                                                                                                      Company
Future - ActiveMQ Apollo


 http://activemq.apache.org/apollo

 ActiveMQ 5.x reached scalability and performance
  limits with the current architecture

 New broker core




                                                                                                                  A Progress Software
47   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Future - ActiveMQ Apollo




    Reactor Based Thread Model
    Scala 2.8 Implementation
    Protocol Agnostic
    REST Based Management




                                                                                                                    A Progress Software
48     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Future - ActiveMQ Apollo Performance


                            http://hiramchirino.net/blog




                                          10 producers/10 consumers
                                          single topic
                                          using Stomp
                                          20 byte payload



                                                                                                                  A Progress Software
49   Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Conclusions




    Dynamic community
    Leading in terms of messaging innovation
    Built for Enterprise
    Scalable, Good Performance, Reliable




                                                                                                                    A Progress Software
50     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company
Questions?




 ActiveMQ Web sites:
     • http://activemq.apache.org/
     • http://fusesource.com/products/enterprise-activemq/


 Blog:
     • http://www.nighttale.net/


 Twitter:
     • http://twitter.com/dejanb
     • http://twitter.com/fusenews


                                                                                                                   A Progress Software
51    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   Company

Mais conteúdo relacionado

Mais procurados

IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerDavid Currie
 
IBM MQ Online Tutorials
IBM MQ Online TutorialsIBM MQ Online Tutorials
IBM MQ Online TutorialsBigClasses.com
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQelliando dias
 
Securing your Pulsar Cluster with Vault_Chris Kellogg
Securing your Pulsar Cluster with Vault_Chris KelloggSecuring your Pulsar Cluster with Vault_Chris Kellogg
Securing your Pulsar Cluster with Vault_Chris KelloggStreamNative
 
Discover Quarkus and GraalVM
Discover Quarkus and GraalVMDiscover Quarkus and GraalVM
Discover Quarkus and GraalVMRomain Schlick
 
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...HostedbyConfluent
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 
ACI Multicast 구성 가이드
ACI Multicast 구성 가이드ACI Multicast 구성 가이드
ACI Multicast 구성 가이드Woo Hyung Choi
 
LLAP: long-lived execution in Hive
LLAP: long-lived execution in HiveLLAP: long-lived execution in Hive
LLAP: long-lived execution in HiveDataWorks Summit
 
Apache Tez - A New Chapter in Hadoop Data Processing
Apache Tez - A New Chapter in Hadoop Data ProcessingApache Tez - A New Chapter in Hadoop Data Processing
Apache Tez - A New Chapter in Hadoop Data ProcessingDataWorks Summit
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewPeter Broadhurst
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutronvivekkonnect
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...LINE Corporation
 
SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...
SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...
SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...SolarWinds
 

Mais procurados (20)

IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and Docker
 
IBM MQ Online Tutorials
IBM MQ Online TutorialsIBM MQ Online Tutorials
IBM MQ Online Tutorials
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQ
 
Red Hat Satellite
Red Hat SatelliteRed Hat Satellite
Red Hat Satellite
 
Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
 
Securing your Pulsar Cluster with Vault_Chris Kellogg
Securing your Pulsar Cluster with Vault_Chris KelloggSecuring your Pulsar Cluster with Vault_Chris Kellogg
Securing your Pulsar Cluster with Vault_Chris Kellogg
 
Discover Quarkus and GraalVM
Discover Quarkus and GraalVMDiscover Quarkus and GraalVM
Discover Quarkus and GraalVM
 
SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
 
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
 
Dataflow with Apache NiFi
Dataflow with Apache NiFiDataflow with Apache NiFi
Dataflow with Apache NiFi
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
ACI Multicast 구성 가이드
ACI Multicast 구성 가이드ACI Multicast 구성 가이드
ACI Multicast 구성 가이드
 
LLAP: long-lived execution in Hive
LLAP: long-lived execution in HiveLLAP: long-lived execution in Hive
LLAP: long-lived execution in Hive
 
Apache Tez - A New Chapter in Hadoop Data Processing
Apache Tez - A New Chapter in Hadoop Data ProcessingApache Tez - A New Chapter in Hadoop Data Processing
Apache Tez - A New Chapter in Hadoop Data Processing
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability Overview
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
Excitingly simple multi-path OpenStack networking: LAG-less, L2-less, yet ful...
 
OpenShift Multicluster
OpenShift MulticlusterOpenShift Multicluster
OpenShift Multicluster
 
SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...
SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...
SolarWinds Government and Education Webinar: Gaps Exist in Your Monitoring In...
 

Semelhante a Advanced Messaging with Apache ActiveMQ

Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQRob Davies
 
Running Realistic Load Tests: Answers to the Most Important Questions - Yours!
Running Realistic Load Tests: Answers to the Most Important Questions - Yours!Running Realistic Load Tests: Answers to the Most Important Questions - Yours!
Running Realistic Load Tests: Answers to the Most Important Questions - Yours!SmartBear
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs
 
Build Powerful Apps Fast with Progress Rollbase
Build Powerful Apps Fast with Progress RollbaseBuild Powerful Apps Fast with Progress Rollbase
Build Powerful Apps Fast with Progress RollbaseProgress
 
What Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiWhat Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiVMware Tanzu
 
Continuous Delivery Summit, Washington D.C., 2015
Continuous Delivery Summit, Washington D.C., 2015Continuous Delivery Summit, Washington D.C., 2015
Continuous Delivery Summit, Washington D.C., 2015karunbakshi
 
What Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiWhat Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiVMware Tanzu
 
SAFe (Scaled Agile Framework) 5 mins overview - Roni Tamari
SAFe (Scaled Agile Framework) 5 mins overview - Roni TamariSAFe (Scaled Agile Framework) 5 mins overview - Roni Tamari
SAFe (Scaled Agile Framework) 5 mins overview - Roni TamariAgileSparks
 
Windows 10 One Year Later: What’s Holding You Back?
Windows 10 One Year Later: What’s Holding You Back? Windows 10 One Year Later: What’s Holding You Back?
Windows 10 One Year Later: What’s Holding You Back? Flexera
 
Optimize DevOps and Agile Strategies with Deployment Automation
Optimize DevOps and Agile Strategies with Deployment AutomationOptimize DevOps and Agile Strategies with Deployment Automation
Optimize DevOps and Agile Strategies with Deployment AutomationXebiaLabs
 
"Deploy. Sneller." Webinar Slides (Dutch webinar)
"Deploy. Sneller." Webinar Slides (Dutch webinar)"Deploy. Sneller." Webinar Slides (Dutch webinar)
"Deploy. Sneller." Webinar Slides (Dutch webinar)XebiaLabs
 
Delivering Eclipse Projects
Delivering Eclipse Projects Delivering Eclipse Projects
Delivering Eclipse Projects Genuitec, LLC
 
Mobile Applications Testing: From Concepts to Practice
Mobile Applications Testing: From Concepts to PracticeMobile Applications Testing: From Concepts to Practice
Mobile Applications Testing: From Concepts to PracticeTechWell
 
Raygain Information Technology Overview
Raygain Information Technology OverviewRaygain Information Technology Overview
Raygain Information Technology OverviewRajesh Pandey
 
Cloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS AudienceCloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS AudienceRuma Sanyal
 
Optimize continuous delivery of oracle fusion middleware applications
Optimize continuous delivery of oracle fusion middleware applicationsOptimize continuous delivery of oracle fusion middleware applications
Optimize continuous delivery of oracle fusion middleware applicationsSuneraTech
 
Oracle Solaris Build and Run Applications Better on 11.3
Oracle Solaris  Build and Run Applications Better on 11.3Oracle Solaris  Build and Run Applications Better on 11.3
Oracle Solaris Build and Run Applications Better on 11.3OTN Systems Hub
 
Effective load testing_&_monitoring
Effective load testing_&_monitoringEffective load testing_&_monitoring
Effective load testing_&_monitoringganesh_barcamp
 

Semelhante a Advanced Messaging with Apache ActiveMQ (20)

Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQ
 
Running Realistic Load Tests: Answers to the Most Important Questions - Yours!
Running Realistic Load Tests: Answers to the Most Important Questions - Yours!Running Realistic Load Tests: Answers to the Most Important Questions - Yours!
Running Realistic Load Tests: Answers to the Most Important Questions - Yours!
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview Slides
 
Build Powerful Apps Fast with Progress Rollbase
Build Powerful Apps Fast with Progress RollbaseBuild Powerful Apps Fast with Progress Rollbase
Build Powerful Apps Fast with Progress Rollbase
 
What Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiWhat Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun Bakshi
 
Continuous Delivery Summit, Washington D.C., 2015
Continuous Delivery Summit, Washington D.C., 2015Continuous Delivery Summit, Washington D.C., 2015
Continuous Delivery Summit, Washington D.C., 2015
 
Gpc ireland jan20 2010 v5
Gpc ireland jan20 2010 v5Gpc ireland jan20 2010 v5
Gpc ireland jan20 2010 v5
 
What Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun BakshiWhat Does Your Platform Do For You? by Karun Bakshi
What Does Your Platform Do For You? by Karun Bakshi
 
SAFe (Scaled Agile Framework) 5 mins overview - Roni Tamari
SAFe (Scaled Agile Framework) 5 mins overview - Roni TamariSAFe (Scaled Agile Framework) 5 mins overview - Roni Tamari
SAFe (Scaled Agile Framework) 5 mins overview - Roni Tamari
 
Windows 10 One Year Later: What’s Holding You Back?
Windows 10 One Year Later: What’s Holding You Back? Windows 10 One Year Later: What’s Holding You Back?
Windows 10 One Year Later: What’s Holding You Back?
 
2011 partner program update dec2011 v3
2011 partner program update dec2011 v32011 partner program update dec2011 v3
2011 partner program update dec2011 v3
 
Optimize DevOps and Agile Strategies with Deployment Automation
Optimize DevOps and Agile Strategies with Deployment AutomationOptimize DevOps and Agile Strategies with Deployment Automation
Optimize DevOps and Agile Strategies with Deployment Automation
 
"Deploy. Sneller." Webinar Slides (Dutch webinar)
"Deploy. Sneller." Webinar Slides (Dutch webinar)"Deploy. Sneller." Webinar Slides (Dutch webinar)
"Deploy. Sneller." Webinar Slides (Dutch webinar)
 
Delivering Eclipse Projects
Delivering Eclipse Projects Delivering Eclipse Projects
Delivering Eclipse Projects
 
Mobile Applications Testing: From Concepts to Practice
Mobile Applications Testing: From Concepts to PracticeMobile Applications Testing: From Concepts to Practice
Mobile Applications Testing: From Concepts to Practice
 
Raygain Information Technology Overview
Raygain Information Technology OverviewRaygain Information Technology Overview
Raygain Information Technology Overview
 
Cloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS AudienceCloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS Audience
 
Optimize continuous delivery of oracle fusion middleware applications
Optimize continuous delivery of oracle fusion middleware applicationsOptimize continuous delivery of oracle fusion middleware applications
Optimize continuous delivery of oracle fusion middleware applications
 
Oracle Solaris Build and Run Applications Better on 11.3
Oracle Solaris  Build and Run Applications Better on 11.3Oracle Solaris  Build and Run Applications Better on 11.3
Oracle Solaris Build and Run Applications Better on 11.3
 
Effective load testing_&_monitoring
Effective load testing_&_monitoringEffective load testing_&_monitoring
Effective load testing_&_monitoring
 

Mais de dejanb

How is this sausage made
How is this sausage madeHow is this sausage made
How is this sausage madedejanb
 
Messaging for the cloud
Messaging for the cloudMessaging for the cloud
Messaging for the clouddejanb
 
Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse honodejanb
 
Building Open Source IoT Cloud
Building Open Source IoT CloudBuilding Open Source IoT Cloud
Building Open Source IoT Clouddejanb
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoTdejanb
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQdejanb
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollodejanb
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabricdejanb
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actiondejanb
 

Mais de dejanb (9)

How is this sausage made
How is this sausage madeHow is this sausage made
How is this sausage made
 
Messaging for the cloud
Messaging for the cloudMessaging for the cloud
Messaging for the cloud
 
Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse hono
 
Building Open Source IoT Cloud
Building Open Source IoT CloudBuilding Open Source IoT Cloud
Building Open Source IoT Cloud
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Advanced Messaging with Apache ActiveMQ

  • 1. Advanced Messaging with Apache ActiveMQ Bosanac Dejan May 2011 A Progress Software 1 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Company A Progress Software Company
  • 2. About me  Bosanac Dejan  Senior Software Engineer at FUSESource - http:// fusesource.com  Apache ActiveMQ committer and PMC member  Co-author of ActiveMQ in Action A Progress Software 2 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 3. What we are going to cover?  What is ActiveMQ  The Basics  Flow control  Scaling  High Availability  Future  Conclusion A Progress Software 3 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 4. What is ActiveMQ? A Progress Software 4 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Company A Progress Software Company
  • 5. Apache ActiveMQ  Apache ActiveMQ • Leading Open Source messaging platform • Supported Java Standards: o JMS 1.1, J2EE 1.4, JCA 1.5 and XA  Reliable, high performance messaging • Out-performs many legacy proprietary message queues • Configurable for many different deployments  Multi-Protocol/Multi-Language Support A Progress Software 5 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 6. Background  ActiveMQ started in 2005 at CodeHaus  Moved to Apache Software Foundation in 2006  1,117,537 lines of code  24 committers  Now the most widely used open source messaging system on the planet A Progress Software 6 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 7. The Basics A Progress Software 7 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Company A Progress Software Company
  • 8. Messaging is  Loosely coupled exchange of messages between applications  Location transparency  Can be persistent or non-persistent  Can be transactional A Progress Software 8 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 9. Topics A Progress Software 9 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 10. Topics  One message goes to 0-to-many consumers based on the current subscribers  Think like mailing lists or discussion forums  Ideal for publishing business events  Distributed observer pattern  Allows one part of your system to notify anyone else who may be interested in an event A Progress Software 10 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 11. Queues A Progress Software 11 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 12. Queues  Messages are load balanced across many consumers  Each message goes to exactly one consumer  Consumers compete for messages  Its easy to browse and monitor queues  Ideal for grid style applications A Progress Software 12 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 13. Challanges  Create a general messaging platform  Support variety of use-cases • Large number of clients • Large number of destinations • Slow consumers  Provide enterprise feaures • Security • High availability • Management • etc A Progress Software 13 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 14. Flow Control A Progress Software 14 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Company A Progress Software Company
  • 15. Flow Control - Why?  Dealing with deep queues  Dealing with slow consumers  We want to prevent broker from being flooded with messages  We want to prevent broker running out of memory and other resources A Progress Software 15 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 16. Flow Control - How?  Message Cursors  Producer Flow Control A Progress Software 16 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 17. Flow Control - Cursors A Progress Software 17 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 18. Flow Control - Store-based Cursor A Progress Software 18 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 19. Flow Control - Non-persistent cursor A Progress Software 19 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 20. Flow Control - Limits Per destination <destinationPolicy> <policyMap> <policyEntries> <policyEntry queue=">" memoryLimit="10mb"/> </policyEntries> </policyMap> </destinationPolicy> System settings <systemUsage> <systemUsage> <memoryUsage> <memoryUsage limit="256 mb" /> </memoryUsage> <storeUsage> <storeUsage limit="100 gb" /> </storeUsage> <tempUsage> <tempUsage limit="10 gb" /> </tempUsage> </systemUsage> </systemUsage> A Progress Software 20 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 21. Flow Control - Producer Flow Control  Throttling producer speed to the speed of consumers A Progress Software 21 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 22. Flow Control - VM Cursor <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb"> <pendingQueuePolicy> <vmQueueCursor/> </pendingQueuePolicy> </policyEntry> A Progress Software 22 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 23. Scaling A Progress Software 23 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Company A Progress Software Company
  • 24. Scaling - Types  Vertical scaling  Horizontal scaling  Traffic partitioning A Progress Software 24 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 25. Vertical Scaling Increase load capacity using a single broker can handle. Problems: • Thread count • Memory usage • CPU usage A Progress Software 25 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 26. Vertical Scaling - Threads What are threads used for • For Connections - Thread per Connection (blocking transport) • For Dispatching - Thread per Destination A Progress Software 26 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 27. Vertical Scaling - Number of Connections Use non-blocking transport <transportConnectors> <transportConnector name="nio" uri="nio://0.0.0.0:61616"/> </<transportConnectors> Enables handling large number of clients A Progress Software 27 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 28. Vertical Scaling - Number of Destinations Don’t use dedicated task runner ACTIVEMQ_OPTS="-Dorg.apache.activemq.UseDedicatedTaskRunner=false" Use optimized dispatch for queues <destinationPolicy> <policyMap> <policyEntries> <policyEntry topic=">" optimizedDispatch="true"> ... </policyEntry> </policyEntries> </policyMap> </destinationPolicy> A Progress Software 28 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 29. Vertical Scaling - Memory  Give broker enough memory ACTIVEMQ_OPTS="-Xmx2048M -Dorg.apache.activemq.UseDedicatedTaskRunner=false"  Configure big enough memory usage <systemUsage> <systemUsage> <memoryUsage> <memoryUsage limit="1024 mb" /> </memoryUsage> ... </systemUsage> </systemUsage> A Progress Software 29 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 30. Vertical Scaling - CPU  Disable tight encoding It uses more CPU to create smaller packets uri = "failover://(tcp://localhost:61616wireFormat.tightEncodingEnabled=false)"; A Progress Software 30 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 31. Vertical Scaling - Conclusion There is a limit to the scalability a single machine can give A Progress Software 31 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 32. Horizontal Scaling Increase load capacity using networked brokers Concepts:  Network of Broker A Progress Software 32 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 33. Horizontal Scaling - Network of Brokers A Progress Software 33 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 34. Horizontal Scaling - NOB Usage Configuration <networkConnector name="broker1-broker2" uri="static:(tcp://broker2:61617)" dynamicOnly="true" prefetchSize="1000" conduitSubscriptions="true" decreaseNetworkConsumerPriority="true" suppressDuplicateTopicSubscriptions="true" networkTTL="3"> </networkConnector> Connecting failover://(tcp://broker1:61616,tcp://broker2:61616)?randomize=true A Progress Software 34 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 35. Horizontal Scaling - Conclusion  More latency in processing messages  Beware of complex topologies A Progress Software 35 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 36. Hybrid Scaling Partition traffic to more non-connected brokers A Progress Software 36 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 37. Hybrid Scaling - Conclusion  Pros • You can use all the tuning techniques used in Vertical scaling • Have better Horizontal scaleability than using Network Of Brokers (Less broker cross talk)  Cons • Added complexity required on the end user Application A Progress Software 37 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 38. High Availability A Progress Software 38 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Company A Progress Software Company
  • 39. High Availability  Pure Master/Slave  JDBC Master/Slave  Shared File System Master/Slave A Progress Software 39 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 40. Pure Master-Slave A Progress Software 40 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 41. Pure Master-Slave  Shared nothing  Fully replicated • All messages • All acknowledgements • All transactions  Slave does not start any transports or network connections A Progress Software 41 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 42. JDBC Master-Slave A Progress Software 42 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 43. JDBC Master-Slave  Extreme reliability – but not as fast  Recommended if already using an enterprise database  No restriction on number of slaves  Simple configuration A Progress Software 43 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 44. Shared Storage Master-Slave A Progress Software 44 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 45. Shared Storage Master-Slave  Recommended if you have a SAN  No restriction on number of slaves  Simple configuration  N.B. – ensure file locking works – and times out – NFSv4 good! A Progress Software 45 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 46. Future A Progress Software 46 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. FuseSource Company A Progress Software Company
  • 47. Future - ActiveMQ Apollo  http://activemq.apache.org/apollo  ActiveMQ 5.x reached scalability and performance limits with the current architecture  New broker core A Progress Software 47 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 48. Future - ActiveMQ Apollo  Reactor Based Thread Model  Scala 2.8 Implementation  Protocol Agnostic  REST Based Management A Progress Software 48 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 49. Future - ActiveMQ Apollo Performance http://hiramchirino.net/blog 10 producers/10 consumers single topic using Stomp 20 byte payload A Progress Software 49 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 50. Conclusions  Dynamic community  Leading in terms of messaging innovation  Built for Enterprise  Scalable, Good Performance, Reliable A Progress Software 50 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company
  • 51. Questions?  ActiveMQ Web sites: • http://activemq.apache.org/ • http://fusesource.com/products/enterprise-activemq/  Blog: • http://www.nighttale.net/  Twitter: • http://twitter.com/dejanb • http://twitter.com/fusenews A Progress Software 51 Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. Company