SlideShare a Scribd company logo
1 of 60
Download to read offline
A somewhat in-depth look
Overview
• Idea was born around the same time AMQP was
first drafted by JP Morgan Chase
• First released in 2006
• Acquired by SpringSource in 2010 (now part of
VMWare)
• First version built in under 3 months!
• Written in Erlang/OTP
RabbitMQ History & Facts
• Used by quite a few major projects including
‣ Huffington Post (Huff Live)
‣ Indeed (Job Aggregation service)
‣ VMWare (vFabric)
‣ SoundCloud (transcoding service)
‣ Mozilla (Pulse)
RabbitMQ History & Facts
The Basics
Virtual Host
QueuesExchange
Binding
AMQ Model Recap
➡ Queue:
‣ critical_error_queue
➡ Exchange:
‣ errors_exchange
➡ Filter:
‣ *.error.critical
Message
Publisher
Consumer
Final overview of what the AMQ Model is about - in a nutshell...
* all within a virtual host (completely isolated)
* this is protocol at the server’s service level
QueuesExchange Binding
AMQ Model Recap
Publisher Consumer
‣ creates a relationship between
queues and exchanges
‣ contains criteria and properties
‣ can be created at runtime by
consumers
‣ store messages
‣ named
‣ bound-able to exchange
‣ criteria
‣ can be created at
runtime by consumers
‣ routes messages based on
criteria
‣ doesn’t store messages
‣ can inspect message
content
‣ can be created at runtime
consumers
‣ can create
exchanges and
queues
‣ can create
exchanges and
queues
Fanout Topic Headers System
Exchange
Types
(routing algo)
Direct
Exchange Types
Direct Exchange
“events”
type: direct
Q: user_clicks
X: events
K: user.click
MessagePublisher Consumer
K: user.click
Direct Exchange
“events”
type: direct
Q: user_clicks
X: events
K: user.click
Message
Publisher Consumer
K: user.view
Message
K: user.click
Message
K: user.share
Direct Exchange
“events”
type: direct
Q: user_clicks
X: events
K: user.click
Message
Publisher Consumer
K: user.view
Message
K: user.click
Message
K: user.share
Q: user_shares
X: events
K: user.share
Q: user_views
X: events
K: user.click
user.share
user.view
Direct Exchange
“events”
type: direct
Q: user_clicks
X: events
K: user.click
Message
Publisher Consumer
K: user.view
Message
K: user.click
Message
K: user.share
Q: user_shares
X: events
K: user.share
Q: user_views
X: events
K: user.click
user.share
user.view
Direct Exchange
“events”
type: direct
Q: user_clicks
X: events
K: user.click
Message
Publisher Consumer
K: user.view
Message
K: user.click
Message
K: user.share
Q: user_shares
X: events
K: user.share
Q: user_views
X: events
K: user.click
user.share
user.view
Direct Exchange
“events”
type: direct
Q: user_clicks
X: events
K: user.click
Message
Publisher Consumer
K: user.view
Message
K: user.click
Message
K: user.share
Q: user_shares
X: events
K: user.share
Q: user_views
X: events
K: user.click
user.share
user.view
Direct Exchange
Walkthrough and demo
Topic Exchange
“events”
type: topic
Q: all_errors
X: events
K: *.error
Message
Publisher Consumer
K: sys.info
Message
K: sys.error
Message
K: app.info
Q: system_error
X: events
K: sys.error
Q: app_logs_sys_error
X: events
K: app.*
sys.error
Message
K: app.error
Topic Exchange
“events”
type: topic
Q: all_errors
X: events
K: *.error
Message
Publisher Consumer
K: sys.info
Message
K: sys.error
Message
K: app.info
Q: system_error
X: events
K: sys.error
Q: app_logs_sys_error
X: events
K: app.*
sys.error
Message
K: app.error
Topic Exchange
“events”
type: topic
Q: all_errors
X: events
K: *.error
Message
Publisher Consumer
K: sys.info
Message
K: sys.error
Message
K: app.info
Q: system_error
X: events
K: sys.error
Q: app_logs_sys_error
X: events
K: app.*
sys.error
Message
K: app.error
Topic Exchange
“events”
type: direct
Q: all_errors
X: events
K: *.error
Message
Publisher Consumer
K: sys.info
Message
K: sys.error
Message
K: app.info
Q: system_error
X: events
K: sys.error
Q: app_logs_sys_error
X: events
K: app.*
sys.error
Message
K: app.error
Topic Exchange
Walkthrough and demo
Topic Exchange
“events”
type: topic
Q: all_errors
X: events
K: *.error
Message
Publisher Consumer
K: sys.info
Message
K: sys.error
Message
K: app.info
Q: system_error
X: events
K: sys.error
Q: app_logs_sys_error
X: events
K: app.*
sys.error
Message
K: app.error
Persistence & Durability
exchangeMessagePublisher ConsumerQueues
Persistence & Durability
exchangeMessagePublisher ConsumerQueues
‣persistent
Persistence & Durability
exchangeMessagePublisher ConsumerQueues
‣persistent ‣durable
Persistence & Durability
exchangeMessagePublisher ConsumerQueues
‣persistent ‣durable ‣durable
Persistence & Durability
exchangeMessagePublisher ConsumerQueues
‣persistent ‣durable ‣durable
Component will be recreated
in the event of reboot/restart.
Does not mean its content will
be retained
Persistence & Durability
exchangeMessagePublisher ConsumerQueues
‣persistent ‣durable ‣durable
Component will be recreated
in the event of reboot/restart.
Does not mean its content will
be retained
Messages will be persisted to disk.
In RabbitMQ, messages are actually queued in
memory before written to disk and f’syncd
For recoverable messages, queue(s) must be
durable
Administration
Administration
• Management tools via rabbitmq-plugins
• Command:
sudo rabbitmq-plugins enable rabbitmq_management
• Gives you:
•rabbitmqctl
• MochiWeb:
http://localhost:15672
Administration
• Important tools:
‣ rabbitmqctl commands
- users, perms, queues, bindings
- status, reset
‣ MochiWeb features
Distributed RabbitMQ
Clustering & Replication
Distributed RabbitMQ
Clustering Replication HA
Distributed RabbitMQ
Clustering Replication
➡Acts as a single logical unit
➡Consumer sees cluster as
single node
➡Nodes shares the same
Erlang cookie
➡Automatic metadata
replication, etc
➡Requires reliable LAN-like
environment
➡Emphasis on Consistency
& Availability
HA
Distributed RabbitMQ
Clustering Replication
➡Acts as a single logical unit
➡Consumer sees cluster as
single node
➡Nodes shares the same
Erlang cookie
➡Automatic metadata
replication, etc
➡Requires reliable LAN-like
environment
➡Emphasis on Consistency
& Availability
➡Acts like a forwarding agent
➡Nodes doesn’t share any
cookie and is standalone
➡Uses AMQP protocol itself
for forwarding
➡Suitable for unreliable WAN
connections
➡Emphasis on Availability &
Partition Tolerance
HA
Distributed RabbitMQ
Clustering Replication
➡Acts as a single logical unit
➡Consumer sees cluster as
single node
➡Nodes shares the same
Erlang cookie
➡Automatic metadata
replication, etc
➡Requires reliable LAN-like
environment
➡Emphasis on Consistency
& Availability
➡Acts like a forwarding agent
➡Nodes doesn’t share any
cookie and is standalone
➡Uses AMQP protocol itself
for forwarding
➡Suitable for unreliable WAN
connections
➡Emphasis on Availability &
Partition Tolerance
HA
➡A combo of both
➡It’s cluster with replication
➡Usually in form of master/
slave
➡Emphasis on Consistency &
Availability
Clustering
Clustering
metadata
Clustering
Clustering
metadata
metadata
rabbit01 rabbit03
rabbit02
Cluster
Typical clustering
Metadata is replicated across all nodes (operations, queues, exchange and bindings
declaration, etc)
Let’s see what happens when a queue is created...
Let’s say we have a publisher...
metadata
Clustering
Clustering
metadata
metadata
rabbit01 rabbit03
rabbit02
Cluster
P
and this is the first time it’s publishing message to a newly declared queue
metadata
Clustering
Clustering
shares_queue
metadata
metadata
rabbit01 rabbit03
rabbit02
Cluster
P
Through a LB, the connection is established with rabbit01.
Publish the message, which creates a queue and then message to it.
What should happen?
metadata
Clustering
Clustering
shares_queue
metadata
metadata
rabbit01 rabbit03
rabbit02
Cluster
Queues are created on the node called by consumer/publisher and not replicated
BUT the metadata is replicated.
metadata
Clustering
Clustering
shares_queue
metadata
metadata
rabbit01 rabbit03
rabbit02
Cluster
P
clicks_queue
Queues are created on the node called by consumer/publisher and not replicated
metadata
Clustering
Clustering
shares_queue
metadata
metadata
clicks_queue
rabbit01 rabbit03
rabbit02
Cluster
Clustering Notes
• There are three types of nodes:
‣ Stat, Disk and Ram
• All nodes must share the same cookie
• Works like a shard by default, thus adding new
node to cluster improves performance
• Upgrade is not automated
• Best have one stat-node with WebUI, rest with
agents
Important
• RabbitMQ was not designed to handle
network partition.
• Nodes in clusters should have LAN-like
reliability
Clustering
Walkthrough and demo
Distributed RabbitMQ
Clustering Replication
➡Acts as a single logical unit
➡Consumer sees cluster as
single node
➡Nodes shares the same
Erlang cookie
➡Automatic metadata
replication, etc
➡Requires reliable LAN-like
environment
➡Emphasis on Consistency
& Availability
➡Acts like a forwarding agent
➡Nodes doesn’t share any
cookie and is standalone
➡Uses AMQP protocol itself
for forwarding
➡Suitable for unreliable WAN
connections
➡Emphasis on Availability &
Partition Tolerance
HA
➡A combo of both
➡It’s cluster with replication
➡Usually in form of master/
slave
➡Emphasis on Consistency &
Availability
Naturally clustering doesn’t really solve high availability problem as it is a separate issue.
Let’s look at HA next
HA with Mirrored Queues
metadata
shares_queue
metadata
metadata
shares_queue
rabbit01 rabbit03
rabbit02
Cluster
HA
Needs to be in a clustered environment before HA can be achieved
HA with Mirrored Queues
metadata
shares_queue
metadata
metadata
shares_queue
rabbit01 rabbit03
rabbit02
Cluster
HA
Needs to be in a clustered environment before HA can be achieved
• Set up as a queue policy in RabbitMQ
‣ Create a new policy
‣ Attach a set of policy keys to it to trigger
mirroring
• Policy key:
ha-mode
• Policy values:
all, exactly(N), nodes(str...)
HA with Mirrored Queues
HA with Mirrored Queues
Here is an example of what queues look like when it is replicated/mirrored across multiple
nodes. “+2” means it’s on two other nodes.
HA with Mirrored Queues
The most powerful part of this approach is that the policy is applied to queues using a regex
pattern. This makes it extremely powerful.
HA with Mirrored Queues
How it would typically look like. The “definition” is the name you gave the policy
Most powerful part is you can create something similar to namematch-two-only. Basically this
means any future queues that ends with *.ha.two will be automatically mirrored across 2
nodes, like the next slide
HA with Mirrored Queues
you can see here app.info.ha.two and event.share.ha.two is a “+1”
HA with Mirrored Queues
Walkthrough and demo
Distributed RabbitMQ
Clustering Replication
➡Acts as a single logical unit
➡Consumer sees cluster as
single node
➡Nodes shares the same
Erlang cookie
➡Automatic metadata
replication, etc
➡Requires reliable LAN-like
environment
➡Emphasis on Consistency
& Availability
➡Acts like a forwarding agent
➡Nodes doesn’t share any
cookie and is standalone
➡Uses AMQP protocol itself
for forwarding
➡Suitable for unreliable WAN
connections
➡Emphasis on Availability &
Partition Tolerance
HA
➡A combo of both
➡It’s cluster with replication
➡Usually in form of master/
slave
➡Emphasis on Consistency &
Availability
Distributed RabbitMQ
Replication
Distributed RabbitMQ
Replication
SydneyMelbourne
rabbit01 rabbit01
shovel
federation
• consumes and republishes
• exchange to exchange
• works well across WAN
• two main difference:
• shovel is lower level
• shovel is more flexible
Two main plugins - shovel and federation. Both are very very similar but it seems there’s
more push for Shovel. Both does the same things listed here...
Distributed RabbitMQ
Replication
shovel
Melbourne
rabbit01
rabbit02
rabbit02
Sydney
syd.rb01
syd.rb03syd.rb03
Idea is to have local rabbitmq on web nodes re-publishing messages across WAN to a cluster.
Replication with Shovel
Walkthrough and demo
Q&A

More Related Content

What's hot

Distributed messaging with AMQP
Distributed messaging with AMQPDistributed messaging with AMQP
Distributed messaging with AMQPWee Keat Chin
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQTanya Denisyuk
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP Eberhard Wolff
 
Messaging with amqp and rabbitmq
Messaging with amqp and rabbitmqMessaging with amqp and rabbitmq
Messaging with amqp and rabbitmqSelasie Hanson
 
Messaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQPMessaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQPEberhard Wolff
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009Paolo Negri
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffArchitecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
 
Scaling applications with RabbitMQ at SunshinePHP
Scaling applications with RabbitMQ   at SunshinePHPScaling applications with RabbitMQ   at SunshinePHP
Scaling applications with RabbitMQ at SunshinePHPAlvaro Videla
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_monTomas Doran
 
RabbitMQ Data Ingestion
RabbitMQ Data IngestionRabbitMQ Data Ingestion
RabbitMQ Data IngestionAlvaro Videla
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)James Titcumb
 
Introduction To RabbitMQ
Introduction To RabbitMQIntroduction To RabbitMQ
Introduction To RabbitMQKnoldus Inc.
 
RabbitMQ And Nanite
RabbitMQ And NaniteRabbitMQ And Nanite
RabbitMQ And Nanitemattmatt
 
An update from the RabbitMQ team - Michael Klishin
An update from the RabbitMQ team - Michael KlishinAn update from the RabbitMQ team - Michael Klishin
An update from the RabbitMQ team - Michael KlishinRabbitMQ Summit
 

What's hot (20)

Distributed messaging with AMQP
Distributed messaging with AMQPDistributed messaging with AMQP
Distributed messaging with AMQP
 
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQAlvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
 
AMQP with RabbitMQ
AMQP with RabbitMQAMQP with RabbitMQ
AMQP with RabbitMQ
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
 
RabbitMQ Operations
RabbitMQ OperationsRabbitMQ Operations
RabbitMQ Operations
 
Messaging with amqp and rabbitmq
Messaging with amqp and rabbitmqMessaging with amqp and rabbitmq
Messaging with amqp and rabbitmq
 
Messaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQPMessaging with RabbitMQ and AMQP
Messaging with RabbitMQ and AMQP
 
Message Broker System and RabbitMQ
Message Broker System and RabbitMQMessage Broker System and RabbitMQ
Message Broker System and RabbitMQ
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffArchitecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
 
Scaling applications with RabbitMQ at SunshinePHP
Scaling applications with RabbitMQ   at SunshinePHPScaling applications with RabbitMQ   at SunshinePHP
Scaling applications with RabbitMQ at SunshinePHP
 
Amqp Basic
Amqp BasicAmqp Basic
Amqp Basic
 
Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
 
RabbitMQ Data Ingestion
RabbitMQ Data IngestionRabbitMQ Data Ingestion
RabbitMQ Data Ingestion
 
Spring RabbitMQ
Spring RabbitMQSpring RabbitMQ
Spring RabbitMQ
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
 
AMQP for phpMelb
AMQP for phpMelbAMQP for phpMelb
AMQP for phpMelb
 
Introduction To RabbitMQ
Introduction To RabbitMQIntroduction To RabbitMQ
Introduction To RabbitMQ
 
RabbitMQ And Nanite
RabbitMQ And NaniteRabbitMQ And Nanite
RabbitMQ And Nanite
 
An update from the RabbitMQ team - Michael Klishin
An update from the RabbitMQ team - Michael KlishinAn update from the RabbitMQ team - Michael Klishin
An update from the RabbitMQ team - Michael Klishin
 

Viewers also liked

Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureAlvaro Videla
 
Developing highly scalable applications with Symfony and RabbitMQ
Developing highly scalable applications with  Symfony and RabbitMQDeveloping highly scalable applications with  Symfony and RabbitMQ
Developing highly scalable applications with Symfony and RabbitMQAlexey Petrov
 
Cluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQCluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQShameera Rathnayaka
 
新浪微博开放平台Redis实战
新浪微博开放平台Redis实战新浪微博开放平台Redis实战
新浪微博开放平台Redis实战mysqlops
 
Taste Rabbitmq
Taste RabbitmqTaste Rabbitmq
Taste Rabbitmqjeff kit
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redispaitoubing
 
Improvements in RabbitMQ
Improvements in RabbitMQImprovements in RabbitMQ
Improvements in RabbitMQAlvaro Videla
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 
Rabbitmq, amqp Intro - Messaging Patterns
Rabbitmq, amqp Intro - Messaging PatternsRabbitmq, amqp Intro - Messaging Patterns
Rabbitmq, amqp Intro - Messaging PatternsJavier Arias Losada
 
Introduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal LabsIntroduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal LabsAlvaro Videla
 
Integrating RabbitMQ with PHP
Integrating RabbitMQ with PHPIntegrating RabbitMQ with PHP
Integrating RabbitMQ with PHPAlvaro Videla
 
RabbitMQ Data Ingestion at Craft Conf
RabbitMQ Data Ingestion at Craft ConfRabbitMQ Data Ingestion at Craft Conf
RabbitMQ Data Ingestion at Craft ConfAlvaro Videla
 
深入了解Redis
深入了解Redis深入了解Redis
深入了解Redisiammutex
 
Redis for the Everyday Developer
Redis for the Everyday DeveloperRedis for the Everyday Developer
Redis for the Everyday DeveloperRoss Tuck
 

Viewers also liked (18)

Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
 
Developing highly scalable applications with Symfony and RabbitMQ
Developing highly scalable applications with  Symfony and RabbitMQDeveloping highly scalable applications with  Symfony and RabbitMQ
Developing highly scalable applications with Symfony and RabbitMQ
 
Cluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQCluster_Performance_Apache_Kafak_vs_RabbitMQ
Cluster_Performance_Apache_Kafak_vs_RabbitMQ
 
RabbitMQ Plugins Talk
RabbitMQ Plugins TalkRabbitMQ Plugins Talk
RabbitMQ Plugins Talk
 
新浪微博开放平台Redis实战
新浪微博开放平台Redis实战新浪微博开放平台Redis实战
新浪微博开放平台Redis实战
 
Taste Rabbitmq
Taste RabbitmqTaste Rabbitmq
Taste Rabbitmq
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redis
 
Improvements in RabbitMQ
Improvements in RabbitMQImprovements in RabbitMQ
Improvements in RabbitMQ
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
Rabbitmq, amqp Intro - Messaging Patterns
Rabbitmq, amqp Intro - Messaging PatternsRabbitmq, amqp Intro - Messaging Patterns
Rabbitmq, amqp Intro - Messaging Patterns
 
Introduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal LabsIntroduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal Labs
 
RabbitMQ Messaging
RabbitMQ MessagingRabbitMQ Messaging
RabbitMQ Messaging
 
Integrating RabbitMQ with PHP
Integrating RabbitMQ with PHPIntegrating RabbitMQ with PHP
Integrating RabbitMQ with PHP
 
RabbitMQ Data Ingestion at Craft Conf
RabbitMQ Data Ingestion at Craft ConfRabbitMQ Data Ingestion at Craft Conf
RabbitMQ Data Ingestion at Craft Conf
 
深入了解Redis
深入了解Redis深入了解Redis
深入了解Redis
 
Redis for the Everyday Developer
Redis for the Everyday DeveloperRedis for the Everyday Developer
Redis for the Everyday Developer
 
IEEE 12207
IEEE 12207IEEE 12207
IEEE 12207
 

Similar to RabbitMQ fairly-indepth

Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpStrimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpJosé Román Martín Gil
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka IntroductionAmita Mirajkar
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsRonny López
 
Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...
Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...
Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...confluent
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaRicardo Bravo
 
Building and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub SystemBuilding and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub SystemKapil Reddy
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaSteven Wu
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaKasun Indrasiri
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...Athens Big Data
 
Achieving mass scale with Quasar Fibers
Achieving mass scale with Quasar FibersAchieving mass scale with Quasar Fibers
Achieving mass scale with Quasar FibersIdan Sheinberg
 
Day in the life event-driven workshop
Day in the life  event-driven workshopDay in the life  event-driven workshop
Day in the life event-driven workshopChristina Lin
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...confluent
 
KFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AIKFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AIAnimesh Singh
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogJoe Stein
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornMaxime Najim
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On ConcurrencyWill Gage
 
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...Nicola Ferraro
 

Similar to RabbitMQ fairly-indepth (20)

Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpStrimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
Concurrency in ruby
Concurrency in rubyConcurrency in ruby
Concurrency in ruby
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...
Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...
Kafka Summit NYC 2017 - Every Message Counts: Kafka as a Foundation for Highl...
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Building and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub SystemBuilding and Scaling a WebSockets Pubsub System
Building and Scaling a WebSockets Pubsub System
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
 
Achieving mass scale with Quasar Fibers
Achieving mass scale with Quasar FibersAchieving mass scale with Quasar Fibers
Achieving mass scale with Quasar Fibers
 
Day in the life event-driven workshop
Day in the life  event-driven workshopDay in the life  event-driven workshop
Day in the life event-driven workshop
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
 
KFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AIKFServing Payload Logging for Trusted AI
KFServing Payload Logging for Trusted AI
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with Nashorn
 
Shopzilla On Concurrency
Shopzilla On ConcurrencyShopzilla On Concurrency
Shopzilla On Concurrency
 
Event driven-arch
Event driven-archEvent driven-arch
Event driven-arch
 
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
 

More from Wee Keat Chin

Deployment Automation - My journey at Peazie
Deployment Automation - My journey at PeazieDeployment Automation - My journey at Peazie
Deployment Automation - My journey at PeazieWee Keat Chin
 
Automating with CloudFormation
Automating with CloudFormationAutomating with CloudFormation
Automating with CloudFormationWee Keat Chin
 
Getting Started with Arduino
Getting Started with ArduinoGetting Started with Arduino
Getting Started with ArduinoWee Keat Chin
 

More from Wee Keat Chin (6)

Git foundation
Git foundationGit foundation
Git foundation
 
Deployment Automation - My journey at Peazie
Deployment Automation - My journey at PeazieDeployment Automation - My journey at Peazie
Deployment Automation - My journey at Peazie
 
Automating with CloudFormation
Automating with CloudFormationAutomating with CloudFormation
Automating with CloudFormation
 
Getting Started with Arduino
Getting Started with ArduinoGetting Started with Arduino
Getting Started with Arduino
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Getting agile
Getting agileGetting agile
Getting agile
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

RabbitMQ fairly-indepth