Rabbitmq Boot System

3,519 views

Published on

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

No Downloads
Views
Total views
3,519
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
28
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

×