[openstack-dev] [Oslo][Messaging] Do we really need transport_url parameter?
Mark McLoughlin
markmc at redhat.com
Tue May 21 08:17:53 UTC 2013
On Mon, 2013-05-20 at 18:48 +0200, Flavio Percoco wrote:
> Hi,
>
> The new API has an optional parameter called transport_url[0], which is
> used to specify the connection parameters for the chosen transport.
> This url is being passed to the driver instance, which has to parse
> it and, eventually, merge it with its own connection parameters -
> depending on the implementation. [1]
>
> My question is: Do we really need it?
Yes, for ceilometer and cells
For cells, we need to to create a transport which connects us to the
parent cell.
For ceilometer, we need to create transports which allows us to listen
to the notifications from the various projects.
> I agree it is useful for some implementations but, it can also make it
> a bit more difficult for other implementations. For example, in qpid's
> case, it could either use a single host or have a list of hosts for
> HA. If transport_url is specified it will be necessary to either give
> priority to it or append its netloc to the qpid_hosts list. However,
> this behavior, most likely won't be the same for other
> implementations.
See
https://wiki.openstack.org/wiki/Oslo/Messaging#Transport_URLs
"Since some transports will support a clustered scenario where the
transport must be confgured with multiple distinct (but equivalent)
configurations, so we will support configuring a transport with a
set of URLs."
and
http://lists.openstack.org/pipermail/openstack-dev/2013-April/008200.html
Where this gets tricky is the clustered broker setup - right now, you
just need to set qpid_hosts to a list of hostnames. To make it work with
this setup, we'd need cfg to have a crazy interpolation scheme where
e.g.
foo=foo:$bar
bar=blaa,foobar
then referencing foo returns [foo:blaa, foo:foobar]
> I'm proposing to use rpc_backend and leave the connection parameters
> definition to the implementation.
Doesn't work for cells and ceilometer - the requirement is pretty basic,
I think. A process needs to be able to connect to arbitrary transports,
not just e.g. multiple exchanges on the same broker.
> Also, from my experience with kombu managing connection URLs at a
> higher level can be painful for both the lib and backends
> implementation.
More details?
Cheers,
Mark.
More information about the OpenStack-dev
mailing list