> > >
> > >Sorry, I may have not made my question clear.
> > >Publisher doesn't have to be aware of consumer, but it must know the
> > >binding key.
> > >Now I reread the below statement I think I got your idea is:
> > >When subscriber subscribes an event, the framework creates the queue
> > >and notifies binding key to publisher.
> >
> > Not quite, at least in the AMQP case. Publisher need not be aware of
> > binding key also. There is explicit concept of 'routing key' and 'binding 
> > key'
> in AQMP.
> > A message is published in the exchange with a routing key.
> > Its broker responsibility to match the routing key of the message with
> > all the binding key's associated with the queues. If there is a match
> > of keys, then message is delivered into queue.
> 
> Yes, in theory the string is called as routing key when publisher uses it and 
> as
> binding key when subscriber uses it.
> 
> Ok. I reread the thread again,  I may have done a wrong assumption that
> publisher only publishes events subscribed by some subscriber. So I say
> publisher must know binding key otherwise it doesn't know what routing key
> to use when calling basicPublish().

Hmm, actually it's not practical to publish events that only being subscribed.
This will prevent other AMQP clients that has no knowledge about CloudStack 

> 
> >>"*.*.*.VirtualMachine.9d827485-0f46-4db8-bd39-fede97cbac0c".
> Now it turns out that publisher will publish all events related to a VM no
> matter if any subscriber interested in it, am I right? In this case, publisher
> needs not to know binding key as it publishes events using predefined
> routing key.




Reply via email to