[openstack-dev] [oslo][messaging]: expected delivery guarantees & handling failure

Gordon Sim gsim at redhat.com
Fri Nov 29 15:58:16 UTC 2013


What are the expected delivery guarantees for messages for rpc 
transports in oslo.messaging?

Are failures to be handled by the applications using the rpc interface 
(e.g. by retrying on timeout)? Or is the transport expected to provide 
the necessary reliability of messages? Or is this something that can 
vary by transport (i.e. with different qos for different transports)?

I see acks seem to be used for consumer with rabbit, but there is no 
means in AMQP 0-9-1 to confirm published messages (Rabbit have an 
extension, but I can't see this being used either). So though the 
delivery from broker to consumers is reliable (assuming durable or 
replicated storage of the message by the broker), the delivery from 
producers to the broker is not.

For qpid the queues are always autodelete and no reliability is set for 
consumers (i.e. messages are assumed delivered without waiting for 
acknowledgement). As the reconnect is handled by the driver rather than 
the underlying qpid.messaging client, in doubt published messages aren't 
replayed either.

I'm very new to the code so I may be missing something, but it seems 
like messages could be lost regardless of broker configuration with 
either the rabbit or qpid drivers and just wanted to confirm this is as 
intended.

--Gordon.



More information about the OpenStack-dev mailing list