SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
39.
A process that replicates data
to the remote server
40.
Possible issues
•
Remote server is offline
•
•
•
Prevent unbounded local buffers
Prevent message loss
Prevent unnecessary message replication
•
No need for those messages on remote server
•
Messages that became stale
43.
RabbitMQ Federation
•
Supports replication across different administrative domains
•
Supports mix of Erlang and RabbitMQ versions
•
Supports Network Partitions
•
Specificity - not everything has to be federated
66.
The Problem
•
Queues contents live in the node where the Queue was declared
67.
The Problem
•
Queues contents live in the node where the Queue was declared
•
A cluster can access the queue from every connected node
68.
The Problem
•
Queues contents live in the node where the Queue was declared
•
A cluster can access the queue from every connected node
•
Queues are an Erlang process (tied to one core)
69.
The Problem
•
Queues contents live in the node where the Queue was declared
•
A cluster can access the queue from every connected node
•
Queues are an Erlang process (tied to one core)
•
Adding more nodes doesn’t really help
75.
Sharded Queues
•
Declare Queues with name: nodename.queuename.index
76.
Sharded Queues
•
Declare Queues with name: nodename.queuename.index
•
Bind the queues to a consistent hash exchange
77.
Sharded Queues
•
Declare Queues with name: nodename.queuename.index
•
Bind the queues to a consistent hash exchange
•
Get the consumer to randomly build the queue name
84.
With RabbitMQ we can
•
Ingest data using various protocols: AMQP, MQTT and STOMP
85.
With RabbitMQ we can
•
Ingest data using various protocols: AMQP, MQTT and STOMP
•
Distribute that data globally using Federation
86.
With RabbitMQ we can
•
Ingest data using various protocols: AMQP, MQTT and STOMP
•
Distribute that data globally using Federation
•
Scale up using Sharding
87.
With RabbitMQ we can
•
Ingest data using various protocols: AMQP, MQTT and STOMP
•
Distribute that data globally using Federation
•
Scale up using Sharding
•
Load balance consumers with Federated Queues
88.
Credits
world map: wikipedia.org
federation diagrams: rabbitmq.com