ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
dubizzle’s guide to
Ibrahim AbdelFattah
RabbitMQ
Ibrahim AbdelFattah Mohamed
Software Engineer - dubizzle
@bingorabbit
https://linkedin.com/in/bingorabbit
https://github.com/bingorabbit
dubizzle's Guide to RabbitMQ
What is
RabbitMQ?
Messaging?..
Bob James
Hey, Bob, we need to build
something extraordinary.....
...
We need to build an online
photo-sharing web app..
And we need it tomorrow..
What?
Ok..Cool..
User registers an account
User verifies account
User Uploads Picture
Picture gets uploaded
User gets link
1 day later..
Bob James
Hey, Bob..Hey James
I finished and deployed.. Great, let me get back to you..
Cool..
2 days later..
Bob James
Hey, Bob..Now what..
OH SH*T
We need to change a minor thing in the extraordinary
image-sharing app..
And we need it tomorrow.....
dubizzle's Guide to RabbitMQ
dubizzle's Guide to RabbitMQ
User registers an account
User verifies account
User Uploads Picture
Picture gets uploaded # User is waiting
Picture gets resized # User is waiting
Picture is shared on Twitter # User is waiting
User gets link # Finally!
Pub-Sub
pattern
Publisher SubscriberQueue
* https://goo.gl/aQwdpb
dubizzle's Guide to RabbitMQ
dubizzle's Guide to RabbitMQ
User registers an account
User verifies account
User Uploads Picture
Picture gets uploaded # User is waiting
Picture gets resized # User is waiting
Picture is posted on Instagram # User is waiting
User gets link # Finally!
User register an account
User verify account
When User Uploads Picture # Publisher
Publish picture.uploaded event/message
On picture.uploaded event # Subscriber
Service 1: Resize Picture
Service 2: Post Picture to Twitter
Service 3: Generate and Send a link
Pub-Sub
pattern
Publisher SubscriberQueue
Messaging
RabbitMQ
Pros
https://goo.gl/z5QXjp
Tested&ProvenRobust technology..
RabbitMQ
..is the most widely deployed open source message broker..
Plugins/Configurations
Management
Interface
dubizzle's Guide to RabbitMQ
Multiple Clients
Programming languages support
Multiple
Protocols
https://bit.ly/rmq-protocols
Two way
acknowledgements..
Community
Performance
Demo Cluster Specs
3
Nodes
4
GB of RAM
~5
GB of Storage
Kmessages200
KB/message25
19.7Seconds*
11289.574062022333 messages/sec
11k messages/sec
0.03189 ms avg latency
28.0 ms max latency
(*) From client side only..
0Message Loss
%
Kmessages100
KB/message50
~2500
(*) from server side only..
Messages/Seconds*
Benchmarks with other configurations reached higher numbers..
dubizzle's Guide to RabbitMQ
RabbitMQ
Cons
You will have to do
EVERYTHING!
Synchronization
Let’s see..
dubizzle's Guide to RabbitMQ
dubizzle tech blog
https://goo.gl/7QK7xX
Create your own AWS #RabbitMQ Cluster,
the #dubizzle way
https://goo.gl/tFMVrG
Thanks..@bingorabbit - https://linkedin.com/in/bingorabbit

More Related Content

dubizzle's Guide to RabbitMQ