Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rabbitmq Boot System

4,060 views

Published on

Published in: Technology
  • Be the first to comment

Rabbitmq Boot System

  1. 1. RabbitMQ Boot System Alvaro Videla - Zürich Erlang User GroupWednesday, December 12, 12
  2. 2. About Me • Developer Advocate for Cloud Foundry • Blog: http://videlalvaro.github.com/ • Twitter: @old_soundWednesday, December 12, 12
  3. 3. About Me Co-authored RabbitMQ in Action http://bit.ly/rabbitmqWednesday, December 12, 12
  4. 4. RabbitMQWednesday, December 12, 12
  5. 5. Quick DemoWednesday, December 12, 12
  6. 6. RabbitMQ Boot Steps https://github.com/videlalvaro/rabbit-internals/blob/master/rabbit_boot_process.mdWednesday, December 12, 12
  7. 7. RabbitMQ Boot Steps Take care of starting the many sub systems that compose RabbitMQ respecting order and dependenciesWednesday, December 12, 12
  8. 8. RabbitMQ Boot Steps Take care of starting the many sub systems that compose RabbitMQ respecting order and dependencies brainchild of @leastfixedpointWednesday, December 12, 12
  9. 9. Subsystems • external infrastructure • kernel (rabbit kernel) • core • routingWednesday, December 12, 12
  10. 10. RabbitMQ Boot StepsWednesday, December 12, 12
  11. 11. RabbitMQ Boot Steps -rabbit_boot_step({recovery, [{description, "exchange, queue and binding recovery"}, {mfa, {rabbit, recover, []}}, {requires, empty_db_check}, {enables, routing_ready}]}).Wednesday, December 12, 12
  12. 12. 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 StartupWednesday, December 12, 12
  13. 13. RabbitMQ Boot Steps -rabbit_boot_step({external_infrastructure, [{description, "external infrastructure ready"}]}). Grouping Boot StepsWednesday, December 12, 12
  14. 14. RabbitMQ Boot Steps How do they actually work?Wednesday, December 12, 12
  15. 15. MagicWednesday, December 12, 12
  16. 16. Erlang Modules -module(m). % module attribute -export([fact/1]). % module attribute -behaviour(Behaviour). % module attributeWednesday, December 12, 12
  17. 17. Module Attributes -Tag(Value).Wednesday, December 12, 12
  18. 18. RabbitMQ Boot Steps - rabbit_misc:all_module_attributes/1 - rabbit_misc:module_attributes/1Wednesday, December 12, 12
  19. 19. RabbitMQ Boot Steps - rabbit:boot_steps/0 - rabbit:sort_bootsteps/1 - rabbit_misc:build_acyclic_graph/3Wednesday, December 12, 12
  20. 20. RabbitMQ Boot Steps • Add order • Add flexibility • Very powerful tool • Hidden gem in the Erlang worldWednesday, December 12, 12
  21. 21. Thanks!Wednesday, December 12, 12

×