RabbitMQ and EasyNetQ  “Messaging that just works”     Ken Taylor (@taylorka)          reQuire LLC
RabbitMQ: Who, What?•   Developed by SpringSource•   Written in Erlang•   Message Broker (MOM)•   Advanced Message Queuing...
RabbitMQ: Who, What?• NASA NEBULA Cloud Computing• AMQP Sponsors –Microsoft –Bank of America –JPMorgan Chase –Et. Al.
RabbitMQ: Why?• Distributed• Asynchronous• Easy to use• Highly fault tolerant
RabbitMQ: Why?"The world is concurrent.  Things in the world dont share data.  Things communicate with messages.  Things f...
RabbitMQ: The Basics•   Exchanges•   Queues•   Routing•   Channels•   Virtual Hosts
Mailbox, Postman & Post office
Exchange Types• Direct• Fanout• Topic• Headers
Direct Exchange
Headers exchange routing•   Ignores routing key•   Headers attributes used for routing•   Can bind a queue using one or mo...
Topic exchange routing• Routing to 1 or more queues  – Message routing key  – Pattern for queue binding• Multicast Routing...
Queues• Store messages• Consumed by applications• Have properties  – Durable  – Exclusive  – Auto-delete• Declared before ...
Channels & Virtual Hosts• Channels  – Lightweight connections that share a single TCP    connection• Virtual Hosts  – Allo...
EasyNetQ: Who, What?• Open source (easynetq.com)• Written by Mike Hadlow  – github.com/mikehadlow• NuGet Package• Sponsore...
EasyNetQ: Who, What?• Simple .NET API• Opinionated Implementation  – Trades flexibility for simplicity• Simple conventions...
EasyNetQ: Why?• Easy to install• Less code• Serializes to JSON• Simple conventions                          DEMO
How can I use it today?• Download Erlang OTP  – Erlang.org• Download RabbitMQ  – Rabbitmq.com• Install EasyNetQ with NuGet...
Questions?• Important Links  – Rabbitmq.com  – Erlang.org  – EasyNetq.com• About Me  – Ken Taylor (Twitter @taylorka)  – S...
RabbitMQ and EasyNetQ
RabbitMQ and EasyNetQ
RabbitMQ and EasyNetQ
RabbitMQ and EasyNetQ
Upcoming SlideShare
Loading in …5
×

RabbitMQ and EasyNetQ

2,356 views

Published on

Presentation given to the Hampton Roads .NET Users Group January 2013

Published in: Technology
  • Be the first to comment

RabbitMQ and EasyNetQ

  1. 1. RabbitMQ and EasyNetQ “Messaging that just works” Ken Taylor (@taylorka) reQuire LLC
  2. 2. RabbitMQ: Who, What?• Developed by SpringSource• Written in Erlang• Message Broker (MOM)• Advanced Message Queuing Protocol (AMQP)
  3. 3. RabbitMQ: Who, What?• NASA NEBULA Cloud Computing• AMQP Sponsors –Microsoft –Bank of America –JPMorgan Chase –Et. Al.
  4. 4. RabbitMQ: Why?• Distributed• Asynchronous• Easy to use• Highly fault tolerant
  5. 5. RabbitMQ: Why?"The world is concurrent. Things in the world dont share data. Things communicate with messages. Things fail.“ - Joe Armstrong
  6. 6. RabbitMQ: The Basics• Exchanges• Queues• Routing• Channels• Virtual Hosts
  7. 7. Mailbox, Postman & Post office
  8. 8. Exchange Types• Direct• Fanout• Topic• Headers
  9. 9. Direct Exchange
  10. 10. Headers exchange routing• Ignores routing key• Headers attributes used for routing• Can bind a queue using one or more headers• Can route on other values – Integer – Hash/Dictionary – Others
  11. 11. Topic exchange routing• Routing to 1 or more queues – Message routing key – Pattern for queue binding• Multicast Routing• Consumers choose message to receive
  12. 12. Queues• Store messages• Consumed by applications• Have properties – Durable – Exclusive – Auto-delete• Declared before use
  13. 13. Channels & Virtual Hosts• Channels – Lightweight connections that share a single TCP connection• Virtual Hosts – Allows broker to host multiple environments – Similar to virtual hosts on IIS
  14. 14. EasyNetQ: Who, What?• Open source (easynetq.com)• Written by Mike Hadlow – github.com/mikehadlow• NuGet Package• Sponsored by 15below.com
  15. 15. EasyNetQ: Who, What?• Simple .NET API• Opinionated Implementation – Trades flexibility for simplicity• Simple conventions – Messages should be represented by .NET types. – Messages should be routed by their .NET type.
  16. 16. EasyNetQ: Why?• Easy to install• Less code• Serializes to JSON• Simple conventions DEMO
  17. 17. How can I use it today?• Download Erlang OTP – Erlang.org• Download RabbitMQ – Rabbitmq.com• Install EasyNetQ with NuGet – “Install-Package EasyNetQ”
  18. 18. Questions?• Important Links – Rabbitmq.com – Erlang.org – EasyNetq.com• About Me – Ken Taylor (Twitter @taylorka) – Switchspan.com

×