SlideShare a Scribd company logo
Achieving Horizontal scaling
for Enterprise Messaging
using Fabric8
Rob Davies
June 2015
RED HAT | Fabric8 Rocks!2
Rob Davies
•  Director, Engineering xPaaS
•  Technical Director of Fuse
Engineering
•  Over 20 years experience of
developing large scale solutions for
telcos and finance
•  Creator of ActiveMQ and ServiceMix
•  Committer on open source projects,
including Apache Camel …
RED HAT | Fabric8 Rocks!3
Agenda
• Introduction to Fabric8
• Enterprise messaging
• Fabric8MQ
• Demo
RED HAT | Fabric8 Rocks!4
Fabric8
•  Open source, ASL 2.0 licensed project, built to provide
the management infrastructure for Microservices
deployments
•  Management: console, logging, metrics, API
Management
•  Continuous Delivery - workflow
•  Integration Platform as a Service – Camel route
visualization, API registry, Messaging as a Service, …
•  Tools – Kubernetes/OpenShift build integration,
Kubernetes component test support, CDI extensions

Recommended for you

Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...

The document discusses Urban Airship's use of Apache Kafka for processing continuous data streams. It describes how Urban Airship uses Kafka for analytics, operational data, and presence data. Producers write device data to Kafka topics, and consumers create indexes from the data in databases like HBase and write to operational data warehouses. The document also covers Kafka concepts, best use cases, limitations, and examples of data structures for storing device metadata in Kafka streams.

apache kafkasurgeconkafka
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker

This presentation from the I Love APIs conference makes the case for why Node and Docker are great together for implementing Microservice architecture. It also provides an quick orientation for getting started with Docker Machine, Node, and Mongo with container linking and data volume containers.

dockerapinode.js
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems

My talk at ScaleConf 2017 in Cape Town on some tips and tactics for scaling WordPress, with reference to WordPress.com and the container-based VIP Go platform. Video of my talk is here: https://www.youtube.com/watch?v=cs0DcY80spw

scalewordpressscaleconf
RED HAT | Fabric8 Rocks!5
Fabric8:
GCE AWS CoreOS Mesos vSphere Fedora VagrantAzure
Kubernetes
Centralized
Logging Metrics
Deep Application
Management
API
Registry
API
Man
Fabric8MQCamel
Fabric8
Java tools
socialSonaQubeGogsJenkins Nexus
RED HAT | Fabric8 Rocks!6
Agenda
• Introduction to Fabric8
• Enterprise messaging
• Fabric8MQ
• Demo
RED HAT | Fabric8 Rocks!7
Why use messaging ?
•  Robustness to change
•  Time independence
•  Hide latency
•  Event driven
•  Platform and language
independence
Broker
Message in
Message out after
enrichment by Process B
Process C
Process B
Process A
Queue:Foo
Queue:Bar
RED HAT | Fabric8 Rocks!8
Enterprise Message brokers
•  Designed to support many different messaging
patterns
•  highly available
•  Support clustering
•  Support store and forward
•  But – are usually very static in nature

Recommended for you

Protecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and VormetricProtecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and Vormetric

This document discusses securing Apache Kafka deployments with Vormetric and Confluent Platform. It begins with an introduction to Apache Kafka and Confluent Platform. It then provides an overview of Vormetric's policy-driven security solution and how it can be used to encrypt Kafka data at rest. The document outlines the typical Confluent Platform deployment architecture and various security considerations, such as authentication, authorization, and data encryption. Finally, it provides steps for implementing secure deployments using SSL, Kerberos, and Vormetric encryption policies.

kafkasecuritybig data
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs

Nodeconf Barcelona 2015 presentation exploring several ways of building microservices in an asynchronous way. Presented the concept of a broker as an alternative to a multiple point-to-point architecture.

architecbrokerrabbitmq
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository

This talk is a technical case study showing show Metaversant solved a problem for one of their clients, Noble Research Institute. Researchers at Noble deal with very large files which are often difficult to move into and out of the Alfresco repository.

alfrescocase studydevcon 2018
RED HAT | Fabric8 Rocks!9
•  Top Level Apache Software Foundation Project
•  Wildly popular, high performance, reliable message broker
•  Connects to nearly everything
• Native Java, C/C++, .Net,
• AMQP 1.0, MQTT 3.1, STOMP (1.0-1.2) and OpenWire
• STOMP enables Ruby, JS, Perl, Python, PHP, ActionScript
…
•  Embedded and standalone deployment options
RED HAT | Fabric8 Rocks!10
Message Channels and Routing
•  Message Channels
•  Named communication between interested parties
•  JMS calls them ‘Destinations’
•  Can “tune-in” to multiple channels using wildcards
•  Can fine-tune message consumption with selectors
•  Can route a message based on content
RED HAT | Fabric8 Rocks!11
Message Channels = JMS Destinations
Broker Consumer
Consumer
Destination
WIDGET
Destination
ORDER
Producer
Consumer
RED HAT | Fabric8 Rocks!12
Message Routing: Selectors
Producer Destination
Consumer
Color = red
Consumer
Color = blue

Recommended for you

Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streams

My talk from ScalaDays 2016 in New York on May 11, 2016: Transitioning from a monolithic application to a set of microservices can help increase performance and scalability, but it can also drastically increase complexity. Layers of inter-service network calls for add latency and an increasing risk of failure where previously only local function calls existed. In this talk, I'll speak about how to tame this complexity using Apache Kafka and Reactive Streams to: - Extract non-critical processing from the critical path of your application to reduce request latency - Provide back-pressure to handle both slow and fast producers/consumers - Maintain high availability, high performance, and reliable messaging - Evolve message payloads while maintaining backwards and forwards compatibility.

microservicesscalakafka
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka

Kafka's basic terminologies, its architecture, its protocol and how it works. Kafka at scale, its caveats, guarantees and use cases offered by it. How we use it @ZaprMediaLabs.

kafkaapachezapr
Private cloud networking_cloudstack_days_austin
Private cloud networking_cloudstack_days_austinPrivate cloud networking_cloudstack_days_austin
Private cloud networking_cloudstack_days_austin

Presented at CloudStack Days Austin. How to succeed in your private cloud project by simplifying networking

apache cloudstacksecurity groupscloud computing
RED HAT | Fabric8 Rocks!13
Message Routing: Destination Wildcards
•  * matches a subject
•  > matches sub-tree
Topic:
BAR.BEER.WHITE
Topic:
BAR.WINE.WHITE
Producer
Consumer
Topic:BAR.WINE.WHITE
Consumer
Topic:BAR.BEER.WHITE
Consumer
Topic:BAR.*.WHITE
Consumer
Topic:BAR.>
RED HAT | Fabric8 Rocks!14
Message Groups
Producer
Consumer
Consumer
Consumer
Queue:Prices
Message message = session.createTextMessage(“hi JBCNConf”);
message.setStringProperty("JMSXGroupID", ”JavaRocks");
producer.send(message);
RED HAT | Fabric8 Rocks!15
High Availability clustering:
MasterClient Slave Slave
Only one broker is active (the master) at any one time.
1. send
3. receipt
2. store
RED HAT | Fabric8 Rocks!16
Network of Brokers:
Producer
Highly reliable, store and forward
Consumer
1. send
Broker1
2. store
Broker2
5. store
4. Network
send
6. Network
receipt
3. receipt
7. delete
6. Network
send
7. acknowledge
8. delete

Recommended for you

Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financial

This document provides an introduction and overview of RESTful web services. It discusses REST principles such as resources, addressability, statelessness, uniform interface, and representations. It also covers designing RESTful APIs, including examples from Amazon S3. The document outlines an agenda to discuss introduction, principles, design, implementations, and implementation of RESTful APIs and web services.

Load Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native ArchitectureLoad Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native Architecture

This document discusses how load balancing needs have changed with the rise of containers and microservices. Traditional load balancers are not well-suited for dynamic container environments where services and topology frequently change. New approaches are needed like integrating load balancers with container orchestration platforms, using client-side load balancing, and leveraging load balancers for advanced patterns like zero-downtime deployments, circuit breaking, visibility and security segmentation. Load balancers are playing an increasingly important role in cloud native architectures.

microservicesapache mesosdocker
On being RESTful
On being RESTfulOn being RESTful
On being RESTful

The document discusses the REST (REpresentational State Transfer) architectural style and how it differs from traditional SOA (Service Oriented Architecture). It outlines the key principles of REST including addressing resources with URIs, using a uniform interface (HTTP methods), stateless communication, and hypermedia as the driver of application state. The document explains how the web exemplifies REST through the use of URLs, HTTP, and standard formats to access and transfer representations of resources.

RED HAT | Fabric8 Rocks!17
Networks of Brokers: some limitations
•  Performance – messages are always stored by the
broker to disk before forwarding to another broker –
this can increase latency by at least a factor of 10
•  Networks are chatty – routing information is passed
from broker to broker every time a consumer starts or
stops
•  Networks are a bottleneck – networks are
implemented as one TCP/IP connection – this is
natural choke point for high throughput scenarios
•  Messages can be orphaned – If a broker goes down,
locally stored messages won’t get delivered until the
broker is recovered
RED HAT | Fabric8 Rocks!18
Networks of Brokers: Worst bit …
Producer ConsumerBroker1 Broker2
This is
configured
differently to …
RED HAT | Fabric8 Rocks!19
Networks of Brokers: Worst bit …
Producer ConsumerBroker1 Broker2
To this
Broker3
RED HAT | Fabric8 Rocks!20
ActiveMQ is static:

Recommended for you

Building Kafka-powered Activity Stream
Building Kafka-powered Activity StreamBuilding Kafka-powered Activity Stream
Building Kafka-powered Activity Stream

This document discusses using Apache Kafka to build a message bus for aggregating activity information from various services and enabling communication between services. It outlines the challenges of needing a way to aggregate activity data and needing a messaging backbone. It then explains how Apache Kafka provides a scalable, durable, distributed solution as a publish-subscribe messaging system to address these needs. Key features of Kafka like speed, scalability, durability and distributed design are highlighted. An example setup and usage with Ruby is also briefly described.

Apache Kafka Security
Apache Kafka Security Apache Kafka Security
Apache Kafka Security

This document discusses security features in Apache Kafka including SSL, SASL authentication using Kerberos or plaintext, and authorization controls. It provides an overview of how SSL and SASL authentication work in Kafka as well as how the Kafka authorizer controls access at a fine-grained level through ACLs defined on topics, operations, users and hosts. It also briefly mentions securing Zookeeper which stores Kafka metadata and ACLs.

hs16melbhortonworkshadoop summit
Jboss Fuse Workshop 101 part 1
Jboss Fuse Workshop 101 part 1Jboss Fuse Workshop 101 part 1
Jboss Fuse Workshop 101 part 1

Want to get your hands dirty and play around with the Middleware that is going to amaze you with the rich components provided within and made integration much easier pattern base framework. Stop reading and start playing!

jboss fuseapache camel
RED HAT | Fabric8 Rocks!21
ActiveMQ Key Features
Fast Storage
Connections
A-MQ
Embedded Camel
OpenWire,
STOMP
MQTT
AMQP
WebSockets
Scaling Connections
A problem
KahaDB/LevelDB
Lots and Lots of
these
RED HAT | Fabric8 Rocks!22
To Scale A-MQ needs to focus …
Fast Storage
A-MQ
Remove all the
cruft – allow
ActiveMQ to focus
on message
routing …
RED HAT | Fabric8 Rocks!23
Messaging for cloud based deployments
•  Needs to support many thousands of clients
•  Flexible, brokers need to be spun up and down, based
on demand
•  Client connections may need to be multiplexed, to
decrease the load on individual message brokers
•  Popular messaging protocols support
•  Flexible routing needs to be supported
RED HAT | Fabric8 Rocks!24
Agenda
• Introduction to Fabric8
• Enterprise messaging
• Fabric8MQ
• Demo

Recommended for you

Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka

To manage the ever-increasing volume and velocity of data within your company, you have successfully made the transition from single machines and one-off solutions to large distributed stream infrastructures in your data center, powered by Apache Kafka. But what if one data center is not enough? I will describe building resilient data pipelines with Apache Kafka that span multiple data centers and points of presence, and provide an overview of best practices and common patterns while covering key areas such as architecture guidelines, data replication, and mirroring as well as disaster scenarios and failure handling.

kafkadata centerstream
A la rencontre de Kafka, le log distribué par Florian GARCIA
A la rencontre de Kafka, le log distribué par Florian GARCIAA la rencontre de Kafka, le log distribué par Florian GARCIA
A la rencontre de Kafka, le log distribué par Florian GARCIA

Kafka c’est un peu la nouvelle star sur la scène des files de messages. Pourtant Kafka ne se présente pas en tant que tel, c’est un log distribué ! Alors qu’est ce que c’est ? Comment ça marche ? Et surtout comment et pourquoi je l’utilise ? Dans cette session, on décortique la bête pour tout vous expliquer ! Au programme : des concepts, des cas d’usage, du streaming et un retour d’expérience !

florian garciakafkalog
fabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShiftfabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShift

This presentation gives an Overview about Kubernetes and OpenShift, their differences and what fabric8 (fabric8.io) adds to the mix

openshiftkubernetespaas
RED HAT | Fabric8 Rocks!25
Fabric8 MQ is built on Vert.x
•  Lightweight, multi-reactive, application platform
•  Inspired from Erlang/OTP
•  Polygot
•  High performance
•  Asynchronous, non-blocking: – high level of
concurrency
RED HAT | Fabric8 Rocks!26
Vert.x is just fast …
RED HAT | Fabric8 Rocks!27
Fabric8 MQ Message Flow:
Protocol
Conversion
Camel
Routing
API
Management Multiplexer
Destination
Sharding
Broker
Control
RED HAT | Fabric8 Rocks!28
Fabric8 MQ Protocol Conversion
•  We convert to ActiveMQ OpenWire. This saves
ActiveMQ doing this, allowing it to expend all its
resources to pushing messages in and out of Queues
•  Protocols currently supported:
•  OpenWire
•  Stomp
•  MQTT
•  AMQP 1.0

Recommended for you

microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"

The document discusses the organizational and people impacts of implementing microservices. It argues that many current problems stem from organizational and people issues rather than technical problems. Existing solutions around strategy, feedback, and defining responsibilities can help address these challenges. Technical leadership is important to promote shared understanding and manage risks. Feedback through visibility and learning is also vital. Responsibilities like DevOps roles need to be clearly defined.

organisational-structuremicroservicesstrategy
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes

OpenShift is Red Hat's container application platform that provides a full-stack platform for deploying and managing containerized applications. It is based on Docker and Kubernetes and provides additional capabilities for self-service, automation, multi-language support, and enterprise features like authentication, centralized logging, and integration with Red Hat's JBoss middleware. OpenShift handles building, deploying, and scaling applications in a clustered environment with capabilities for continuous integration/delivery, persistent storage, routing, and monitoring.

openshift kubernetes docker
What a beautiful blue planet
What a beautiful blue planetWhat a beautiful blue planet
What a beautiful blue planet

The document lists various geographic locations around Europe, Africa, and Asia including the Strait of Gibraltar, Swiss Alps, Iceland, Black Sea, and Red Sea. It expresses admiration for the beauty of the Earth even in darkness, repeating the sentiment multiple times.

RED HAT | Fabric8 Rocks!29
Camel Routing:
Camel is embedded to allow flexible routing:
Topic:Foo
MessageMessage Message
Queue:Foo
Channel
RED HAT | Fabric8 Rocks!30
API Management
•  Fabric8 uses APIMan for its API Management – see
http://apiman.io
•  Utilized within Fabric8 to provide:
•  Central common place for managing all APIs (including
Message Queues)
•  Control and Access policies
•  Rate Limiting
•  Metrics and Billing
RED HAT | Fabric8 Rocks!31
Multiplexing
•  ActiveMQ performs better the lower
the number of connections – less
contention
•  IoT applications have long lived
connections, but small amount of
traffic
•  All configurable – you can decide
how fine or coarse grained you want
multiplexing
•  Fabric8MQ scales up/down
multiplexers as required
RED HAT | Fabric8 Rocks!32
Destination Sharding: Benefits
•  There is an overhead associated with a
Destination – restrict the number of
Destinations per Broker to improve
performance
•  Co-locate producers and consumers of a
Destination to the same broker reduces latency
and improves overall performance
•  Increased scalability for your messaging
solution
•  This is done automatically by Fabric8 MQ

Recommended for you

Product Development Communications Executive Pat Scherschel 2011
Product Development Communications Executive Pat Scherschel 2011Product Development Communications Executive Pat Scherschel 2011
Product Development Communications Executive Pat Scherschel 2011

The document provides an executive biography and resume for Patricia M. Scherschel, outlining her extensive experience over 20 years in product development, corporate communications, and public relations roles within the student loan and policy research industries. She has held leadership positions at Fortune 500 companies developing multi-billion dollar student loan programs and served as an executive editor for international business publications.

product developmentexecutive editorcommunications
RK Swamy BBDO Pre-Summers
RK Swamy BBDO Pre-Summers RK Swamy BBDO Pre-Summers
RK Swamy BBDO Pre-Summers

This document provides information about RK SWAMY BBDO, an Indian advertising agency that has been ranked in the top 10 in India. It joined the global BBDO network in 1986. The agency aims to help clients achieve their marketing goals through developing solutions and providing support. It provides services such as advertising, creative work, market research, and interactive services. Some of RK SWAMY BBDO's clients include Titan, Air India, Mercedes Benz, and Mars.

bbdosummersrk swamy bbdo
Good prescribing
Good prescribingGood prescribing
Good prescribing

The document provides an overview of the rational treatment process and is intended to guide undergraduate medical students in developing good prescribing skills. It outlines the steps in treating a patient, from defining the problem and specifying the objective to monitoring treatment, using a case example of a taxi driver with a dry cough. The overview presented in this chapter lays the groundwork for more detailed discussion of each step in subsequent chapters.

RED HAT | Fabric8 Rocks!33
Destination Sharding: Fabric8 MQ Internal Model
•  Discover and track all allocated
brokers
•  Fabric8 MQ regularly updates its
internal model by examining
internals of brokers running via
Jolokia allowing multiple
Fabric8-MQ instances to run
(co-operatively scalable)
•  Scales up and down brokers –
moving destinations and clients
between brokers
•  Can dynamically set limits on
number of brokers, and broker
limits
Broker1
Connections count
Depth
Consumers
Producers
Queue://foo.1
Depth
Consumers
Producers
Queue://foo.2
Depth
Consumers
Producers
Queue://foo.3
Broker2
Connections count
Depth
Consumers
Producers
Queue://bar.1
Depth
Consumers
Producers
Queue://bar.2
Depth
Consumers
Producers
Queue://bar.3
RED HAT | Fabric8 Rocks!34
Destination Sharding: Internal Rules
•  Fired when state
changes
•  Operates over the
internal Model
•  Rules fired in priority
order
•  Only one rule fired
per state change
Scale Up
•  Connection limits
exceeded OR
•  Destination Limits
Exceeded AND
•  NO spare capacity
Broker
Control
Scale
Down
•  At least ONE
broker AND
•  Total load across
all brokers less
than 50%
Distribute
Load
•  Broker limits are
Exceeded AND
•  Spare capacity
Ask to move clients
and destinations from
most loaded to least
loaded
Distribute clients and
destinations off least
loaded and remove
broker
Request a new Broker
Broker Control is
done via
Kubernetes
RED HAT | Fabric8 Rocks!35
ActiveMQ hates
unexpected
Acks…
RED HAT | Fabric8 Rocks!36
Fabric8MQ has to
1.  Work out which destinations to migrate
2.  Stop dispatching to consumers
3.  Wait until the all in flight messages are acked
4.  Do the migration
5.  Update the internal destination map
6.  Then resume processing

Recommended for you

3. Culture & Competition
3. Culture & Competition3. Culture & Competition
3. Culture & Competition

The document provides guidance on cultural norms and business etiquette when conducting business in China. It lists 11 common faux pas that should be avoided, such as accepting business cards with one hand, eating or drinking before a host, discussing politics or Taiwan's independence, touching in public, and gifting items associated with death like clocks or black items. Conducting oneself respectfully and understanding cultural norms around seniority, meals, and greetings is important for success when working with Chinese business counterparts.

file handling1
file handling1file handling1
file handling1

The document discusses file handling in C programming. It explains that files allow permanent storage of data that can be accessed quickly through library functions. There are two main types of files - sequential and random access. It also describes various functions used to open, read, write, close and manipulate files like fopen(), fread(), fwrite(), fclose() etc. It provides examples of reading from and writing to text and binary files as well as reading and writing structures and integers from files.

RED HAT | Fabric8 Rocks!37
Kubernetes
•  Created by Google from
experience with GCE
•  Lightweight, simple and
accessible orchestration
system for Docker
containers
•  Schedules onto nodes in a
compute cluster and
actively manages
workloads to ensure state
is “correct”
•  Provides easy
management and
Discovery
Kubernetes
Master
Node Node Node
User containers
Scheduled and packed dynamically onto nodes
RED HAT | Fabric8 Rocks!38
Kubernetes Model
•  Pods – collection of one or more
Docker containers – the minimum
deployment unit in Kubernetes
•  Replication Controllers – stored
on Kubernetes Master, they
determine how many replicas of
Pods should be running
•  Service – abstraction that defines a
logical set of pods, and defines a
way of exposing their ports on a
unique IP address
•  Namespaces – Pods, Services,
Replication Controllers, Label
Selector – all exist within a defined
Namespace. This allows for multiple
environments to be supported by
the same compute cloud – or
multitenancy
Kubernetes
Master
Node
Container
PodContainer
Pod
Node
Container
PodContainer
Pod
Replication
Controller
Fabric8-MQ-Service
RED HAT | Fabric8 Rocks!39
Fabric8 MQ Broker Control:
•  Fabric8 MQ controls a
headless Replication
Controller to spin up and
down ActiveMQ Brokers
•  Monitors the state of
running ActiveMQ
brokers via Jolokia – and
fires changes to the
internal rules engine.
•  Communicates with the
Replication Controller to
spin up – or delete Pods
containing ActiveMQ
Brokers
Node
Pod
ActiveMQ
Broker
AMQ
Replication
Controller
Node
Pod
ActiveMQ
Broker
Node
Pod
ActiveMQ
Broker
RED HAT | Fabric8 Rocks!40
Fabric8 MQ – not a message broker – but a
scalable messaging system
Many concurrent
connections, one out
Connections
Vert.x
Core
Embedded Camel,
Integration with APIMan
OpenWire,
STOMP
MQTT
AMQP
WebSockets – all done
asynchronously
Scaling Connections
NOT a problem
Destination
Sharding

Recommended for you

Gps4b
Gps4bGps4b
Gps4b

Encryption techniques are used to securely transmit data over networks. Pseudorandom noise adds statistical randomness to encrypted signals. Data encryption converts plaintext into unreadable ciphertext. Link encryption encrypts data as it is transmitted between network points. A virtual private network (VPN) uses encryption to create a secure connection over public lines like the internet and allow private network extension.

Guia de estudio
Guia de estudioGuia de estudio
Guia de estudio

This document appears to be a study guide in Spanish for an English as a Second Language class. It contains exercises to test students' comprehension of basic English conversations and vocabulary related to community services. The exercises include choosing the correct response to complete a sample conversation about buying a DVD, identifying different types of community services from images, and matching community locations to their uses. The study guide provides context for learning English terms in a real-world setting.

Thermal Management And Sd0802 C Presentation
Thermal Management And Sd0802 C PresentationThermal Management And Sd0802 C Presentation
Thermal Management And Sd0802 C Presentation

The document discusses 3D chip stacking technologies and the advantages of using thermally conductive adhesives for applications such as smartphones. It notes that wire bonding has limitations and that flip chip cannot be used for chip stacking. 3D stacking with thermal interconnects is presented as an inevitable future technology for miniaturization and performance gains. Specific adhesives produced by MicroCoat Technologies are highlighted for their high thermal conductivity and suitability for applications requiring heat dissipation.

3d stacked die
RED HAT | Fabric8 Rocks!41
Fabric8 MQ Independently scalable:
Node
Pod
ActiveMQ
Broker
AMQ
Replication
Controller
Node
Pod
ActiveMQ
Broker
Node
Pod
ActiveMQ
Broker
Fabric8MQ
Replication
Controller
Vert.x
Vert.x
Vert.x
Multiplexer
Multiplexer
Multiplexer
Fabric8MQ
Vert.x
Vert.x
Vert.x
Multiplexer
Multiplexer
Multiplexer
Fabric8MQ
Vert.x
Vert.x
Vert.x
Multiplexer
Multiplexer
Multiplexer
Fabric8MQ
RED HAT | Fabric8 Rocks!42
RED HAT | Fabric8 Rocks!43
What I’m gonna try and attempt to do ...
Fabric8MQ
MQTT
Device
MQTT
DeviceMQTT
DeviceMQTT
Device
MQTT
DeviceMQTT
Device
MQTT
DeviceMQTT
DeviceMQTT
Device
RED HAT | Fabric8 Rocks!44
Destination Sharding: Internal Rules
Limits are set low:
5 Destinations per
Broker
Scale Up
•  Connection limits
exceeded OR
•  Destination Limits
Exceeded AND
•  NO spare capacity
Broker
Control
Scale
Down
•  At least ONE
broker AND
•  Total load across
all brokers less
than 50%
Distribute
Load
•  Broker limits are
Exceeded AND
•  Spare capacity
Ask to move clients
and destinations from
most loaded to least
loaded
Distribute clients and
destinations off least
loaded and remove
broker
Request a new Broker
Broker Control is
done via
Kubernetes

Recommended for you

A Glass Of Milk ( in English & Chinese )
A Glass Of Milk ( in English & Chinese )A Glass Of Milk ( in English & Chinese )
A Glass Of Milk ( in English & Chinese )

A Power Point Presentation of a motivational and inspirational story. Done by Bro. Oh Teik Bin, Lower Perak Buddhist association, Teluk Intan, Malaysia. Chinese Translation by Bro. Lau Bain Sin & Bro. Teh Kee Keang

pbhpdhammakindness
新希望.
新希望.新希望.
新希望.
 
by sft
Bogovete na promqnata
Bogovete na promqnataBogovete na promqnata
Bogovete na promqnata
RED HAT | Fabric8 Rocks!45
Client code
final String host =
System.getenv("FABRIC8MQ_SERVICE_HOST");
final String portStr =
System.getenv("FABRIC8MQ_SERVICE_PORT");
Kubernetes injects
services as Environment
variables
RED HAT | Fabric8 Rocks!46
Questions
and
Discussion

More Related Content

What's hot

Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with Kafka
László-Róbert Albert
 
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker ContainersKafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
confluent
 
Modern Distributed Messaging and RPC
Modern Distributed Messaging and RPCModern Distributed Messaging and RPC
Modern Distributed Messaging and RPC
Max Alexejev
 
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Erik Onnen
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker
Tony Pujals
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
David Newman
 
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and VormetricProtecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
confluent
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
Bruno Pedro
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
Jeff Potts
 
Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streams
jimriecken
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
Chhavi Parasher
 
Private cloud networking_cloudstack_days_austin
Private cloud networking_cloudstack_days_austinPrivate cloud networking_cloudstack_days_austin
Private cloud networking_cloudstack_days_austin
Chiradeep Vittal
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financial
Rule_Financial
 
Load Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native ArchitectureLoad Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native Architecture
Chiradeep Vittal
 
On being RESTful
On being RESTfulOn being RESTful
On being RESTful
Fabio Mancinelli
 
Building Kafka-powered Activity Stream
Building Kafka-powered Activity StreamBuilding Kafka-powered Activity Stream
Building Kafka-powered Activity Stream
Oleksiy Holubyev
 
Apache Kafka Security
Apache Kafka Security Apache Kafka Security
Apache Kafka Security
DataWorks Summit/Hadoop Summit
 
Jboss Fuse Workshop 101 part 1
Jboss Fuse Workshop 101 part 1Jboss Fuse Workshop 101 part 1
Jboss Fuse Workshop 101 part 1
Christina Lin
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Guozhang Wang
 
A la rencontre de Kafka, le log distribué par Florian GARCIA
A la rencontre de Kafka, le log distribué par Florian GARCIAA la rencontre de Kafka, le log distribué par Florian GARCIA
A la rencontre de Kafka, le log distribué par Florian GARCIA
La Cuisine du Web
 

What's hot (20)

Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with Kafka
 
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker ContainersKafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
Kafka Summit SF 2017 - Best Practices for Running Kafka on Docker Containers
 
Modern Distributed Messaging and RPC
Modern Distributed Messaging and RPCModern Distributed Messaging and RPC
Modern Distributed Messaging and RPC
 
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
Data Models and Consumer Idioms Using Apache Kafka for Continuous Data Stream...
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and VormetricProtecting your data at rest with Apache Kafka by Confluent and Vormetric
Protecting your data at rest with Apache Kafka by Confluent and Vormetric
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
 
Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streams
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
 
Private cloud networking_cloudstack_days_austin
Private cloud networking_cloudstack_days_austinPrivate cloud networking_cloudstack_days_austin
Private cloud networking_cloudstack_days_austin
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financial
 
Load Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native ArchitectureLoad Balancing for Containers and Cloud Native Architecture
Load Balancing for Containers and Cloud Native Architecture
 
On being RESTful
On being RESTfulOn being RESTful
On being RESTful
 
Building Kafka-powered Activity Stream
Building Kafka-powered Activity StreamBuilding Kafka-powered Activity Stream
Building Kafka-powered Activity Stream
 
Apache Kafka Security
Apache Kafka Security Apache Kafka Security
Apache Kafka Security
 
Jboss Fuse Workshop 101 part 1
Jboss Fuse Workshop 101 part 1Jboss Fuse Workshop 101 part 1
Jboss Fuse Workshop 101 part 1
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
 
A la rencontre de Kafka, le log distribué par Florian GARCIA
A la rencontre de Kafka, le log distribué par Florian GARCIAA la rencontre de Kafka, le log distribué par Florian GARCIA
A la rencontre de Kafka, le log distribué par Florian GARCIA
 

Viewers also liked

fabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShiftfabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShift
roland.huss
 
microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"
Daniel Bryant
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
Samuel Terburg
 
What a beautiful blue planet
What a beautiful blue planetWhat a beautiful blue planet
What a beautiful blue planet
Nagarajan Rengnathan
 
Product Development Communications Executive Pat Scherschel 2011
Product Development Communications Executive Pat Scherschel 2011Product Development Communications Executive Pat Scherschel 2011
Product Development Communications Executive Pat Scherschel 2011
patriciaindy2011
 
RK Swamy BBDO Pre-Summers
RK Swamy BBDO Pre-Summers RK Swamy BBDO Pre-Summers
RK Swamy BBDO Pre-Summers
shash4rao
 
Good prescribing
Good prescribingGood prescribing
Good prescribing
Resti Cahyani
 
3. Culture & Competition
3. Culture & Competition3. Culture & Competition
3. Culture & Competition
paulwhite1983
 
file handling1
file handling1file handling1
file handling1
student
 
Gps4b
Gps4bGps4b
Gps4b
shacho
 
Guia de estudio
Guia de estudioGuia de estudio
Guia de estudio
saralorenaft
 
Thermal Management And Sd0802 C Presentation
Thermal Management And Sd0802 C PresentationThermal Management And Sd0802 C Presentation
Thermal Management And Sd0802 C Presentation
sforman1
 
A Glass Of Milk ( in English & Chinese )
A Glass Of Milk ( in English & Chinese )A Glass Of Milk ( in English & Chinese )
A Glass Of Milk ( in English & Chinese )
OH TEIK BIN
 
新希望.
新希望.新希望.
新希望.
sft
 
Bogovete na promqnata
Bogovete na promqnataBogovete na promqnata
Bogovete na promqnata
qdessy
 
2nd Easter A(2)
2nd Easter A(2)2nd Easter A(2)
2nd Easter A(2)
Rey An Yatco
 
A V I D Juicy Ultimate Brake Bleeding
A V I D Juicy Ultimate Brake BleedingA V I D Juicy Ultimate Brake Bleeding
A V I D Juicy Ultimate Brake Bleeding
radicallights
 
Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014
Performics
 
Latihan korelasi ganda
Latihan korelasi gandaLatihan korelasi ganda
Latihan korelasi ganda
pindp
 

Viewers also liked (20)

fabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShiftfabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShift
 
microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
What a beautiful blue planet
What a beautiful blue planetWhat a beautiful blue planet
What a beautiful blue planet
 
Product Development Communications Executive Pat Scherschel 2011
Product Development Communications Executive Pat Scherschel 2011Product Development Communications Executive Pat Scherschel 2011
Product Development Communications Executive Pat Scherschel 2011
 
RK Swamy BBDO Pre-Summers
RK Swamy BBDO Pre-Summers RK Swamy BBDO Pre-Summers
RK Swamy BBDO Pre-Summers
 
Good prescribing
Good prescribingGood prescribing
Good prescribing
 
Pd t 27
Pd t 27Pd t 27
Pd t 27
 
3. Culture & Competition
3. Culture & Competition3. Culture & Competition
3. Culture & Competition
 
file handling1
file handling1file handling1
file handling1
 
Gps4b
Gps4bGps4b
Gps4b
 
Guia de estudio
Guia de estudioGuia de estudio
Guia de estudio
 
Thermal Management And Sd0802 C Presentation
Thermal Management And Sd0802 C PresentationThermal Management And Sd0802 C Presentation
Thermal Management And Sd0802 C Presentation
 
A Glass Of Milk ( in English & Chinese )
A Glass Of Milk ( in English & Chinese )A Glass Of Milk ( in English & Chinese )
A Glass Of Milk ( in English & Chinese )
 
新希望.
新希望.新希望.
新希望.
 
Bogovete na promqnata
Bogovete na promqnataBogovete na promqnata
Bogovete na promqnata
 
2nd Easter A(2)
2nd Easter A(2)2nd Easter A(2)
2nd Easter A(2)
 
A V I D Juicy Ultimate Brake Bleeding
A V I D Juicy Ultimate Brake BleedingA V I D Juicy Ultimate Brake Bleeding
A V I D Juicy Ultimate Brake Bleeding
 
Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014Top Thirty Global Media Owners 2014
Top Thirty Global Media Owners 2014
 
Latihan korelasi ganda
Latihan korelasi gandaLatihan korelasi ganda
Latihan korelasi ganda
 

Similar to Fabric8 mq

Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
dejanb
 
Velocity Conference '13: Asynchronous messaging for performance optimization,...
Velocity Conference '13: Asynchronous messaging for performance optimization,...Velocity Conference '13: Asynchronous messaging for performance optimization,...
Velocity Conference '13: Asynchronous messaging for performance optimization,...
Al Sargent
 
Picking a message queue
Picking a  message queuePicking a  message queue
Picking a message queue
Vladislav Kirshtein
 
Au delà des brokers, un tour de l’environnement Kafka | Florent Ramière
Au delà des brokers, un tour de l’environnement Kafka | Florent RamièreAu delà des brokers, un tour de l’environnement Kafka | Florent Ramière
Au delà des brokers, un tour de l’environnement Kafka | Florent Ramière
confluent
 
CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
sedukull
 
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQLondon JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
JBUG London
 
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloudIBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
Andrew Schofield
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
Vin Dahake
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
University of Hawai‘i at Mānoa
 
NATS: A Cloud Native Messaging System
NATS: A Cloud Native Messaging SystemNATS: A Cloud Native Messaging System
NATS: A Cloud Native Messaging System
Shiju Varghese
 
Introduction MQTT in English
Introduction MQTT in EnglishIntroduction MQTT in English
Introduction MQTT in English
Eric Xiao
 
Vsat day-2008-idirect
Vsat day-2008-idirectVsat day-2008-idirect
Vsat day-2008-idirect
SSPI Brasil
 
Cloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical OverviewCloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical Overview
Messaging Meetup
 
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
Ortus Solutions, Corp
 
Multi-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQMulti-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQ
Wil de Bruin
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
Virtual JBoss User Group
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
Paria Heidari
 
RabbitMQ and AMQP with .net client library
RabbitMQ and AMQP with .net client libraryRabbitMQ and AMQP with .net client library
RabbitMQ and AMQP with .net client library
Mohammed Shaban
 
Open Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 StratosOpen Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 Stratos
WSO2
 
Sap webinar-briefing-sep-2013-final
Sap webinar-briefing-sep-2013-finalSap webinar-briefing-sep-2013-final
Sap webinar-briefing-sep-2013-final
Kenneth Peeples
 

Similar to Fabric8 mq (20)

Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Velocity Conference '13: Asynchronous messaging for performance optimization,...
Velocity Conference '13: Asynchronous messaging for performance optimization,...Velocity Conference '13: Asynchronous messaging for performance optimization,...
Velocity Conference '13: Asynchronous messaging for performance optimization,...
 
Picking a message queue
Picking a  message queuePicking a  message queue
Picking a message queue
 
Au delà des brokers, un tour de l’environnement Kafka | Florent Ramière
Au delà des brokers, un tour de l’environnement Kafka | Florent RamièreAu delà des brokers, un tour de l’environnement Kafka | Florent Ramière
Au delà des brokers, un tour de l’environnement Kafka | Florent Ramière
 
CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
 
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQLondon JBUG - Connecting Applications Everywhere with JBoss A-MQ
London JBUG - Connecting Applications Everywhere with JBoss A-MQ
 
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloudIBM Message Hub service in Bluemix - Apache Kafka in a public cloud
IBM Message Hub service in Bluemix - Apache Kafka in a public cloud
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
NATS: A Cloud Native Messaging System
NATS: A Cloud Native Messaging SystemNATS: A Cloud Native Messaging System
NATS: A Cloud Native Messaging System
 
Introduction MQTT in English
Introduction MQTT in EnglishIntroduction MQTT in English
Introduction MQTT in English
 
Vsat day-2008-idirect
Vsat day-2008-idirectVsat day-2008-idirect
Vsat day-2008-idirect
 
Cloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical OverviewCloud Messaging Service: Technical Overview
Cloud Messaging Service: Technical Overview
 
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de BruinITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
ITB2019 Multi-language / multi-OS communication using RabbitMQ - Wil de Bruin
 
Multi-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQMulti-language/multi-OS communication using RabbitMQ
Multi-language/multi-OS communication using RabbitMQ
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
RabbitMQ and AMQP with .net client library
RabbitMQ and AMQP with .net client libraryRabbitMQ and AMQP with .net client library
RabbitMQ and AMQP with .net client library
 
Open Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 StratosOpen Source Middleware for the Cloud: WSO2 Stratos
Open Source Middleware for the Cloud: WSO2 Stratos
 
Sap webinar-briefing-sep-2013-final
Sap webinar-briefing-sep-2013-finalSap webinar-briefing-sep-2013-final
Sap webinar-briefing-sep-2013-final
 

More from Rob Davies

Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
Rob Davies
 
Fuse overview
Fuse overviewFuse overview
Fuse overview
Rob Davies
 
Connecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQConnecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQ
Rob Davies
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
Rob Davies
 
Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQ
Rob Davies
 
How opensourceworks
How opensourceworksHow opensourceworks
How opensourceworks
Rob Davies
 

More from Rob Davies (6)

Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
 
Fuse overview
Fuse overviewFuse overview
Fuse overview
 
Connecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQConnecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQ
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
 
Enterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQEnterprise Integration Patterns with ActiveMQ
Enterprise Integration Patterns with ActiveMQ
 
How opensourceworks
How opensourceworksHow opensourceworks
How opensourceworks
 

Recently uploaded

Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
908dutch
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
e-Definers Technology
 
A Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdfA Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdf
kalichargn70th171
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
SSTech System
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
DNUG e.V.
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
confluent
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
Philip Schwarz
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
Ortus Solutions, Corp
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdfAWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
karim wahed
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
DNUG e.V.
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
VishrutGoyani1
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
sudsdeep
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Asher Sterkin
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
sachin chaurasia
 
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptxAddressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
Sparity1
 
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfResponsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Trackobit
 
Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
Ortus Solutions, Corp
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
onemonitarsoftware
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
Task Tracker
 

Recently uploaded (20)

Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …Prada Group Reports Strong Growth in First Quarter …
Prada Group Reports Strong Growth in First Quarter …
 
Top 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your WebsiteTop 10 Tips To Get Google AdSense For Your Website
Top 10 Tips To Get Google AdSense For Your Website
 
A Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdfA Comparative Analysis of Functional and Non-Functional Testing.pdf
A Comparative Analysis of Functional and Non-Functional Testing.pdf
 
React Native vs Flutter - SSTech System
React Native vs Flutter  - SSTech SystemReact Native vs Flutter  - SSTech System
React Native vs Flutter - SSTech System
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud ConnectorsBreak data silos with real-time connectivity using Confluent Cloud Connectors
Break data silos with real-time connectivity using Confluent Cloud Connectors
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
 
Migrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS CloudMigrate your Infrastructure to the AWS Cloud
Migrate your Infrastructure to the AWS Cloud
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdfAWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
 
dachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdfdachnug51 - All you ever wanted to know about domino licensing.pdf
dachnug51 - All you ever wanted to know about domino licensing.pdf
 
Google ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learningGoogle ML-Kit - Understanding on-device machine learning
Google ML-Kit - Understanding on-device machine learning
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
 
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
Ported to Cloud with Wing_ Blue ZnZone app from _Hexagonal Architecture Expla...
 
introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...introduction of Ansys software and basic and advance knowledge of modelling s...
introduction of Ansys software and basic and advance knowledge of modelling s...
 
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptxAddressing the Top 9 User Pain Points with Visual Design Elements.pptx
Addressing the Top 9 User Pain Points with Visual Design Elements.pptx
 
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfResponsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
 
Intro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AIIntro to Amazon Web Services (AWS) and Gen AI
Intro to Amazon Web Services (AWS) and Gen AI
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
 
Attendance Tracking From Paper To Digital
Attendance Tracking From Paper To DigitalAttendance Tracking From Paper To Digital
Attendance Tracking From Paper To Digital
 

Fabric8 mq

  • 1. Achieving Horizontal scaling for Enterprise Messaging using Fabric8 Rob Davies June 2015
  • 2. RED HAT | Fabric8 Rocks!2 Rob Davies •  Director, Engineering xPaaS •  Technical Director of Fuse Engineering •  Over 20 years experience of developing large scale solutions for telcos and finance •  Creator of ActiveMQ and ServiceMix •  Committer on open source projects, including Apache Camel …
  • 3. RED HAT | Fabric8 Rocks!3 Agenda • Introduction to Fabric8 • Enterprise messaging • Fabric8MQ • Demo
  • 4. RED HAT | Fabric8 Rocks!4 Fabric8 •  Open source, ASL 2.0 licensed project, built to provide the management infrastructure for Microservices deployments •  Management: console, logging, metrics, API Management •  Continuous Delivery - workflow •  Integration Platform as a Service – Camel route visualization, API registry, Messaging as a Service, … •  Tools – Kubernetes/OpenShift build integration, Kubernetes component test support, CDI extensions
  • 5. RED HAT | Fabric8 Rocks!5 Fabric8: GCE AWS CoreOS Mesos vSphere Fedora VagrantAzure Kubernetes Centralized Logging Metrics Deep Application Management API Registry API Man Fabric8MQCamel Fabric8 Java tools socialSonaQubeGogsJenkins Nexus
  • 6. RED HAT | Fabric8 Rocks!6 Agenda • Introduction to Fabric8 • Enterprise messaging • Fabric8MQ • Demo
  • 7. RED HAT | Fabric8 Rocks!7 Why use messaging ? •  Robustness to change •  Time independence •  Hide latency •  Event driven •  Platform and language independence Broker Message in Message out after enrichment by Process B Process C Process B Process A Queue:Foo Queue:Bar
  • 8. RED HAT | Fabric8 Rocks!8 Enterprise Message brokers •  Designed to support many different messaging patterns •  highly available •  Support clustering •  Support store and forward •  But – are usually very static in nature
  • 9. RED HAT | Fabric8 Rocks!9 •  Top Level Apache Software Foundation Project •  Wildly popular, high performance, reliable message broker •  Connects to nearly everything • Native Java, C/C++, .Net, • AMQP 1.0, MQTT 3.1, STOMP (1.0-1.2) and OpenWire • STOMP enables Ruby, JS, Perl, Python, PHP, ActionScript … •  Embedded and standalone deployment options
  • 10. RED HAT | Fabric8 Rocks!10 Message Channels and Routing •  Message Channels •  Named communication between interested parties •  JMS calls them ‘Destinations’ •  Can “tune-in” to multiple channels using wildcards •  Can fine-tune message consumption with selectors •  Can route a message based on content
  • 11. RED HAT | Fabric8 Rocks!11 Message Channels = JMS Destinations Broker Consumer Consumer Destination WIDGET Destination ORDER Producer Consumer
  • 12. RED HAT | Fabric8 Rocks!12 Message Routing: Selectors Producer Destination Consumer Color = red Consumer Color = blue
  • 13. RED HAT | Fabric8 Rocks!13 Message Routing: Destination Wildcards •  * matches a subject •  > matches sub-tree Topic: BAR.BEER.WHITE Topic: BAR.WINE.WHITE Producer Consumer Topic:BAR.WINE.WHITE Consumer Topic:BAR.BEER.WHITE Consumer Topic:BAR.*.WHITE Consumer Topic:BAR.>
  • 14. RED HAT | Fabric8 Rocks!14 Message Groups Producer Consumer Consumer Consumer Queue:Prices Message message = session.createTextMessage(“hi JBCNConf”); message.setStringProperty("JMSXGroupID", ”JavaRocks"); producer.send(message);
  • 15. RED HAT | Fabric8 Rocks!15 High Availability clustering: MasterClient Slave Slave Only one broker is active (the master) at any one time. 1. send 3. receipt 2. store
  • 16. RED HAT | Fabric8 Rocks!16 Network of Brokers: Producer Highly reliable, store and forward Consumer 1. send Broker1 2. store Broker2 5. store 4. Network send 6. Network receipt 3. receipt 7. delete 6. Network send 7. acknowledge 8. delete
  • 17. RED HAT | Fabric8 Rocks!17 Networks of Brokers: some limitations •  Performance – messages are always stored by the broker to disk before forwarding to another broker – this can increase latency by at least a factor of 10 •  Networks are chatty – routing information is passed from broker to broker every time a consumer starts or stops •  Networks are a bottleneck – networks are implemented as one TCP/IP connection – this is natural choke point for high throughput scenarios •  Messages can be orphaned – If a broker goes down, locally stored messages won’t get delivered until the broker is recovered
  • 18. RED HAT | Fabric8 Rocks!18 Networks of Brokers: Worst bit … Producer ConsumerBroker1 Broker2 This is configured differently to …
  • 19. RED HAT | Fabric8 Rocks!19 Networks of Brokers: Worst bit … Producer ConsumerBroker1 Broker2 To this Broker3
  • 20. RED HAT | Fabric8 Rocks!20 ActiveMQ is static:
  • 21. RED HAT | Fabric8 Rocks!21 ActiveMQ Key Features Fast Storage Connections A-MQ Embedded Camel OpenWire, STOMP MQTT AMQP WebSockets Scaling Connections A problem KahaDB/LevelDB Lots and Lots of these
  • 22. RED HAT | Fabric8 Rocks!22 To Scale A-MQ needs to focus … Fast Storage A-MQ Remove all the cruft – allow ActiveMQ to focus on message routing …
  • 23. RED HAT | Fabric8 Rocks!23 Messaging for cloud based deployments •  Needs to support many thousands of clients •  Flexible, brokers need to be spun up and down, based on demand •  Client connections may need to be multiplexed, to decrease the load on individual message brokers •  Popular messaging protocols support •  Flexible routing needs to be supported
  • 24. RED HAT | Fabric8 Rocks!24 Agenda • Introduction to Fabric8 • Enterprise messaging • Fabric8MQ • Demo
  • 25. RED HAT | Fabric8 Rocks!25 Fabric8 MQ is built on Vert.x •  Lightweight, multi-reactive, application platform •  Inspired from Erlang/OTP •  Polygot •  High performance •  Asynchronous, non-blocking: – high level of concurrency
  • 26. RED HAT | Fabric8 Rocks!26 Vert.x is just fast …
  • 27. RED HAT | Fabric8 Rocks!27 Fabric8 MQ Message Flow: Protocol Conversion Camel Routing API Management Multiplexer Destination Sharding Broker Control
  • 28. RED HAT | Fabric8 Rocks!28 Fabric8 MQ Protocol Conversion •  We convert to ActiveMQ OpenWire. This saves ActiveMQ doing this, allowing it to expend all its resources to pushing messages in and out of Queues •  Protocols currently supported: •  OpenWire •  Stomp •  MQTT •  AMQP 1.0
  • 29. RED HAT | Fabric8 Rocks!29 Camel Routing: Camel is embedded to allow flexible routing: Topic:Foo MessageMessage Message Queue:Foo Channel
  • 30. RED HAT | Fabric8 Rocks!30 API Management •  Fabric8 uses APIMan for its API Management – see http://apiman.io •  Utilized within Fabric8 to provide: •  Central common place for managing all APIs (including Message Queues) •  Control and Access policies •  Rate Limiting •  Metrics and Billing
  • 31. RED HAT | Fabric8 Rocks!31 Multiplexing •  ActiveMQ performs better the lower the number of connections – less contention •  IoT applications have long lived connections, but small amount of traffic •  All configurable – you can decide how fine or coarse grained you want multiplexing •  Fabric8MQ scales up/down multiplexers as required
  • 32. RED HAT | Fabric8 Rocks!32 Destination Sharding: Benefits •  There is an overhead associated with a Destination – restrict the number of Destinations per Broker to improve performance •  Co-locate producers and consumers of a Destination to the same broker reduces latency and improves overall performance •  Increased scalability for your messaging solution •  This is done automatically by Fabric8 MQ
  • 33. RED HAT | Fabric8 Rocks!33 Destination Sharding: Fabric8 MQ Internal Model •  Discover and track all allocated brokers •  Fabric8 MQ regularly updates its internal model by examining internals of brokers running via Jolokia allowing multiple Fabric8-MQ instances to run (co-operatively scalable) •  Scales up and down brokers – moving destinations and clients between brokers •  Can dynamically set limits on number of brokers, and broker limits Broker1 Connections count Depth Consumers Producers Queue://foo.1 Depth Consumers Producers Queue://foo.2 Depth Consumers Producers Queue://foo.3 Broker2 Connections count Depth Consumers Producers Queue://bar.1 Depth Consumers Producers Queue://bar.2 Depth Consumers Producers Queue://bar.3
  • 34. RED HAT | Fabric8 Rocks!34 Destination Sharding: Internal Rules •  Fired when state changes •  Operates over the internal Model •  Rules fired in priority order •  Only one rule fired per state change Scale Up •  Connection limits exceeded OR •  Destination Limits Exceeded AND •  NO spare capacity Broker Control Scale Down •  At least ONE broker AND •  Total load across all brokers less than 50% Distribute Load •  Broker limits are Exceeded AND •  Spare capacity Ask to move clients and destinations from most loaded to least loaded Distribute clients and destinations off least loaded and remove broker Request a new Broker Broker Control is done via Kubernetes
  • 35. RED HAT | Fabric8 Rocks!35 ActiveMQ hates unexpected Acks…
  • 36. RED HAT | Fabric8 Rocks!36 Fabric8MQ has to 1.  Work out which destinations to migrate 2.  Stop dispatching to consumers 3.  Wait until the all in flight messages are acked 4.  Do the migration 5.  Update the internal destination map 6.  Then resume processing
  • 37. RED HAT | Fabric8 Rocks!37 Kubernetes •  Created by Google from experience with GCE •  Lightweight, simple and accessible orchestration system for Docker containers •  Schedules onto nodes in a compute cluster and actively manages workloads to ensure state is “correct” •  Provides easy management and Discovery Kubernetes Master Node Node Node User containers Scheduled and packed dynamically onto nodes
  • 38. RED HAT | Fabric8 Rocks!38 Kubernetes Model •  Pods – collection of one or more Docker containers – the minimum deployment unit in Kubernetes •  Replication Controllers – stored on Kubernetes Master, they determine how many replicas of Pods should be running •  Service – abstraction that defines a logical set of pods, and defines a way of exposing their ports on a unique IP address •  Namespaces – Pods, Services, Replication Controllers, Label Selector – all exist within a defined Namespace. This allows for multiple environments to be supported by the same compute cloud – or multitenancy Kubernetes Master Node Container PodContainer Pod Node Container PodContainer Pod Replication Controller Fabric8-MQ-Service
  • 39. RED HAT | Fabric8 Rocks!39 Fabric8 MQ Broker Control: •  Fabric8 MQ controls a headless Replication Controller to spin up and down ActiveMQ Brokers •  Monitors the state of running ActiveMQ brokers via Jolokia – and fires changes to the internal rules engine. •  Communicates with the Replication Controller to spin up – or delete Pods containing ActiveMQ Brokers Node Pod ActiveMQ Broker AMQ Replication Controller Node Pod ActiveMQ Broker Node Pod ActiveMQ Broker
  • 40. RED HAT | Fabric8 Rocks!40 Fabric8 MQ – not a message broker – but a scalable messaging system Many concurrent connections, one out Connections Vert.x Core Embedded Camel, Integration with APIMan OpenWire, STOMP MQTT AMQP WebSockets – all done asynchronously Scaling Connections NOT a problem Destination Sharding
  • 41. RED HAT | Fabric8 Rocks!41 Fabric8 MQ Independently scalable: Node Pod ActiveMQ Broker AMQ Replication Controller Node Pod ActiveMQ Broker Node Pod ActiveMQ Broker Fabric8MQ Replication Controller Vert.x Vert.x Vert.x Multiplexer Multiplexer Multiplexer Fabric8MQ Vert.x Vert.x Vert.x Multiplexer Multiplexer Multiplexer Fabric8MQ Vert.x Vert.x Vert.x Multiplexer Multiplexer Multiplexer Fabric8MQ
  • 42. RED HAT | Fabric8 Rocks!42
  • 43. RED HAT | Fabric8 Rocks!43 What I’m gonna try and attempt to do ... Fabric8MQ MQTT Device MQTT DeviceMQTT DeviceMQTT Device MQTT DeviceMQTT Device MQTT DeviceMQTT DeviceMQTT Device
  • 44. RED HAT | Fabric8 Rocks!44 Destination Sharding: Internal Rules Limits are set low: 5 Destinations per Broker Scale Up •  Connection limits exceeded OR •  Destination Limits Exceeded AND •  NO spare capacity Broker Control Scale Down •  At least ONE broker AND •  Total load across all brokers less than 50% Distribute Load •  Broker limits are Exceeded AND •  Spare capacity Ask to move clients and destinations from most loaded to least loaded Distribute clients and destinations off least loaded and remove broker Request a new Broker Broker Control is done via Kubernetes
  • 45. RED HAT | Fabric8 Rocks!45 Client code final String host = System.getenv("FABRIC8MQ_SERVICE_HOST"); final String portStr = System.getenv("FABRIC8MQ_SERVICE_PORT"); Kubernetes injects services as Environment variables
  • 46. RED HAT | Fabric8 Rocks!46 Questions and Discussion