Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RabbitMQ and EasyNetQ

Ken Taylor
January 08, 2013

RabbitMQ and EasyNetQ

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

Ken Taylor

January 08, 2013
Tweet

More Decks by Ken Taylor

Other Decks in Programming

Transcript

  1. RabbitMQ: Who, What? • Developed by SpringSource • Written in

    Erlang • Message Broker (MOM) • Advanced Message Queuing Protocol (AMQP)
  2. RabbitMQ: Who, What? • NASA NEBULA Cloud Computing • AMQP

    Sponsors –Microsoft –Bank of America –JPMorgan Chase –Et. Al.
  3. RabbitMQ: Why? "The world is concurrent. Things in the world

    don't share data. Things communicate with messages. Things fail.“ - Joe Armstrong
  4. 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
  5. Topic exchange routing • Routing to 1 or more queues

    – Message routing key – Pattern for queue binding • Multicast Routing • Consumers choose message to receive
  6. Queues • Store messages • Consumed by applications • Have

    properties – Durable – Exclusive – Auto-delete • Declared before use
  7. 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
  8. EasyNetQ: Who, What? • Open source (easynetq.com) • Written by

    Mike Hadlow – github.com/mikehadlow • NuGet Package • Sponsored by 15below.com
  9. 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.
  10. EasyNetQ: Why? • Easy to install • Less code •

    Serializes to JSON • Simple conventions DEMO
  11. How can I use it today? • Download Erlang OTP

    – Erlang.org • Download RabbitMQ – Rabbitmq.com • Install EasyNetQ with NuGet – “Install-Package EasyNetQ”
  12. Questions? • Important Links – Rabbitmq.com – Erlang.org – EasyNetq.com

    • About Me – Ken Taylor (Twitter @taylorka) – Switchspan.com