Your SlideShare is downloading. ×
0
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
RabbitMQ Messaging
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

RabbitMQ Messaging

5,997

Published on

RabbitMQ Introduction presentation delivered at the Melbourne Ruby User Group, 27/8/2009

RabbitMQ Introduction presentation delivered at the Melbourne Ruby User Group, 27/8/2009

Published in: Technology
0 Comments
27 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,997
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
27
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Messaging RabbitMQ
  • 2. Marcus Crafter Red Artisan & CLEAR Interactive (@crafterm)
  • 3. Daniel Neighman CLEAR Interactive (@hassox)
  • 4. Background
  • 5. http://www.flickr.com/photos/james_c_mattison/2267135704/ During Development
  • 6. 1st Release
  • 7. Complexity
  • 8. Request/Response Time
  • 9. Background Activity
  • 10. Monolithic Extraction
  • 11. Memory & Garbage Collection
  • 12. External Communication
  • 13. Messaging
  • 14. Background processing BJ, DJ, BackgroundRB, Airbrush, Workling/Starling, DB Messaging Stomp, XMPP, ActiveMQ, Amazon SQS, MQ Series, M$
  • 15. Goldman Sachs
  • 16. AMQP Advanced Messaging Queueing Protocol
  • 17. AMQP Working Group Barclays Bank IONA Technologies Cisco Systems JPMorgan Chase Bank Credit Suisse Microsoft Corporation Deutsche Börse Novell Envoy Technologies Red Hat Inc Goldman Sachs Solace Inc iMatix Corporation Tervela Inc ... and more
  • 18. Reliable, Transaction, Acknowledgement, Routed, Pub Sub, Independent
  • 19. Protocol Specification
  • 20. AMQP Implementations Apache Qpid Red Hat Enterprise MRG ØMQ Zyre OpenAMQ and many more, plus bindings to existing products
  • 21. Rabbit MQ http://www.rabbitmq.com
  • 22. Open Source
  • 23. Erlang OTP
  • 24. Distributed
  • 25. Shiny
  • 26. Architecture AMQP & Rabbit MQ
  • 27. RabbitMQ Producer Exchange Consumer Queue Queue Queue
  • 28. Queues Acts as a message buffer between producer & consumer
  • 29. Exchange Determines how messages are routed to queues
  • 30. Producer Publishes messages to the exchange
  • 31. Consumer Receives message from the queue
  • 32. Message Naturally :)
  • 33. AMQP & Ruby Libraries, Gems, etc
  • 34. tmm1-amqp Event Machine Based & Asynchronous
  • 35. carrot & bunny Synchronous
  • 36. Direct Exchange Routing Based on “key” that matches exactly
  • 37. Direct Exchange Routing Based on “key” that matches exactly Direct
  • 38. Direct Exchange Routing Based on “key” that matches exactly Direct Homer Bindings: “Beer”“Food” ,
  • 39. Direct Exchange Routing Based on “key” that matches exactly Direct Homer Marge Bindings: Bindings: “Beer”“Food” , “Food”
  • 40. Direct Exchange Routing Based on “key” that matches exactly Direct Key = “Beer” Homer Marge Bindings: Bindings: “Beer”“Food” , “Food”
  • 41. Direct Exchange Routing Based on “key” that matches exactly Direct Homer Marge Bindings: Bindings: “Beer”“Food” , “Food”
  • 42. Direct Exchange Routing Based on “key” that matches exactly Direct Key = “Food” Homer Marge Bindings: Bindings: “Beer”“Food” , “Food”
  • 43. Direct Exchange Routing Based on “key” that matches exactly Direct Homer Marge Bindings: Bindings: Key =,“Food” Key = “Food” “Beer”“Food” “Food”
  • 44. Direct Exchange Demo - Rails
  • 45. Fanout Exchange Copies to all bound queues
  • 46. Fanout Exchange Copies to all bound queues Fanout Silo Silo Silo
  • 47. Fanout Exchange Copies to all bound queues Launch All Fanout Nukes Silo Silo Silo
  • 48. Fanout Exchange Copies to all bound queues Fanout Launch All Launch All Launch All Silo Silo Silo Nukes Nukes Nukes
  • 49. Fanout Exchange Demo - Desktop
  • 50. Topic Exchange Route By Key, with Key Globbing
  • 51. Topic Exchange Route By Key, with Key Globbing Topic Homer Marge Consumers Bindings: Bindings: Bindings: “*.Beer” “Consume.Food” “Consume.#”
  • 52. Topic Exchange Route By Key, with Key Globbing Toast Topic “Consume.Food” Homer Marge Consumers Bindings: Bindings: Bindings: “*.Beer” “Consume.Food” “Consume.#”
  • 53. Topic Exchange Route By Key, with Key Globbing Topic Homer Marge Consumers Bindings: Bindings: Bindings: “*.Beer” “Consume.Food” “Consume.#”
  • 54. Topic Exchange Route By Key, with Key Globbing Some Brand “Consume.Beer” Topic Homer Marge Consumers Bindings: Bindings: Bindings: “*.Beer” “Consume.Food” “Consume.#”
  • 55. Topic Exchange Route By Key, with Key Globbing Topic Homer Marge Consumers Bindings: Bindings: Bindings: “*.Beer” “Consume.Food” “Consume.#”
  • 56. Header Exchange Route on Meta Data
  • 57. Header Exchange Route on Meta Data Header Homer Marge Watch Dog Bindings: Bindings: Bindings: “type” = “Beer” “type” = “Food”, “rating” = “fatty” “rating” = “fatty” “rating” = “health”
  • 58. Header Exchange Route on Meta Data Header Homer Marge Watch Dog Bindings: Bindings: Bindings: “type” = “Beer” “type” = “Food”, “rating” = “fatty” “rating” = “fatty” “rating” = “health”
  • 59. Header Exchange Route on Meta Data Header Homer Marge Watch Dog Bindings: Bindings: Bindings: “type” = “Beer” “type” = “Food”, “rating” = “fatty” “rating” = “fatty” “rating” = “health”
  • 60. Header Exchange Route on Meta Data Header Homer Marge Watch Dog Bindings: Bindings: Bindings: “type” = “Beer” “type” = “Food”, “rating” = “fatty” “rating” = “fatty” “rating” = “health”
  • 61. More Information? http://amqp.org http://www.rabbitmq.com Google Video RabbitMQ http://github.com/tmm1/amqp http://github.com/celldee/bunny
  • 62. Any Questions?

×