SlideShare a Scribd company logo
Deploying FuseMQ in enterprise using Fuse
Fabric




Dejan Bosanac
FuseSource


1   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Presenter: Dejan Bosanac


     Senior Software Engineer at FuseSource -
      http://fusesource.com
     Apache ActiveMQ committer and PMC member
     Co-author of ActiveMQ in Action
     Blog:
       • http://www.nighttale.net/


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




2      © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Agenda




     Problems of large enterprise deployments
     Fuse Fabric in nutshell
     FuseMQ and Fuse Fabric
       • Creating brokers
       • Connecting
       • Topologies
     Fuse Management Console




3      © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Problems of large deployments




                                                              Integrate Everything
4   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Problems – Deploying and maintenance



     Main problems
       • Installing brokers on multiple hosts
                       o ssh, untar, set directories and environment
       • Setting configuration manually for every broker
                       o copying xml config, tweaking, testing
       • Updating configuration across cluster
       • Upgrading brokers




           It’s very tedious and error-prone process


5     © 2012 FuseSource Corp. All rights reserved.                     FuseSource Confidential
Problems – Traditional best-practice tips



     Keep XML as a template and configure node-specific
      details through properties
     Keep configuration in SVC system (git, svn, ...)
     Keep configuration separate from installation for easier
      upgrades



    Deployment with Fuse Fabric moves it to the next level



6      © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Problems - Clients



       Topology is very “static”
       Clients need to be aware of topology
       Clients need to know broker locations
       Changes are not easy as clients need to be updated
       Adding new resources (brokers) requires client updates
       Not suitable for “cloud” deployments


            Fuse Fabric makes deployments more “elastic”


7       © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Fuse Fabric in a nutshell




                                                              Integrate Everything
8   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Fuse Fabric in a nutshell


     How Fabric can help?

       • It provides centralized distributed broker configuration
       • It provides centralized distributed broker registry
       • Uses OSGi and Apache Karaf for easy spawning new broker
         instances
       • It provides additional tools for centralized configuration and
         monitoring (Fuse Management Console)




9      © 2012 FuseSource Corp. All rights reserved.      FuseSource Confidential
Fuse Fabric in a nutshell


  Installation
     • Features and bundle versions centrally stored and managed
     • Easy installation and upgrade
  Configuration
     • Stored in one place
     • Versioned
  Discovery
     • All brokers registered in central registry
     • Allows clients to connect without knowing broker locations
     • Allows easy creation of advanced topologies




10   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Fuse Fabric Architecture


  Zookeeper



     •    Replicated in-memory tree
     •    Similar to file system
     •    Highly-available
     •    Distributed
     •    Support network split
     •    Proven track record


     Ideal for distributed configuration and locking


11   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Fuse Fabric Architecture


  Containers
     • Apache Karaf instances provisioned through central registry (Zookeeper)




12   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Fuse Fabric Architecture


  Profiles:

     • Zookeeper nodes with conventional names
     • OSGi configuration for the node (so we know what features and
       bundles should be used)
     • Other configuration (centralized broker configuration)
     • Versioned




13   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Fuse Fabric - Profile

 FuseFabric:karaf@root> profile-display default
 Profile id: default
 Version : 1.0
 Parents :
 Associated Containers :

 Container settings
 ----------------------------
 Repositories :
                mvn:org.fusesource.fabric/fuse-fabric/7.0-SNAPSHOT/xml/features

 Features :
               fabric-agent
               karaf
               fabric-jaas
               fabric-core




14    © 2012 FuseSource Corp. All rights reserved.                    FuseSource Confidential
Fuse Fabric - Profile

 Agent Properties :
             org.ops4j.pax.url.mvn.repositories =
           http://repo1.maven.org/maven2,
           http://repo.fusesource.com/nexus/content/repositories/releases,
           http://repo.fusesource.com/nexus/content/groups/ea,
           http://repository.springsource.com/maven/bundles/release,
           http://repository.springsource.com/maven/bundles/external,
           http://scala-tools.org/repo-releases
             org.ops4j.pax.url.mvn.defaultRepositories =
           file:${karaf.home}/${karaf.default.repository}@snapshots,
           file:${karaf.home}/local-repo@snapshots



 Configuration details
 ----------------------------
 PID: org.fusesource.fabric.zookeeper
   zookeeper.url ${zk:root/ip}:2181




15    © 2012 FuseSource Corp. All rights reserved.                   FuseSource Confidential
FuseMQ and Fuse Fabric




                                                               Integrate Everything
16   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
FuseMQ features



  mq-base profile
     • Defines OSGi features and bundles to be installed
     • Defines basic broker settings
  mq-create command
     •    Helper command for creating brokers
     •    Creates an new profile based on mq-base
     •    Optionally creates new containers
     •    Assigns the profile to containers (essentially starts the broker)




17   © 2012 FuseSource Corp. All rights reserved.         FuseSource Confidential
MQ – Creating broker

FuseFabric:karaf@root> mq-create --create-container broker1 fusebroker
MQ profile fusebroker ready
Successfully created container broker1




18     © 2012 FuseSource Corp. All rights reserved.                 FuseSource Confidential
MQ Profile



     FuseFabric:karaf@root> profile-display fusebroker
     Profile id: fusebroker
     Version : 1.0
     Parents : mq-base
     Associated Containers : broker1

     Configuration details
     ----------------------------
     PID: org.fusesource.mq.fabric.server-fusebroker
       standby.pool default
       connectors openwire
       broker-name fusebroker
       data data/fusebroker
       config zk:/fabric/configs/versions/1.0/profiles/mq-base/broker.xml
       group default




19       © 2012 FuseSource Corp. All rights reserved.                       FuseSource Confidential
MQ – Assigning profile




 FuseFabric:karaf@root> container-create-ssh --host 192.168.1.106
 --user dejanb --password xxx broker1




 FuseFabric:karaf@root> mq-create --assign-container broker1 fusebroker
 MQ profile fusebroker ready
 Profile successfully assigned to broker1




20    © 2012 FuseSource Corp. All rights reserved.                  FuseSource Confidential
MQ - Benefits



  What did we achieve with this?

     • We can easily create new brokers with the same profiles
     • We can create new profile version with updated broker version
       and/or changed configuration
     • We can easily update all (or some) brokers by applying the new
       profile




21   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
MQ Profile - Management




  Create a new profile version
     • with upgraded bundles
     • and configuration changes
    Try it out on a non-production container
    Deploy to one or a few production containers
    Roll the full upgrade
    Easy rollback if anything goes wrong




22   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Broker Registry




                                                               Integrate Everything
23   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Broker Registry


  Brokers are organized in groups (clusters)
     • Cluster can have any number of brokers (with different names)
     • Put in “default” group if not specified




24   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Connecting to the Broker




  Clients need to have ZooKeeper URL
  There is a new discovery protocol (called fabric)
  Connecting is as easy as defining the group




25   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Connecting - Factory


 ActiveMQConnectionFactory factory =
       new ActiveMQConnectionFactory(“discovery:(fabric:default)”);




26    © 2012 FuseSource Corp. All rights reserved.               FuseSource Confidential
Connecting - Reconnecting



  Clients don’t need to know brokers location
  Works like a failover transport
  Supports options for tuning reconnecting options


discovery:(fabric:default)?reconnectDelay=1000&useExponentialBackOff=false




27   © 2012 FuseSource Corp. All rights reserved.                 FuseSource Confidential
Connecting - Camel




 <camelContext xmlns="http://camel.apache.org/schema/spring">
           <!– Do your magic here -->
 </camelContext>

 <bean id="activemq"
   class="org.apache.activemq.camel.component.ActiveMQComponent">
   <property name="brokerURL" value=”discovery:(fabric:discovery)"/>
 </bean>




28    © 2012 FuseSource Corp. All rights reserved.               FuseSource Confidential
Topologies




                                                               Integrate Everything
29   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Master/Slave



  Create master slave configuration by starting multiple
   brokers with the same name (in the same group)
     •    First one stared becomes a master
     •    Everyone else is a slave
     •    Locked on Zookeeper node
     •    When master dies, a first slave to get a lock becomes next master




30   © 2012 FuseSource Corp. All rights reserved.       FuseSource Confidential
Master/Slave

 FuseFabric:karaf@root> mq-create --create-container broker1 fusebroker

 FuseFabric:karaf@root> mq-create --create-container broker2 fusebroker




31    © 2012 FuseSource Corp. All rights reserved.                  FuseSource Confidential
Master/Slave




  No more relying on shared storage locking
  You’ll still need shared storage for preserving the state
   among brokers
  Easy creating non-persistent master slave configurations
  Clients again don’t need to know topology as fabric
   discovery will do that work




32   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Master/Slave


  Multiple master slave over the same containers
     • Resource utilization
     mq-create --create-container broker1,broker2,broker3 hq-broker
     mq-create --assign-container broker1,broker2,broker3 web-broker




33   © 2012 FuseSource Corp. All rights reserved.                  FuseSource Confidential
Networks


  Controlled through profile
  Uses fabric discovery, just as clients
mq-create --group us-east --networks us-west --create-container us-east1,us-east2 us-east

mq-create --group us-west --networks us-east --create-container us-west1,us-west2 us-west




34     © 2012 FuseSource Corp. All rights reserved.                              FuseSource Confidential
Elastic clusters




    Request-reply pattern over JMS
    Load Balance Traffic
    Non-persistent, not-connected brokers
    Elastic cluster
     • Allow adding new brokers, without updating clients
     • Allow rebalancing of clients




35   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Elastic clusters


     mq-create --create-container broker1 broker1
     mq-create --create-container broker2 broker2
     mq-create --create-container broker3 broker3




36   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Tooling




37   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Fuse Management Console



    Centralized Unified Console
    Web UI for managing and monitoring infrastructure
    Uses Fabric to discover resources
    Features
     •    Container Management
     •    Profile Management
     •    Centralized Security
     •    Centralized Monitoring




38   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
FMC – containers




39   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
FMC – Container




40   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
FMC – broker view




41   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
FMC - Profiles




42   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
FMC - Profile




43   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Future



  More things for developers
     • Make it even easier to write applications for Fuse Enterprise



  More things for operations
     • Visualization of clusters
     • Centralized logging (collect and search all logs centrally)




44   © 2012 FuseSource Corp. All rights reserved.       FuseSource Confidential
Conclusion



  Helps with complex and large deployments
  Use central registry for distributed configuration and
   locking
  Make clients location agnostic of brokers (needed for
   cloud deployments)
  Easy upgrades and updates
  Support for incremental patching
  Tools




45   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential
Questions




                                                               Integrate Everything
46   © 2012 FuseSource Corp. All rights reserved.   FuseSource Confidential

More Related Content

PDF
Introduction to ActiveMQ Apollo
PPTX
IBM MQ vs Apache ActiveMQ
PPTX
Messaging for Web and Mobile with Apache ActiveMQ
PDF
JBoss Fuse - Fuse workshop EAP container
PPTX
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
PPTX
Introduction to-osgi
KEY
Apache, osgi and karaf par Guillaume Nodet
DOC
Jetty Vs Tomcat
Introduction to ActiveMQ Apollo
IBM MQ vs Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
JBoss Fuse - Fuse workshop EAP container
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)
Introduction to-osgi
Apache, osgi and karaf par Guillaume Nodet
Jetty Vs Tomcat

What's hot (20)

PPTX
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
PDF
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
PDF
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
PDF
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
PDF
ApacheCon EU 2014: Enterprise Development with Apache Karaf
PPT
OSGi & Blueprint
ODP
IBM Impact session CICS & java a tale of liberty
PDF
IBM WebSphere application server
KEY
JBoss AS7 Overview
PPTX
VMware Advance Troubleshooting Workshop - Day 2
PPTX
WAS vs JBoss, WebLogic, Tomcat (year 2015)
PPT
Managing Change
PDF
WebSphere Technical University: Top WebSphere Problem Determination Features
PDF
WebSphere Application Server JBoss TCO analysis
PPTX
GlassFish in Production Environments
PPTX
JBoss AS 7
PDF
JBoss Fuse Workshop 101 part 5
ODP
Large Scale Migration from WebLogic to JBoss
PPTX
Ausoug glassfish perth
PDF
Concierge - Bringing OSGi (back) to Embedded Devices
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
ApacheCon EU 2014: Enterprise Development with Apache Karaf
OSGi & Blueprint
IBM Impact session CICS & java a tale of liberty
IBM WebSphere application server
JBoss AS7 Overview
VMware Advance Troubleshooting Workshop - Day 2
WAS vs JBoss, WebLogic, Tomcat (year 2015)
Managing Change
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Application Server JBoss TCO analysis
GlassFish in Production Environments
JBoss AS 7
JBoss Fuse Workshop 101 part 5
Large Scale Migration from WebLogic to JBoss
Ausoug glassfish perth
Concierge - Bringing OSGi (back) to Embedded Devices
Ad

Similar to Deploying FuseMQ with Fuse Fabric (20)

PPTX
OSGi made simple - Fuse Application Bundles
PPTX
How opensourceworks
PDF
JBOSS_Fuse_Course_Training
PDF
JBOSS_Fuse_Course_Training
PDF
ActiveMQ Performance Tuning
PPT
Connecting applicationswitha mq
PDF
Setup ColdFusion application using fusebox mvc architecture
PPT
Apache ActiveMQ - Enterprise messaging in action
PDF
iPaas with Fuse Fabric Technology
PPTX
Adobe Meetup AEM Architecture Sydney 2015
PDF
Microservices communication styles and event bus
PDF
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
PDF
Fuse technology-2015
PDF
Cloud fuse-apachecon eu-2012
PDF
Virtual meetup - Exploring the Runtime Fabric deployment model
PPTX
The bigrabbit
PPTX
Production deployment
PPTX
Webinar: Deploying MongoDB to Production in Data Centers and the Cloud
PDF
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
PDF
MuleSoft Online Meetup a Guide to RTF application deployment - October 2020
OSGi made simple - Fuse Application Bundles
How opensourceworks
JBOSS_Fuse_Course_Training
JBOSS_Fuse_Course_Training
ActiveMQ Performance Tuning
Connecting applicationswitha mq
Setup ColdFusion application using fusebox mvc architecture
Apache ActiveMQ - Enterprise messaging in action
iPaas with Fuse Fabric Technology
Adobe Meetup AEM Architecture Sydney 2015
Microservices communication styles and event bus
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
Fuse technology-2015
Cloud fuse-apachecon eu-2012
Virtual meetup - Exploring the Runtime Fabric deployment model
The bigrabbit
Production deployment
Webinar: Deploying MongoDB to Production in Data Centers and the Cloud
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
MuleSoft Online Meetup a Guide to RTF application deployment - October 2020
Ad

More from dejanb (6)

PDF
How is this sausage made
PDF
Messaging for the cloud
PDF
Scaling out eclipse hono
PDF
Building Open Source IoT Cloud
PDF
Messaging for IoT
PDF
Advanced messaging with Apache ActiveMQ
How is this sausage made
Messaging for the cloud
Scaling out eclipse hono
Building Open Source IoT Cloud
Messaging for IoT
Advanced messaging with Apache ActiveMQ

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Modernizing your data center with Dell and AMD
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
cuic standard and advanced reporting.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
A Presentation on Artificial Intelligence
Digital-Transformation-Roadmap-for-Companies.pptx
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Modernizing your data center with Dell and AMD
Dropbox Q2 2025 Financial Results & Investor Presentation
cuic standard and advanced reporting.pdf
Understanding_Digital_Forensics_Presentation.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation_ Review paper, used for researhc scholars
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Monthly Chronicles - July 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
The AUB Centre for AI in Media Proposal.docx
Chapter 3 Spatial Domain Image Processing.pdf
Spectral efficient network and resource selection model in 5G networks

Deploying FuseMQ with Fuse Fabric

  • 1. Deploying FuseMQ in enterprise using Fuse Fabric Dejan Bosanac FuseSource 1 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 2. Presenter: Dejan Bosanac  Senior Software Engineer at FuseSource - http://fusesource.com  Apache ActiveMQ committer and PMC member  Co-author of ActiveMQ in Action  Blog: • http://www.nighttale.net/  Twitter: • http://twitter.com/dejanb 2 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 3. Agenda  Problems of large enterprise deployments  Fuse Fabric in nutshell  FuseMQ and Fuse Fabric • Creating brokers • Connecting • Topologies  Fuse Management Console 3 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 4. Problems of large deployments Integrate Everything 4 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 5. Problems – Deploying and maintenance  Main problems • Installing brokers on multiple hosts o ssh, untar, set directories and environment • Setting configuration manually for every broker o copying xml config, tweaking, testing • Updating configuration across cluster • Upgrading brokers It’s very tedious and error-prone process 5 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 6. Problems – Traditional best-practice tips  Keep XML as a template and configure node-specific details through properties  Keep configuration in SVC system (git, svn, ...)  Keep configuration separate from installation for easier upgrades Deployment with Fuse Fabric moves it to the next level 6 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 7. Problems - Clients  Topology is very “static”  Clients need to be aware of topology  Clients need to know broker locations  Changes are not easy as clients need to be updated  Adding new resources (brokers) requires client updates  Not suitable for “cloud” deployments Fuse Fabric makes deployments more “elastic” 7 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 8. Fuse Fabric in a nutshell Integrate Everything 8 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 9. Fuse Fabric in a nutshell  How Fabric can help? • It provides centralized distributed broker configuration • It provides centralized distributed broker registry • Uses OSGi and Apache Karaf for easy spawning new broker instances • It provides additional tools for centralized configuration and monitoring (Fuse Management Console) 9 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 10. Fuse Fabric in a nutshell  Installation • Features and bundle versions centrally stored and managed • Easy installation and upgrade  Configuration • Stored in one place • Versioned  Discovery • All brokers registered in central registry • Allows clients to connect without knowing broker locations • Allows easy creation of advanced topologies 10 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 11. Fuse Fabric Architecture  Zookeeper • Replicated in-memory tree • Similar to file system • Highly-available • Distributed • Support network split • Proven track record Ideal for distributed configuration and locking 11 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 12. Fuse Fabric Architecture  Containers • Apache Karaf instances provisioned through central registry (Zookeeper) 12 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 13. Fuse Fabric Architecture  Profiles: • Zookeeper nodes with conventional names • OSGi configuration for the node (so we know what features and bundles should be used) • Other configuration (centralized broker configuration) • Versioned 13 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 14. Fuse Fabric - Profile FuseFabric:karaf@root> profile-display default Profile id: default Version : 1.0 Parents : Associated Containers : Container settings ---------------------------- Repositories : mvn:org.fusesource.fabric/fuse-fabric/7.0-SNAPSHOT/xml/features Features : fabric-agent karaf fabric-jaas fabric-core 14 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 15. Fuse Fabric - Profile Agent Properties : org.ops4j.pax.url.mvn.repositories = http://repo1.maven.org/maven2, http://repo.fusesource.com/nexus/content/repositories/releases, http://repo.fusesource.com/nexus/content/groups/ea, http://repository.springsource.com/maven/bundles/release, http://repository.springsource.com/maven/bundles/external, http://scala-tools.org/repo-releases org.ops4j.pax.url.mvn.defaultRepositories = file:${karaf.home}/${karaf.default.repository}@snapshots, file:${karaf.home}/local-repo@snapshots Configuration details ---------------------------- PID: org.fusesource.fabric.zookeeper zookeeper.url ${zk:root/ip}:2181 15 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 16. FuseMQ and Fuse Fabric Integrate Everything 16 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 17. FuseMQ features  mq-base profile • Defines OSGi features and bundles to be installed • Defines basic broker settings  mq-create command • Helper command for creating brokers • Creates an new profile based on mq-base • Optionally creates new containers • Assigns the profile to containers (essentially starts the broker) 17 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 18. MQ – Creating broker FuseFabric:karaf@root> mq-create --create-container broker1 fusebroker MQ profile fusebroker ready Successfully created container broker1 18 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 19. MQ Profile FuseFabric:karaf@root> profile-display fusebroker Profile id: fusebroker Version : 1.0 Parents : mq-base Associated Containers : broker1 Configuration details ---------------------------- PID: org.fusesource.mq.fabric.server-fusebroker standby.pool default connectors openwire broker-name fusebroker data data/fusebroker config zk:/fabric/configs/versions/1.0/profiles/mq-base/broker.xml group default 19 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 20. MQ – Assigning profile FuseFabric:karaf@root> container-create-ssh --host 192.168.1.106 --user dejanb --password xxx broker1 FuseFabric:karaf@root> mq-create --assign-container broker1 fusebroker MQ profile fusebroker ready Profile successfully assigned to broker1 20 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 21. MQ - Benefits  What did we achieve with this? • We can easily create new brokers with the same profiles • We can create new profile version with updated broker version and/or changed configuration • We can easily update all (or some) brokers by applying the new profile 21 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 22. MQ Profile - Management  Create a new profile version • with upgraded bundles • and configuration changes  Try it out on a non-production container  Deploy to one or a few production containers  Roll the full upgrade  Easy rollback if anything goes wrong 22 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 23. Broker Registry Integrate Everything 23 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 24. Broker Registry  Brokers are organized in groups (clusters) • Cluster can have any number of brokers (with different names) • Put in “default” group if not specified 24 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 25. Connecting to the Broker  Clients need to have ZooKeeper URL  There is a new discovery protocol (called fabric)  Connecting is as easy as defining the group 25 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 26. Connecting - Factory ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(“discovery:(fabric:default)”); 26 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 27. Connecting - Reconnecting  Clients don’t need to know brokers location  Works like a failover transport  Supports options for tuning reconnecting options discovery:(fabric:default)?reconnectDelay=1000&useExponentialBackOff=false 27 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 28. Connecting - Camel <camelContext xmlns="http://camel.apache.org/schema/spring"> <!– Do your magic here --> </camelContext> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="brokerURL" value=”discovery:(fabric:discovery)"/> </bean> 28 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 29. Topologies Integrate Everything 29 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 30. Master/Slave  Create master slave configuration by starting multiple brokers with the same name (in the same group) • First one stared becomes a master • Everyone else is a slave • Locked on Zookeeper node • When master dies, a first slave to get a lock becomes next master 30 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 31. Master/Slave FuseFabric:karaf@root> mq-create --create-container broker1 fusebroker FuseFabric:karaf@root> mq-create --create-container broker2 fusebroker 31 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 32. Master/Slave  No more relying on shared storage locking  You’ll still need shared storage for preserving the state among brokers  Easy creating non-persistent master slave configurations  Clients again don’t need to know topology as fabric discovery will do that work 32 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 33. Master/Slave  Multiple master slave over the same containers • Resource utilization mq-create --create-container broker1,broker2,broker3 hq-broker mq-create --assign-container broker1,broker2,broker3 web-broker 33 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 34. Networks  Controlled through profile  Uses fabric discovery, just as clients mq-create --group us-east --networks us-west --create-container us-east1,us-east2 us-east mq-create --group us-west --networks us-east --create-container us-west1,us-west2 us-west 34 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 35. Elastic clusters  Request-reply pattern over JMS  Load Balance Traffic  Non-persistent, not-connected brokers  Elastic cluster • Allow adding new brokers, without updating clients • Allow rebalancing of clients 35 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 36. Elastic clusters mq-create --create-container broker1 broker1 mq-create --create-container broker2 broker2 mq-create --create-container broker3 broker3 36 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 37. Tooling 37 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 38. Fuse Management Console  Centralized Unified Console  Web UI for managing and monitoring infrastructure  Uses Fabric to discover resources  Features • Container Management • Profile Management • Centralized Security • Centralized Monitoring 38 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 39. FMC – containers 39 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 40. FMC – Container 40 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 41. FMC – broker view 41 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 42. FMC - Profiles 42 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 43. FMC - Profile 43 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 44. Future  More things for developers • Make it even easier to write applications for Fuse Enterprise  More things for operations • Visualization of clusters • Centralized logging (collect and search all logs centrally) 44 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 45. Conclusion  Helps with complex and large deployments  Use central registry for distributed configuration and locking  Make clients location agnostic of brokers (needed for cloud deployments)  Easy upgrades and updates  Support for incremental patching  Tools 45 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential
  • 46. Questions Integrate Everything 46 © 2012 FuseSource Corp. All rights reserved. FuseSource Confidential