qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: Does qpid federation work with Azure Service Bus
Date Wed, 05 Mar 2014 10:53:30 GMT
On 03/05/2014 02:08 AM, smartdog wrote:
> We need post some messages to Azure Service Bus and figure it would be nice
> (in case Azure service bus is down) to post messages to the local qpid
> broker first and then let the broker propagate messages to Azure.
>
> I tried with
>
> qpid-route -d queue add azureuser/password@namespace.servicebus.windows.net
> 127.0.0.1:5672 amq.fanout brokerqueue
>
> and got Failed: VersionError - client: 0-10, server: 0-0
>
> It seems related with version conflict (Azure supports amqp 1.0, while
> broker is qmap 0-10)
>
> Any idea or this just won't work? Thanks.

The federation features controlled by qpid-route are based on AMQP 0-10.

There is a similar mechanism for AMQP 1.0 but I haven't ever tested it 
against ServiceBus, though it hasn't been used much yet.

To establish links (in either direction), you first need to create a 
'domain' defining the connection details for the process you want to 
connect to (in your case the service bus). This of course also assumes 
that the AMQP 1.0 module is loaded.

If you are using qpid-config from 0.26 you can do:

   qpid-config -b 127.0.0.1:5672 add domain my-servicebus --argument 
url=namespace.servicebus.windows.net --argument username=azureuser 
--argument password=password --argument sasl_mechanisms=PLAIN

If you can't use the latest qpid-config, you can use the qpidt testing 
tool from 0.24[1].

Now you have a domain you can create incoming or outgoing links to the 
service identified by the domain. Again you can use qpid-config for this 
since 0.26, or qpidt if you don't have the latest version of that.

   qpid-config add incoming my-in-link --argument domain=my-servicebus 
--argument source=node-on-servicebus --argument target=node-on-qpidd

Which should cause messages from node-on-servicebus to be pulled into 
qpidd, into a node (queue or exchange) called node-on-qpidd.

You can also create links in the other direction, where the type is 
outgoing rather than incoming. (You can also create senders or receivers 
on a qpidd session to/from e.g. a-node@my-servicebus, and qpid will 
establish links to the node on service bus over which messages, flow and 
dispositions are relayed. I.e. you can send to or receive from any node 
on the service bus, via qpidd).

One current limitation of this 1.0 based mechanism is that it won't try 
to re-establish any failed connections.

--Gordon

[1] 
http://svn.apache.org/viewvc/qpid/branches/0.24/qpid/cpp/src/tests/qpidt?view=markup, 
with this tool the format is slightly different, e.g.

qpidt create domain my-servicebus url=namespace.servicebus.windows.net 
username=azureuser password=password sasl_mechanisms=PLAIN


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Mime
View raw message