qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: federated broker system - end-to-end messaging not working
Date Mon, 18 Jan 2016 10:20:50 GMT
On 01/15/2016 07:17 PM, jjw tectec wrote:
> Hello,
> I'm trying to set up a federated broker system and testing 3 brokers so
> far: B1->B2->B3. I'm not seeing messages published to B1 received by
> subscriber attached to B3. However, in my tests, Pub->B1->B2->Sub and
> Pub->B2->B3->Sub are both working. Below are some configuration details
> that I've used. Can somebody help?
> Script for creating queues/exchanges, bindings, and routes:
> qpid-config -a $B1 add queue $QUEUE --durable
> qpid-config -a $B2 add queue $QUEUE --durable
> qpid-config -a $B2 add exchange topic $EX --durable
> qpid-config -a $B3 add exchange topic $EX --durable
>   qpid-config -a $B2 bind $EX $QUEUE keyX --durable
>   qpid-route -v -d queue add $B2 $B1 $EX $QUEUE
>   qpid-route -s -v -d queue add $B3 $B2 $EX $QUEUE
> =================
> In the publisher code:
> address.setType("queue");
> msg.setSubject("keyX");
> In the subscriber code:
> address.setType("topic");
> ==================
> When doing:
>    Pub -> B1 -> B2 -> B3 -> Sub
> I was hoping that the message will carry "keyX" as the routing key, gets
> published into B1's queue, delivered into B2's exchange, then B2 will use
> "keyX" to route message into B2's queue, delivered into B3's exchange,
> delivered to Sub.
> But since I'm not seeing messages flow from one end to the other, looks
> like B2's binding between its exchange and queue is not working the way I
> wanted it to. Am I missing something?

The way that AMQP 0-10 is defined, the 'destination' of a transfer is 
always an exchange. When sending 'direct' to a queue, the 
qpid::messaging library will set the destination to '' (the so-called 
'default exchange') and set the routing key to the queue name. (If there 
is a subject that is different from this, it will be carried as an 
application property named 'qpid.subject').

So in your case the message as published to 'queue' on B1 will not have 
the routing key set to 'keyX' as you expect, and hence it will be 
dropped by B2 as there is no matching binding.

Would it be possible to rename 'queue' on B1 as 'keyX' (or use 'queue' 
as the key in the binding against the exchange pn B2?

Alternatively, could you change the exchange used to be a fanout 
exchange and not require key based bindings?

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

View raw message