[rabbitmq-discuss] Naive Question
Bell, Paul M.
pbell at syncsort.com
Fri Feb 10 23:36:47 GMT 2012
Only after trying to think through a real world scenario did I realize that my grasp of certain fundamental AMQP concepts is tenuous.
Specifically, given a producer and a consumer, is the normative behavior for only *one* of them to declare (create?) the queue over which they communicate? As I look over the examples that I've "written" ("copied" would be more accurate), I see my producer doing this:
RabbitAdmin admin = new RabbitAdmin(rabbitTemplate.getConnectionFactory());
Exchange ex = new FanoutExchange(routingKey, true, false);
And I see my consumer doing this:
ConsumerSimpleMessageListenerContainer container = new ConsumerSimpleMessageListenerContainer();
container.setMessageListener(new MessageListenerAdapter(new ConsumerHandler(), new SimpleMessageConverter()));
What would happen if each declared a queue of the same name and type - would that give rise to two distinct queues, leaving the producer and consumer unable to communicate?
If it's normative for only one party to create the queue and the other to bind to it, what will happen if, when I try to bind to the queue, it doesn't yet exist?
Here's what I am trying to get to (I assume it requires a topic exchange):
a. a queue that holds two different message types, call them "MGMT" and "HB."
b. a producer writes MGMT messages to this queue
c. something called a "monitor" writes HB messages to this queue
d. consumer reads HB messages from this queue
e. monitor reads MGMT messages from this queue
Schematically I think it looks like this:
Producer(MGMT) -> monitor
Monitor(HB) -> consumer
How would I define these relationships via RabbitMQ? Who does what to whom?! I suspect it's simple, but after two solid weeks of 10 hour days, I am fried.
Thank you for your help.
PS: What follows is not an attempt to curry favor - but this is a really fine list; folks are friendly, knowledgeable, and eager to help. I really appreciate it.
The information contained in this message (including any files transmitted with this message) may contain proprietary, trade secret or other confidential and/or legally privileged information. Any pricing information contained in this message or in any files transmitted with this message is always confidential and cannot be shared with any third parties without prior written approval from Syncsort. This message is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any use, disclosure, copying or distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and/or Syncsort and destroy all copies of this message in your possession, custody or control.
More information about the rabbitmq-discuss