Social	
  network	
  informa0on	
  
                        http://twitter.com/jefersonm          https://github.com/jefersonm/
Jéferson Machado
So#ware	
  Design	
     http://facebook.com/jefe.machado      http://slideshare.net/jefersonm
WHAT IS THAT ?




Robust messaging for applications
Written in:
LANGUAGES
•  JAVA / JVM            •    RUBY
    –  GROOVY / GRAILS   •    PYTHON
    –  SCALA / LIFT      •    .NET
    –  AKKA              •    PHP
    –  PLAY! FRAMEWORK   •    PERL
                         •    C/C++
                         •    ERLANG
                         •    LISP
                         •    HASKELL
HOW IT WORKS ?



             Post man
JARGON
  Producer	
  

      Sent	
  message	
  



    Queue	
  

Buffer	
  that	
  stores	
  messages	
  



 Consumer	
  

   Receive	
  message	
  
WORKER QUEUES
worker.py	
     new_task.py	
  
ROUND-ROBIN DISPATCHING




Consumer	
  1	
      Consumer	
  2	
  
MESSAGE ACKNOWLEDGMENT




                      Ack	
  




  Consumer	
  1	
       Consumer	
  2	
  
MESSAGE ACKNOWLEDGMENT




  Consumer	
  1	
     Consumer	
  2	
  
MESSAGE DURABILITY
FAIR DISPATCH



prefetch=1	
                 prefetch=1	
  



 Consumer	
  1	
     Consumer	
  2	
  
PUBLISH / SUBSCRIBLE
EXCHANGES
Wrong	
  
	
  
	
  
	
  
	
  
	
  
	
  


Right	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
  
EXCHANGES
TYPES:	
  

•    Direct	
  
•    Topic	
  
•    Fanout	
  
•    Header	
  


Default	
  exchange	
  
BINDINGS
TEMPORARY QUEUES
With	
  name:	
  




Random	
  name:	
  




amq.gen-­‐U0srCoW8TsaXjNh73pnVAw==	
  
ROUNTING




Exchange:	
  direct	
  
TOPICS




Message	
  =	
  quick.orange.rabbit	
       Q1,	
  Q2	
  

Message	
  =	
  quick.orange.fox	
             Q1	
  

Message	
  =	
  lazy.brown.fox	
               Q2	
  
                                                            Exchange:	
  topic	
  
TOPIC IS MUCH POWERFUL!!!
                       Message	
  =	
  #	
                                fanout	
  



Message	
  =	
  no	
  “#”	
  (hash)	
  and	
  “*”	
  (star)	
  	
  	
     direct	
  
PLUGINS
PLUGINS
REFERENCES


•    http://www.rabbitmq.com/

•    https://github.com/jefersonm/sandbox/tree/gh-pages/python/rabbitmq
Social	
  network	
  informa0on	
  
                        http://twitter.com/jefersonm          https://github.com/jefersonm/
Jéferson Machado
So#ware	
  Design	
     http://facebook.com/jefe.machado      http://slideshare.net/jefersonm

RabbitMQ