On Thu, Jun 21, 2012 at 10:57 AM, Andrew Stitcher <[email protected]> wrote: > On Thu, 2012-06-21 at 10:08 -0400, Rajith Attapattu wrote: >> Hi All, >> >> Since we are trying to provide a consistent API for all our clients, >> it would be beneficial to have a connection string that can be used >> across all clients. >> This is a topic that has been widely discussed but without much consensus. >> >> The c++ client and python uses a simple scheme. >> It specifies a url which serves as the initial contact point and a >> bunch of options as a map. >> One of those options is reconnect_urls, a comma separated list of urls >> to connect to during failover. >> >> I propose we use the same format for the Java API. > > It is important to note that there are actually *2* different URL > schemes in use: > > (Syntax a little simplified for understanding purposes) > 1) Specifying a "normal" connection URL from the python client: > url ::= [(amqp|amqps)://][user[/password]@](hostname|literal)[:port] > > 2) C++ URL including cluster failover list: > The python client needs to understand this too to participate in > clustering with failover) > protocol ::= tcp | ssl | rdma > address ::= [protocol:](hostname|literal)[:port] > url::= [amqp:][user[/password]@]address{,address}* > > So you need to be more specific. Obviously we should be striving to > unify these URL formats too.
You raised a good point. I was actually referring to the C++ format bcos I believe (and I stand to be corrected) that the python client also supports it. > * These describe an overlapping language! Specifically the C++ syntax > does not accept "://" after the url scheme. I propose that it should - > this would make the languages much more compatible. > * The python syntax would use amqps://host for a secure connection > whereas the C++ syntax would use amqp:ssl:host for the same connection. > I personally prefer the python syntax as it would allow you to eliminate > the protocol marker in the C++ address element. I don't have a preference here, partly due to not having a complete understanding about the advantages/disadvantages of each approach. > * The major point of the C++ syntax is to allow multiple addresses (with > different protocols) in the url. Provisionally I'd prefer using a comma > separated list of urls for this where it's appropriate rather than > including it the the url format itself, but I'm much less clear about > this specific point. If I'm not mistaken, the new Qpid API encourages to the just specify a single address and then use the reconnect_urls option to specify the comma separated list in the options map. I agree that putting them in the same URL makes it more error prone and less readable. > Also note that the C++ syntax is actually very close to a syntax > specified in the 0-10 amqp specification, although its purpose is not > really specified there. > > Andrew > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
