Contenu connexe Similaire à Rabbitmq Boot System Similaire à Rabbitmq Boot System (20) Plus de Alvaro Videla (20) Rabbitmq Boot System2. About Me
• Developer Advocate for Cloud Foundry
• Blog: http://videlalvaro.github.com/
• Twitter: @old_sound
Wednesday, December 12, 12
3. About Me
Co-authored
RabbitMQ in Action
http://bit.ly/rabbitmq
Wednesday, December 12, 12
6. RabbitMQ Boot Steps
https://github.com/videlalvaro/rabbit-internals/blob/master/rabbit_boot_process.md
Wednesday, December 12, 12
7. RabbitMQ Boot Steps
Take care of starting the many sub
systems that compose RabbitMQ
respecting order and dependencies
Wednesday, December 12, 12
8. RabbitMQ Boot Steps
Take care of starting the many sub
systems that compose RabbitMQ
respecting order and dependencies
brainchild of @leastfixedpoint
Wednesday, December 12, 12
9. Subsystems
• external infrastructure
• kernel (rabbit kernel)
• core
• routing
Wednesday, December 12, 12
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. 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, December 12, 12
13. RabbitMQ Boot Steps
-rabbit_boot_step({external_infrastructure,
[{description, "external infrastructure ready"}]}).
Grouping Boot Steps
Wednesday, December 12, 12
16. Erlang Modules
-module(m). % module attribute
-export([fact/1]). % module attribute
-behaviour(Behaviour). % module attribute
Wednesday, December 12, 12
18. RabbitMQ Boot Steps
- rabbit_misc:all_module_attributes/1
- rabbit_misc:module_attributes/1
Wednesday, December 12, 12
19. RabbitMQ Boot Steps
- rabbit:boot_steps/0
- rabbit:sort_bootsteps/1
- rabbit_misc:build_acyclic_graph/3
Wednesday, December 12, 12
20. RabbitMQ Boot Steps
• Add order
• Add flexibility
• Very powerful tool
• Hidden gem in the Erlang world
Wednesday, December 12, 12