Successfully reported this slideshow.
Your SlideShare is downloading. ×

Taming the rabbit

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Rabbitmq Boot System
Rabbitmq Boot System
Loading in …3
×

Check these out next

1 of 62 Ad

More Related Content

Slideshows for you (20)

Advertisement

Similar to Taming the rabbit (20)

More from Alvaro Videla (20)

Advertisement

Recently uploaded (20)

Taming the rabbit

  1. Taming The Rabbit Writing RabbitMQ Plugins Alvaro Videla - VMware Wednesday, October 24, 12
  2. About Me • Developer Advocate for Cloud Foundry • Blog: http://videlalvaro.github.com/ • Twitter: @old_sound Wednesday, October 24, 12
  3. About Me • Developer Advocate for Cloud Foundry • Blog: http://videlalvaro.github.com/ • Twitter: @old_sound • I created gifsockets™ Wednesday, October 24, 12
  4. About Me Co-authored RabbitMQ in Action http://bit.ly/rabbitmq Wednesday, October 24, 12
  5. RabbitMQ Wednesday, October 24, 12
  6. RabbitMQ • Enterprise Messaging System • Open Source MPL • Written in Erlang/OTP • Messaging via AMQP • Acquired by Spring Source (VMware) Wednesday, October 24, 12
  7. Features • Reliable and High Scalable • Easy To install • Easy To Cluster • Runs on: Windows, Solaris, Linux, OSX • AMQP 0.8 - 0.9.1 Wednesday, October 24, 12
  8. Wednesday, October 24, 12
  9. Extensible • Plugin System • Official Plugins • Community Plugins Wednesday, October 24, 12
  10. Extensible • Plugin System • Official Plugins • Community Plugins • Plugins must be written in Erlang Wednesday, October 24, 12
  11. Wednesday, October 24, 12
  12. What can you do with plugins? Wednesday, October 24, 12
  13. Add new Protocols Wednesday, October 24, 12
  14. STOMP Wednesday, October 24, 12
  15. STOMP COMMAND header1:value1 header2:value2 Body^@ Wednesday, October 24, 12
  16. STOMP CONNECT accept-version:1.1 host:stomp.github.org ^@ Wednesday, October 24, 12
  17. STOMP CONNECTED version:1.1 ^@ Wednesday, October 24, 12
  18. Websockets + STOMP = WebSTOMP Wednesday, October 24, 12
  19. Add Authentication Mechanisms Wednesday, October 24, 12
  20. LDAP Wednesday, October 24, 12
  21. SSL Wednesday, October 24, 12
  22. Add your own Message Store Wednesday, October 24, 12
  23. Must Read http://www.rabbitmq.com/blog/2011/01/20/rabbitmq- backing-stores-databases-and-disks/ Wednesday, October 24, 12
  24. Wrap Erlang apps together with RabbitMQ Wednesday, October 24, 12
  25. cowboy-wrapper Wednesday, October 24, 12
  26. ldap-wrapper Wednesday, October 24, 12
  27. webmachine-wrapper Wednesday, October 24, 12
  28. Add extra functionality to the broker Wednesday, October 24, 12
  29. RabbitMQ Management Plugin Wednesday, October 24, 12
  30. http://www.rabbitmq.com/img/management/overview.png Wednesday, October 24, 12
  31. RabbitMQ Shovel Plugin Wednesday, October 24, 12
  32. Create your Own Exchanges Wednesday, October 24, 12
  33. Why? Wednesday, October 24, 12
  34. Exchanges Wednesday, October 24, 12
  35. Message Flow http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.0/html/Messaging_Tutorial/chap-Messaging_Tutorial-Initial_Concepts.html Wednesday, October 24, 12
  36. AMQP Model • Exchanges • Message Queues • Bindings • Rules for binding them Wednesday, October 24, 12
  37. Exchange Types • Fanout • Direct • Topic Wednesday, October 24, 12
  38. http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.0/html/Messaging_Tutorial/sect-Messaging_Tutorial-Initial_Concepts- Fanout_Exchange.html Wednesday, October 24, 12
  39. http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.0/html/Messaging_Tutorial/sect-Messaging_Tutorial-Initial_Concepts- Direct_Exchange.html Wednesday, October 24, 12
  40. http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.0/html/Messaging_Tutorial/sect-Messaging_Tutorial-Initial_Concepts- Topic_Exchange.html Wednesday, October 24, 12
  41. random-exchange Wednesday, October 24, 12
  42. consistent-hash-exchange Wednesday, October 24, 12
  43. riak-exchange Wednesday, October 24, 12
  44. rabbitmq-global-fanout-exchange Wednesday, October 24, 12
  45. recent-history-exchange Wednesday, October 24, 12
  46. recent-history-exchange user_x Using the recent history exchange New Msg Last N messages Msg New Chat Room Msg Exchange Cache Cached New New New Msgs Msg Msg Msg user_a user_b user_c new_user http://manning.com/videla/ Wednesday, October 24, 12
  47. Exchange Behaviours Wednesday, October 24, 12
  48. recent-history-exchange Caches up to 20 messages Recent History Exchange route/2 Delivers add_binding/3 cached msgs to new client delete/3 Drops cached messages http://manning.com/videla/ Wednesday, October 24, 12
  49. Env Setup hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella cd rabbitmq-public-umbrella make co Wednesday, October 24, 12
  50. File Structure |-- rabbitmq-public-umbrella | |-- myplugin-folder | | | -- package.mk | | | -- Makefile Wednesday, October 24, 12
  51. RabbitMQ Boot Steps https://github.com/videlalvaro/rabbit-internals/blob/master/rabbit_boot_process.md Wednesday, October 24, 12
  52. RabbitMQ Boot Steps Wednesday, October 24, 12
  53. RabbitMQ Boot Steps -rabbit_boot_step({recovery, [{description, "exchange, queue and binding recovery"}, {mfa, {rabbit, recover, []}}, {requires, empty_db_check}, {enables, routing_ready}]}). Wednesday, October 24, 12
  54. RabbitMQ Boot Steps -rabbit_boot_step({msg_store_bitcask_index, [{description, "Bitcask Index for rabbit_msg_store"}, {mfa, {application, set_env, [rabbit, msg_store_index_module, ?MODULE]}}, {enables, recovery}]}). Modify Configuration at Startup Wednesday, October 24, 12
  55. Demo Code Wednesday, October 24, 12
  56. Managing Plugins Wednesday, October 24, 12
  57. rabbitmq-plugins $ rabbitmq-plugins list $ rabbitmq-plugins enable plugin_name $ rabbitmq-plugins disable plugin_name http://www.rabbitmq.com/man/rabbitmq-plugins.1.man.html Wednesday, October 24, 12
  58. ACHTUNG! • Plugins Run in the same Erlang process Wednesday, October 24, 12
  59. ACHTUNG! • Plugins Run in the same Erlang process • They may crash your broker Wednesday, October 24, 12
  60. Have Fun and Experiment! Wednesday, October 24, 12
  61. Questions? Wednesday, October 24, 12
  62. Thanks! Álvaro Videla http://twitter.com/old_sound http://github.com/videlalvaro http://www.slideshare.net/old_sound Wednesday, October 24, 12

×