[rabbitmq-discuss] clarifying plugin supervision, configuration
simon at rabbitmq.com
Thu Sep 2 15:34:08 BST 2010
Hi Jon. I don't know if you've found answers to these questions yet, but
I'll take a stab at answering anyway.
On 24/08/10 17:11, Jon Brisbin wrote:
> I'm looking at some of the existing plugins and I just want to make sure
> I understand how the plugins are supervised in the broker.
> It looks like it starts the application defined in the plugin's .app
> file, whose start() function should call my plugin's supervisor's
> start_link() function, correct?
Yes. It can start more than one supervisor of course, but it needs to
return the pid of the top-level one.
> Looking at rabbit_shovel, the plugin loads the configuration in the
> start_link() function, which I assume is coming from the main
> rabbit.config file? I don't have to have a separate config file for my
> plugin, correct?
> I'll need to listen on multiple exchanges, so I'm assuming I'll need a
> gen_server, which starts separate consumers, for each configuration
> element (akin to what rabbit_shovel is doing by creating a child
> configuration in the supervisor for each element in the configuration
> file). How far can I go before I need to worry about resource usage of
> the "process per consumer" approach?
Pretty far. Erlang processes are in general much cheaper than threads
are in other languages precisely so you can do things like that.
> Or should I have a consumer that
> listens to multiple exchanges (since it'll be doing almost the same
> thing for every message that comes through)?
> J. Brisbin
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
Staff Engineer, RabbitMQ
SpringSource, a division of VMware
More information about the rabbitmq-discuss