[rabbitmq-discuss] Message routing
John Watson
JWatson at sis.tv
Thu Nov 29 09:48:15 GMT 2007
Thanks very much for your answers, Martin. It's becoming clearer.
You say:
> So if you want to add services without restarting the
> broker, either publiching application or a separate admin application
> can take care of that.
I would choose a separate admin application to add services. Which
brings me to my original point - wouldn't it be more convenient to add
this functionality to the admin tool itself?
John
-----Original Message-----
From: Martin Sustrik [mailto:sustrik at imatix.com]
Sent: 28 November 2007 17:48
To: John Watson
Cc: rabbitmq-discuss at lists.rabbitmq.com
Subject: Re: [rabbitmq-discuss] Message routing
> Interesting..... I think I'm beginning to get the picture, but I'm
> still not completely happy. Suppose you have 500 different exchanges
> necessary to manage this. Your producer application does (what I'd
call
> the administration job) of creating the exchanges and is now busy
> routing messages to all the different exchanges. A customer contacts
us
> and says he wants to get message type 'D' in addition to messages 'A',
> 'B' and 'C' that he had before. Maybe there's already an exchange
with
> this profile, maybe not.
I suppose you know what services you are offering in advance. So the
producer application can create all of them as it starts.
When client calls and requests access to some service the only thing you
have to do is to grant him necessary privileges to bind to the specific
exchange. I don't know how this can be done using RabbitMQ. *Question
for RabbitMQ team!*
> The 'admin' task now is firstly (maybe) to create the new exchange and
> secondly to reconfigure the customer appl to point to a new exchange.
> The first task requires the producer program to be stopped,
> reconfigured, and restarted.
Not true. Take into account that exchanges can be created dynamically in
the runtime. So if you want to add services without restarting the
broker, either publiching application or a separate admin application
can take care of that.
Note: The AMQP protocol is specifically designed to allow this kind of
interaction. The default semantics for commands like Exchange.Declare is
'create the exchange if it does not already exist' meaning that you can
safely 'declare' the exchange even from multiple applications.
> The second requires us to contact the
> customer.
You can choose to create bindings to consumer's queue from producer
side, which is kind of uncommon, but well doable in run-time though.
Martin
*************************************************************
Satellite Information Services Limited Registered Office:
17 Corsham Street London N1 6DR, Company No. 4243307
The information in this e-mail (which includes any files
transmitted with it) is confidential and is intended for the
addressee only. Unauthorised recipients are required to
maintain confidentiality. If you have received this e-mail
in error please notify the sender immediately, destroy any
copies and delete it from your computer system.
*************************************************************
More information about the rabbitmq-discuss
mailing list