SlideShare a Scribd company logo
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

Recommended for you

Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQIntroduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ

This document introduces AMQP messaging using RabbitMQ as a broker. It explains that AMQP and RabbitMQ allow applications to communicate asynchronously by sending and receiving messages through a broker, providing decoupling, queueing, load balancing and scalability. It provides details on RabbitMQ as an open source AMQP broker developed by Rabbit Technologies and the AMQP Working Group which maintains the AMQP standard.

amqprabbitmqelastic
Apache kafka
Apache kafkaApache kafka
Apache kafka

Apache Kafka is a fast, scalable, and distributed messaging system. It is designed for high throughput systems and can replace traditional message brokers due to its better throughput, built-in partitioning for scalability, replication for fault tolerance, and ability to handle large message processing applications. Kafka uses topics to organize streams of messages, partitions to distribute data, and replicas to provide redundancy and prevent data loss. It supports reliable messaging patterns including point-to-point and publish-subscribe.

kafka
GraalVM
GraalVMGraalVM
GraalVM

GraalVM is an ecosystem and runtime that provides performance advantages to JVM languages like Java, Scala, Groovy, and Kotlin as well as other languages. It includes a just-in-time compiler called Graal that improves efficiency, polyglot APIs for combining languages, and SDK for embedding languages and creating native images. Installation can be done with the JDK which includes Graal starting with JDK 9, or by directly downloading GraalVM from Oracle's website.

graalvmgraaljdk
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

Recommended for you

Building flexible ETL pipelines with Apache Camel on Quarkus
Building flexible ETL pipelines with Apache Camel on QuarkusBuilding flexible ETL pipelines with Apache Camel on Quarkus
Building flexible ETL pipelines with Apache Camel on Quarkus

This document discusses building flexible ETL pipelines with Apache Camel on Quarkus. It begins with an overview of what ETL is and the extract, transform, load process. It then discusses what Apache Camel is and how it is an open source integration framework that allows defining routing and mediation rules. The document introduces Camel K and Camel Quarkus, noting that Camel Quarkus brings Camel's integration capabilities to the Quarkus runtime. It argues that Apache Camel and Quarkus is a good combination for efficient ETL due to Camel's easy learning curve and extensibility and Quarkus' benefits like low memory usage and fast startup times. The document concludes with a demo

javacameletl
Kafka presentation
Kafka presentationKafka presentation
Kafka presentation

Kafka is an open source messaging system that can handle massive streams of data in real-time. It is fast, scalable, durable, and fault-tolerant. Kafka is commonly used for stream processing, website activity tracking, metrics collection, and log aggregation. It supports high throughput, reliable delivery, and horizontal scalability. Some examples of real-time use cases for Kafka include website monitoring, network monitoring, fraud detection, and IoT applications.

GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0

Codineers Meetup Rosenheim on 2022-10-20 GraalVMs native-image ermöglicht es, JVM Bytecode direkt in Maschinencode zu übersetzen. Das daraus resultierende Executable benötigt keine JVM zum Laufen, startet schneller und verbraucht weniger Speicher als eine traditionelle JVM-Anwendung – ein Segen für Cloud Computing, bei dem jeder CPU-Cycle und Megabyte an RAM bezahlt werden muss. Wäre es nicht großartig, wenn unser Lieblingsframework, Spring Boot, GraalVM direkt out of the box unterstützen würde? In diesem Talk zeigt Moritz Halbritter, Spring Boot committer, was mit Spring Boot 3 und Spring Framework 6 alles möglich sein wird und erlaubt auch einen Blick unter die Motorhaube, um zu sehen, wie das alles implementiert ist.

graalvmnative-imagespring
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

Recommended for you

Message Broker System and RabbitMQ
Message Broker System and RabbitMQMessage Broker System and RabbitMQ
Message Broker System and RabbitMQ

A presentation from internal meeting on Message Broker System and RabbitMQ. RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).

rabbitmqpythonmessage broker system
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction

This webinar introduces Apache Camel's large range of components for connectivity and protocol support, and how the 50+ patterns create a powerful toolbox that lets you build integration solutions "Lego style". This webinar will introduce you to the Camel community and why it is so important for any serious open source project to have a thriving community. Speaker: Claus Ibsen - Camel PMC member and top committer

camelintegrationwebinar
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

Java on Kubernetes may seem complicated, but after a bit of YAML and Dockerfiles, you will wonder what all that fuss was. But then the performance of your app in 1 CPU/1 GB of RAM makes you wonder. Learn how JVM ergonomics, CPU throttling, and GCs can help increase performance while reducing costs.

javajvmopenjdk
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

Recommended for you

19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ

This document provides an introduction to Apache ActiveMQ. It discusses how ActiveMQ is a Java Message Service (JMS) and message-oriented middleware that provides asynchronous messaging. It supports cross-language clients and features high performance clustering of brokers for scalability and master-slave configurations for persistence and reliability. The document uses an example of sending a "Hello World" message to demonstrate basic usage of ActiveMQ.

apacheapache activemqjms
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service

Overview of JMS messaging API. JMS (Java Messaging Service) is an API for asynchronous message based communication between Java based applications. JMS implementations (instances that implement the JMS API) are called JMS providers. JMS defines two messaging domains. Point-to-point queues are typically used between one or multiple message senders and a single message receiver. Topics are multi-point queues where messages are distributed to multiple receivers. As such topics resemble a black board. Like many other message oriented middleware technologies, JMS provides advanced functions like persistent message delivery mode or different message acknowledgment modes. Additionally, messages can be sent and received in a transacted mode thus ensuring that either all or no messages are sent and received. JMS integrates into EJB (Enterprise Java Beans) through message driven beans.

jndimdbjms provider
MuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleysMuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleys

Speaker: Anu Vijayamohan Host: Angel Alberici VirtualMuleys: 66 - 20220304-April Recording & Slides: https://meetups.mulesoft.com/events/details/mulesoft-online-group-english-presents-mulesoft-sizing-guidelines/ All Recordings & Slides: meetups.mulesoft.com/online-group-english/ & youtube.com/c/VirtualMuleysOnline/videos In this session we will discuss: Core concepts of sizing Factors that impact mule sizing T-Shirt sizing Sizing nuances in Cloudhub vs OnPrem vs RTF High Availability

mulesoftmulesoftmeetupsmulesoftdevelopers
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

Recommended for you

Performance Engineering Masterclass: Introduction to Modern Performance
Performance Engineering Masterclass: Introduction to Modern PerformancePerformance Engineering Masterclass: Introduction to Modern Performance
Performance Engineering Masterclass: Introduction to Modern Performance

Leandro Melendez from Grafana k6 starts off by providing a grounding in current expectations of what performance engineering and load testing entail. This session defines the modern challenges developers face, including continuous performance principles, Service Level Objectives (SLOs), and Service Level Indicators (SLIs). It delineates best practices and provides hands-on examples using Grafana k6, an open source modern load testing tool.

scylladbscyllanosql
GraalVm and Quarkus
GraalVm and QuarkusGraalVm and Quarkus
GraalVm and Quarkus

GraalVM is a high-performance, polyglot VM that can run programs in different languages. It addresses issues with the JVM like performance, startup times, updates, and legacy code. GraalVM uses an optimizing compiler called Graal that can make programs 2-5 times faster than the default C2 compiler through optimizations like inlining and partial escape analysis. Programs can also be compiled to native using SubstrateVM for faster startup times and lower memory footprint, but with less dynamic behavior. Quarkus addresses this by allowing the use of JVM frameworks like Spring and Hibernate within a GraalVM native environment.

graalvmquarkusjava
Mule memory leak issue
Mule memory leak issueMule memory leak issue
Mule memory leak issue

This document discusses Java memory leaks. It provides an overview of Java memory management and the behaviors observed with memory leaks. It describes how to generate heap dumps and analyze them using tools like Eclipse Memory Analyzer to identify leaked objects and their referencing paths. Specifically, it outlines how to use MAT to find leak suspects, inspect objects' references, and view thread stacks to locate the root cause of memory leaks.

mule 4jvm memory leakjava 8
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

Recommended for you

JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK

The document discusses Java Development Kit (JDK) versions 10 and OpenJDK. It provides an overview of JDK 10 including new features like local variable type inference and consolidating the JDK source code into a single repository. It also discusses migrating to JDK 10 and modular development. Finally, it covers OpenJDK, the open source version of Java, including its release cycle and Oracle's OpenJDK builds.

jdkopenjdk
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajev

Abstract: "Performance with Native Images" GraalVM is a high-performance polyglot runtime for dynamic, static, and native languages. One of the abilities of GraalVM is to compile Java programs ahead of time into native images that offer performance comparable to running on the JVM but have instant startup times and much lower runtime overhead. Generating native images is proven to work on real-world applications. In this session, you will learn how native images work and what is required to generate them and will look at several examples of compiling programs ahead of time and packaging them into minimal containers. You’ll also see how to configure native image generation, work around the limitations, and configuring your application to use native images.

Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQ

This document discusses enterprise integration patterns and deployments using Apache ActiveMQ. It provides an overview of key integration concepts like message channels, routing, types of messages, push and pull integration models, request/reply patterns, and job processing. It also covers deployment patterns such as hub and spoke and failover between data centers. Finally, it introduces Apache Camel as a powerful integration framework that supports these patterns and can be used with ActiveMQ.

opensource apache activemq camel esb integration m
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

Recommended for you

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!

Hear two software industry veterans as they discuss the answers to the load testing you asked. Get a better understanding of how to make your load tests more realistic. In this webinar, Lino Tadros, CEO of Falafel Software and Sergei Sokolov, Director of Testing and Performance Products at SmartBear Software team up to lead a dynamic discussion about load testing.

realistic loadperformance requirementswebinar
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview Slides

The document describes Deployit, an application release automation platform from XebiaLabs that optimizes the application deployment process. Deployit provides automated workflows to deploy applications across various infrastructure with benefits like reduced costs, accelerated time to market, and bridging the gap between development and operations.

deployitappllication release automationxebialabs
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

Using model-driven development and a drag-and-drop, point-and-click interface, Progress Rollbase frees you from time-consuming and costly manual application development. Progress Rollbase also lets you easily connect your application to all your data sources and SaaS applications--whether on premise or on a public, private or hybrid cloud. Find out how Progress Rollbase can help you build faster, more powerful apps.

rapid deploymentrollbasepacific platform
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

Recommended for you

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

This presentation outlines the need to expand the notion of continuous delivery to encompass operational excellence. It discusses how a cloud-native platform can automate and simplify many operational concerns and what desirable properties such a platform should possess. The presentation concludes with a brief discussion of Pivotal Cloud Foundry.

technologybusinesscloud
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

This presentation outlines the need to expand the notion of continuous delivery to encompass operational excellence. It discusses how a cloud-native platform can automate and simplify many operational concerns and what desirable properties such a platform should possess. The presentation concludes with a brief discussion of Pivotal Cloud Foundry.

cloudbeespivotal cloud foundrypivotal software
Gpc ireland jan20 2010 v5
Gpc ireland jan20 2010 v5Gpc ireland jan20 2010 v5
Gpc ireland jan20 2010 v5

This is a presentation that I did for the president of Progress Software in support for the 2010 Global Partner Conference

partnerspartner eventexecutive presentations
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

Recommended for you

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

The document discusses the need for a platform to support continuous delivery and DevOps practices. It describes challenges like an impedance mismatch between development and operations. An ideal platform would provide automation, standardization, and encapsulation while supporting concerns like scaling, availability and security. Cloud Foundry is presented as a platform that supports microservices, multiple languages/runtimes, and portability across infrastructures. It also facilitates DevOps practices and organizational usage through user privileges and multi-department abstractions.

cloud native platformcloud computingcontinuous delivery
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

Why Scale? When choose each scaling approach? SAFe? LeSS? Enterprise Kanban? Other? Scaling experts will compare the different approaches, share from their experience and answer questions from the audience This is the SAFe section presented by Roni Tamari

scaled agile frameworkagileil15safe
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?

Commonly Asked Q&A for Those Still on the Fence. Where are you in the move to Windows 10? Microsoft claims 350M devices now run Windows 10, but most enterprise customers have been waiting to roll it out. With the Anniversary Update now released, many IT organizations are putting their projects into gear and looking seriously at Windows 10 deployments. What have we learned in the first year of Windows 10? We invited Jay Parekh, Director of Enterprise Computing and Mobility at Netrix to join us to answer that question and to learn how early adopters have handled the migration, including their pitfalls and successes.

windows 10windows 10 compatibilityapplication rationalization
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

Recommended for you

2011 partner program update dec2011 v3
2011 partner program update dec2011 v32011 partner program update dec2011 v3
2011 partner program update dec2011 v3

The 2011 Progress Partner Program provides resources to help partners grow their business, including demand generation programs, empowerment programs, online communities, branding assets, and marketing support. Progress works closely with top partners through one-to-one campaigns and globally available workshops. The program aims to engage, empower, and expand partners throughout the relationship.

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

Slides from the Mar 22nd 2012 webinar "Optimize DevOps and Agile Strategies with Deployment Automation" with Michael Azoff (Ovum) & XebiaLabs

deployment automationdevopsagile
"Deploy. Sneller." Webinar Slides (Dutch webinar)
"Deploy. Sneller." Webinar Slides (Dutch webinar)"Deploy. Sneller." Webinar Slides (Dutch webinar)
"Deploy. Sneller." Webinar Slides (Dutch webinar)

This document discusses application deployment automation and the benefits of the Deployit platform from XebiaLabs. It outlines trends driving the need for deployment automation, best practices for application release automation (ARA), and how Deployit addresses these needs by providing features such as standardized deployment processes, automated checks and rollbacks, scalability, and insights into deployment metrics. Deployit is positioned as bridging the gap between development and operations teams through its ARA capabilities.

deployment automationxebialabsapplication release automation
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

Recommended for you

Delivering Eclipse Projects
Delivering Eclipse Projects Delivering Eclipse Projects
Delivering Eclipse Projects

Shipping open source Eclipse involves a broad range of activities; this presentation focuses on real-world experiences and solutions encountered when shipping Eclipse software with how-to examples.

eclipse indigoalmsoftware delivery
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

As applications for smartphones and tablets become incredibly popular, organizations encounter increasing pressure to quickly and successfully deliver testing for these devices. When faced with a mobile testing project, many testers find it tempting to apply the same methods and techniques used for desktop applications. Although some of these concepts transfer directly, testing mobile applications presents its own special challenges. Max Saperstone says if you follow the same practices and techniques as you have before, you will miss critical defects. Learn how to effectively test mobile applications, and how to add more structure and organization to generate effective test ideas to exploit the capabilities and weaknesses of mobile devices. Max shares first-hand experiences with testing mobile applications and discusses how to address various challenges. Work on real problems on your own device and learn firsthand how to be productive while testing mobile applications.

mobilemobile applications
Raygain Information Technology Overview
Raygain Information Technology OverviewRaygain Information Technology Overview
Raygain Information Technology Overview

Raygain is an IT Company with on time, cost-effective solutions serving customers across the globe. IT services by Raygain is about consulting, maintaining, delivering end to end solutions. We render software development services for system development, mobile applications, networking and complete development of entire business applications.

web designerpjava
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

Recommended for you

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

At this year's Cloud Expo East, Ayalla Goldschmidt, Senior Director of Product Marketing for Oracle Fusion Middleware and Java Platform, presented the ‘Top Five Best Practices for Your Application PaaS Audience’ highlighting successful application PaaS use cases. Her session focused on the type of workloads customers should consider starting with and what will make for successful cloud deployments, and more. Based on data from a recent Computerworld survey of 300 IT organizations, many businesses are in the process of developing a PaaS architecture and infrastructure requirements for their cloud-based application PaaS. Find out how your peers are planning for this new computing model and what the top five best practices are

weblogicprivate cloud paascloud paas
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

This webinar from Suneratech focuses on optimizing continuous delivery of Oracle Fusion Middleware applications. It discusses major challenges organizations face with the development and operations of Fusion Middleware environments. The webinar will demonstrate how to automate an existing Fusion Middleware environment using an automation tool to maximize output and minimize outages and deployment times. It will include a demo of the tool and a question and answer session.

oracle fusion middleware applications deveops cont
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

Build and Run Applications Better on Oracle Solaris 11.3 Tech Day, NYC Liane Praza, Senior Principal Software Engineer Ikroop Dhillon, Principal Product Manager June, 2016

solaris 11.3solaris applicationsoracle solaris
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

More Related Content

What's hot

The RabbitMQ Message Broker
The RabbitMQ Message BrokerThe RabbitMQ Message Broker
The RabbitMQ Message Broker
Martin Toshev
 
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)
Roman Kharkovski
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to Gradle
Strannik_2013
 
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQIntroduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
Dmitriy Samovskiy
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
Ramakrishna kapa
 
GraalVM
GraalVMGraalVM
Building flexible ETL pipelines with Apache Camel on Quarkus
Building flexible ETL pipelines with Apache Camel on QuarkusBuilding flexible ETL pipelines with Apache Camel on Quarkus
Building flexible ETL pipelines with Apache Camel on Quarkus
Ivelin Yanev
 
Kafka presentation
Kafka presentationKafka presentation
Kafka presentation
Mohammed Fazuluddin
 
GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0
MoritzHalbritter
 
Message Broker System and RabbitMQ
Message Broker System and RabbitMQMessage Broker System and RabbitMQ
Message Broker System and RabbitMQ
University of Alabama at Birmingham
 
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction
Claus Ibsen
 
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
Bruno Borges
 
19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ
Woo Young Choi
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
Peter R. Egli
 
MuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleysMuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleys
Angel Alberici
 
Performance Engineering Masterclass: Introduction to Modern Performance
Performance Engineering Masterclass: Introduction to Modern PerformancePerformance Engineering Masterclass: Introduction to Modern Performance
Performance Engineering Masterclass: Introduction to Modern Performance
ScyllaDB
 
GraalVm and Quarkus
GraalVm and QuarkusGraalVm and Quarkus
GraalVm and Quarkus
Sascha Rodekamp
 
Mule memory leak issue
Mule memory leak issueMule memory leak issue
Mule memory leak issue
JeeHyunLim
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
Wolfgang Weigend
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajev
Oracle Developers
 

What's hot (20)

The RabbitMQ Message Broker
The RabbitMQ Message BrokerThe RabbitMQ Message Broker
The RabbitMQ Message Broker
 
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)
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to Gradle
 
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQIntroduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
GraalVM
GraalVMGraalVM
GraalVM
 
Building flexible ETL pipelines with Apache Camel on Quarkus
Building flexible ETL pipelines with Apache Camel on QuarkusBuilding flexible ETL pipelines with Apache Camel on Quarkus
Building flexible ETL pipelines with Apache Camel on Quarkus
 
Kafka presentation
Kafka presentationKafka presentation
Kafka presentation
 
GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0GraalVM Native and Spring Boot 3.0
GraalVM Native and Spring Boot 3.0
 
Message Broker System and RabbitMQ
Message Broker System and RabbitMQMessage Broker System and RabbitMQ
Message Broker System and RabbitMQ
 
Apache Camel Introduction
Apache Camel IntroductionApache Camel Introduction
Apache Camel Introduction
 
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
 
19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
MuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleysMuleSoft Sizing Guidelines - VirtualMuleys
MuleSoft Sizing Guidelines - VirtualMuleys
 
Performance Engineering Masterclass: Introduction to Modern Performance
Performance Engineering Masterclass: Introduction to Modern PerformancePerformance Engineering Masterclass: Introduction to Modern Performance
Performance Engineering Masterclass: Introduction to Modern Performance
 
GraalVm and Quarkus
GraalVm and QuarkusGraalVm and Quarkus
GraalVm and Quarkus
 
Mule memory leak issue
Mule memory leak issueMule memory leak issue
Mule memory leak issue
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
 
GraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajevGraalVM Native Images by Oleg Selajev @shelajev
GraalVM Native Images by Oleg Selajev @shelajev
 

Similar to Advanced messaging with Apache ActiveMQ

Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQ
Rob 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 Slides
XebiaLabs
 
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
Progress
 
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
karunbakshi
 
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
VMware Tanzu
 
Gpc ireland jan20 2010 v5
Gpc ireland jan20 2010 v5Gpc ireland jan20 2010 v5
Gpc ireland jan20 2010 v5
Fourthman Communications
 
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
VMware 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 Tamari
AgileSparks
 
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
 
2011 partner program update dec2011 v3
2011 partner program update dec2011 v32011 partner program update dec2011 v3
2011 partner program update dec2011 v3
Fourthman Communications
 
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
XebiaLabs
 
"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 Practice
TechWell
 
Raygain Information Technology Overview
Raygain Information Technology OverviewRaygain Information Technology Overview
Raygain Information Technology Overview
Rajesh 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 Audience
Ruma 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 applications
SuneraTech
 
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
OTN Systems Hub
 
Effective load testing_&_monitoring
Effective load testing_&_monitoringEffective load testing_&_monitoring
Effective load testing_&_monitoring
ganesh_barcamp
 

Similar to 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
 
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
 
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
 
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
 

More from dejanb

How is this sausage made
How is this sausage madeHow is this sausage made
How is this sausage made
dejanb
 
Messaging for the cloud
Messaging for the cloudMessaging for the cloud
Messaging for the cloud
dejanb
 
Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse hono
dejanb
 
Building Open Source IoT Cloud
Building Open Source IoT CloudBuilding Open Source IoT Cloud
Building Open Source IoT Cloud
dejanb
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
dejanb
 
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
dejanb
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
dejanb
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
dejanb
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
dejanb
 

More from 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
 

Recently uploaded

20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 

Recently uploaded (20)

20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 

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