You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Alexandre Trufanow <al...@gmail.com> on 2016/04/21 18:03:15 UTC

Dispatch mobile subscribers

Hi all,

I am trying to get the following working on dispatch-0.5:

producer -> brokerA.exchange -> brokerA.queue -> dispatcher -> consumer

Subscribing a consumer to the queue directly on the broker works fine but I
haven't managed to find a configuration where a mobile subscriber on the
dispatcher can receive messages.

Is there a sample configuration somewhere for mobile consumers connecting
to a dispatcher ? Ideally I would like to be able to add multiple brokers
with the same queue name to be able to scale.

Thanks,
Alexandre

RE: Dispatch mobile subscribers

Posted by TRUFANOW Alexandre <Al...@murex.com>.
You're right, in my previous example I was only receiving messages messages from the broker queue. 

I added the following code fragment on top of the configuration you provided

address {
    prefix: exchange
    waypoint: yes
}

And for each broker: 

autoLink {
    addr: exchange
    dir: out
    connection: broker.A
}

Messages are read directly from each broker after the producer has finished sending.

A
________________________________________
From: Ted Ross [tross@redhat.com]
Sent: Friday, April 22, 2016 6:40 PM
To: users@qpid.apache.org
Subject: Re: Dispatch mobile subscribers

On 04/22/2016 10:43 AM, Alexandre Trufanow wrote:
> After switching to 0.6-beta2, everything works great!
>
> I did have to patch unit tests to remove ipv6 and sasl/ssl (both are
> disabled in my use case). I can provide the modifications I made if you
> would like to support this use case.
>
> I have noticed a difference which is probably due to the shift from
> fanout=multiple to distribution=balanced. If I have a single producer and 3
> receiving brokers, all messages are sent to a single broker (which does not
> change between tests). If I have concurrent producers, messages are spread
> out but one broker still receives more messages than the rest. Is this
> expected behavior? I would expect messages to be spread out more evenly.
> There are no clients consuming messages in this use case.

Your original example didn't involve the router in producing messages to
the brokers' exchanges.  Are you using autoLink {dir: out...} for
routing deliveries to the routers?

I'm working on some updates to the "balanced" forwarder to make it work
better, but I would still expect that messages from one producer would
be spread across the brokers (unless you are using linkRoute, in which
case each producer is bound at attach-time to a specific broker).

-Ted

>
> Thanks for you help
> Alexandre
>
> On Fri, Apr 22, 2016 at 10:33 AM, Alexandre Trufanow <
> alexandre.trufanow.mx@gmail.com> wrote:
>
>> Hi Ted,
>>
>> I'll look into 0.6.0 beta. The configuration looks much more intuitive, I
>> am assuming dir: in/out replace phase: 0, 1. Will future versions be
>> backwards compatible with this configuration?
>>
>> Thanks!
>> Alexandre
>>
>> On Thu, Apr 21, 2016 at 7:22 PM, Ted Ross <tr...@redhat.com> wrote:
>>
>>> Hi Alexandre,
>>>
>>> Could I get you to try the qpid-dispatch 0.6.0 beta?
>>>
>>> (
>>> https://cwiki.apache.org/confluence/display/qpid/What's+New+in+Apache+Qpid+Dispatch+Router+0.6.0
>>> )
>>>
>>> Your use case is greatly improved in this new version.  I just verified
>>> your use case with the following configuration fragment:
>>>
>>> connector {
>>>      addr: <broker-host>
>>>      port: <broker-port>
>>>      role: route-container
>>>      name: BrokerA
>>> }
>>>
>>> address {
>>>      prefix: queue
>>>      waypoint: yes
>>> }
>>>
>>> autoLink {
>>>      addr: queue
>>>      dir: in
>>>      connection: BrokerA
>>> }
>>>
>>> The "connector" causes the router to establish a connection to the broker
>>> with the exchange and queue.  The "address" establishes the namespace
>>> starting with "queue" as being a waypoint address (i.e. on a broker).  The
>>> "autoLink" instructs the router to subscribe to the queue on BrokerA once
>>> the connection is opened.  This subscription will then feed deliveries to
>>> mobile consumers on address "queue".
>>>
>>> You can then scale it out by adding an instance of "connector" for each
>>> additional broker and an instance of "autoLink" for the queue on the broker:
>>>
>>> connector {
>>>      addr: <broker-b-host>
>>>      port: <broker-b-port>
>>>      role: route-container
>>>      name: BrokerB
>>> }
>>>
>>> autoLink {
>>>      addr: queue
>>>      dir: in
>>>      connection: BrokerB
>>> }
>>>
>>> Regards,
>>>
>>> -Ted
>>>
>>>
>>>
>>> On 04/21/2016 12:03 PM, Alexandre Trufanow wrote:
>>>
>>>> Hi all,
>>>>
>>>> I am trying to get the following working on dispatch-0.5:
>>>>
>>>> producer -> brokerA.exchange -> brokerA.queue -> dispatcher -> consumer
>>>>
>>>> Subscribing a consumer to the queue directly on the broker works fine
>>>> but I
>>>> haven't managed to find a configuration where a mobile subscriber on the
>>>> dispatcher can receive messages.
>>>>
>>>> Is there a sample configuration somewhere for mobile consumers connecting
>>>> to a dispatcher ? Ideally I would like to be able to add multiple brokers
>>>> with the same queue name to be able to scale.
>>>>
>>>> Thanks,
>>>> Alexandre
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
>>> For additional commands, e-mail: users-help@qpid.apache.org
>>>
>>>
>>
>

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

*******************************

This e-mail contains information for the intended recipient only. It may contain proprietary material or confidential information. If you are not the intended recipient you are not authorised to distribute, copy or use this e-mail or any attachment to it. Murex cannot guarantee that it is virus free and accepts no responsibility for any loss or damage arising from its use. If you have received this e-mail in error please notify immediately the sender and delete the original email received, any attachments and all copies from your system.


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


Re: Dispatch mobile subscribers

Posted by Ted Ross <tr...@redhat.com>.

On 04/22/2016 10:43 AM, Alexandre Trufanow wrote:
> After switching to 0.6-beta2, everything works great!
>
> I did have to patch unit tests to remove ipv6 and sasl/ssl (both are
> disabled in my use case). I can provide the modifications I made if you
> would like to support this use case.
>
> I have noticed a difference which is probably due to the shift from
> fanout=multiple to distribution=balanced. If I have a single producer and 3
> receiving brokers, all messages are sent to a single broker (which does not
> change between tests). If I have concurrent producers, messages are spread
> out but one broker still receives more messages than the rest. Is this
> expected behavior? I would expect messages to be spread out more evenly.
> There are no clients consuming messages in this use case.

Your original example didn't involve the router in producing messages to 
the brokers' exchanges.  Are you using autoLink {dir: out...} for 
routing deliveries to the routers?

I'm working on some updates to the "balanced" forwarder to make it work 
better, but I would still expect that messages from one producer would 
be spread across the brokers (unless you are using linkRoute, in which 
case each producer is bound at attach-time to a specific broker).

-Ted

>
> Thanks for you help
> Alexandre
>
> On Fri, Apr 22, 2016 at 10:33 AM, Alexandre Trufanow <
> alexandre.trufanow.mx@gmail.com> wrote:
>
>> Hi Ted,
>>
>> I'll look into 0.6.0 beta. The configuration looks much more intuitive, I
>> am assuming dir: in/out replace phase: 0, 1. Will future versions be
>> backwards compatible with this configuration?
>>
>> Thanks!
>> Alexandre
>>
>> On Thu, Apr 21, 2016 at 7:22 PM, Ted Ross <tr...@redhat.com> wrote:
>>
>>> Hi Alexandre,
>>>
>>> Could I get you to try the qpid-dispatch 0.6.0 beta?
>>>
>>> (
>>> https://cwiki.apache.org/confluence/display/qpid/What's+New+in+Apache+Qpid+Dispatch+Router+0.6.0
>>> )
>>>
>>> Your use case is greatly improved in this new version.  I just verified
>>> your use case with the following configuration fragment:
>>>
>>> connector {
>>>      addr: <broker-host>
>>>      port: <broker-port>
>>>      role: route-container
>>>      name: BrokerA
>>> }
>>>
>>> address {
>>>      prefix: queue
>>>      waypoint: yes
>>> }
>>>
>>> autoLink {
>>>      addr: queue
>>>      dir: in
>>>      connection: BrokerA
>>> }
>>>
>>> The "connector" causes the router to establish a connection to the broker
>>> with the exchange and queue.  The "address" establishes the namespace
>>> starting with "queue" as being a waypoint address (i.e. on a broker).  The
>>> "autoLink" instructs the router to subscribe to the queue on BrokerA once
>>> the connection is opened.  This subscription will then feed deliveries to
>>> mobile consumers on address "queue".
>>>
>>> You can then scale it out by adding an instance of "connector" for each
>>> additional broker and an instance of "autoLink" for the queue on the broker:
>>>
>>> connector {
>>>      addr: <broker-b-host>
>>>      port: <broker-b-port>
>>>      role: route-container
>>>      name: BrokerB
>>> }
>>>
>>> autoLink {
>>>      addr: queue
>>>      dir: in
>>>      connection: BrokerB
>>> }
>>>
>>> Regards,
>>>
>>> -Ted
>>>
>>>
>>>
>>> On 04/21/2016 12:03 PM, Alexandre Trufanow wrote:
>>>
>>>> Hi all,
>>>>
>>>> I am trying to get the following working on dispatch-0.5:
>>>>
>>>> producer -> brokerA.exchange -> brokerA.queue -> dispatcher -> consumer
>>>>
>>>> Subscribing a consumer to the queue directly on the broker works fine
>>>> but I
>>>> haven't managed to find a configuration where a mobile subscriber on the
>>>> dispatcher can receive messages.
>>>>
>>>> Is there a sample configuration somewhere for mobile consumers connecting
>>>> to a dispatcher ? Ideally I would like to be able to add multiple brokers
>>>> with the same queue name to be able to scale.
>>>>
>>>> Thanks,
>>>> Alexandre
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
>>> For additional commands, e-mail: users-help@qpid.apache.org
>>>
>>>
>>
>

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


Re: Dispatch mobile subscribers

Posted by Alexandre Trufanow <al...@gmail.com>.
After switching to 0.6-beta2, everything works great!

I did have to patch unit tests to remove ipv6 and sasl/ssl (both are
disabled in my use case). I can provide the modifications I made if you
would like to support this use case.

I have noticed a difference which is probably due to the shift from
fanout=multiple to distribution=balanced. If I have a single producer and 3
receiving brokers, all messages are sent to a single broker (which does not
change between tests). If I have concurrent producers, messages are spread
out but one broker still receives more messages than the rest. Is this
expected behavior? I would expect messages to be spread out more evenly.
There are no clients consuming messages in this use case.

Thanks for you help
Alexandre

On Fri, Apr 22, 2016 at 10:33 AM, Alexandre Trufanow <
alexandre.trufanow.mx@gmail.com> wrote:

> Hi Ted,
>
> I'll look into 0.6.0 beta. The configuration looks much more intuitive, I
> am assuming dir: in/out replace phase: 0, 1. Will future versions be
> backwards compatible with this configuration?
>
> Thanks!
> Alexandre
>
> On Thu, Apr 21, 2016 at 7:22 PM, Ted Ross <tr...@redhat.com> wrote:
>
>> Hi Alexandre,
>>
>> Could I get you to try the qpid-dispatch 0.6.0 beta?
>>
>> (
>> https://cwiki.apache.org/confluence/display/qpid/What's+New+in+Apache+Qpid+Dispatch+Router+0.6.0
>> )
>>
>> Your use case is greatly improved in this new version.  I just verified
>> your use case with the following configuration fragment:
>>
>> connector {
>>     addr: <broker-host>
>>     port: <broker-port>
>>     role: route-container
>>     name: BrokerA
>> }
>>
>> address {
>>     prefix: queue
>>     waypoint: yes
>> }
>>
>> autoLink {
>>     addr: queue
>>     dir: in
>>     connection: BrokerA
>> }
>>
>> The "connector" causes the router to establish a connection to the broker
>> with the exchange and queue.  The "address" establishes the namespace
>> starting with "queue" as being a waypoint address (i.e. on a broker).  The
>> "autoLink" instructs the router to subscribe to the queue on BrokerA once
>> the connection is opened.  This subscription will then feed deliveries to
>> mobile consumers on address "queue".
>>
>> You can then scale it out by adding an instance of "connector" for each
>> additional broker and an instance of "autoLink" for the queue on the broker:
>>
>> connector {
>>     addr: <broker-b-host>
>>     port: <broker-b-port>
>>     role: route-container
>>     name: BrokerB
>> }
>>
>> autoLink {
>>     addr: queue
>>     dir: in
>>     connection: BrokerB
>> }
>>
>> Regards,
>>
>> -Ted
>>
>>
>>
>> On 04/21/2016 12:03 PM, Alexandre Trufanow wrote:
>>
>>> Hi all,
>>>
>>> I am trying to get the following working on dispatch-0.5:
>>>
>>> producer -> brokerA.exchange -> brokerA.queue -> dispatcher -> consumer
>>>
>>> Subscribing a consumer to the queue directly on the broker works fine
>>> but I
>>> haven't managed to find a configuration where a mobile subscriber on the
>>> dispatcher can receive messages.
>>>
>>> Is there a sample configuration somewhere for mobile consumers connecting
>>> to a dispatcher ? Ideally I would like to be able to add multiple brokers
>>> with the same queue name to be able to scale.
>>>
>>> Thanks,
>>> Alexandre
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
>> For additional commands, e-mail: users-help@qpid.apache.org
>>
>>
>

Re: Dispatch mobile subscribers

Posted by Alexandre Trufanow <al...@gmail.com>.
Hi Ted,

I'll look into 0.6.0 beta. The configuration looks much more intuitive, I
am assuming dir: in/out replace phase: 0, 1. Will future versions be
backwards compatible with this configuration?

Thanks!
Alexandre

On Thu, Apr 21, 2016 at 7:22 PM, Ted Ross <tr...@redhat.com> wrote:

> Hi Alexandre,
>
> Could I get you to try the qpid-dispatch 0.6.0 beta?
>
> (
> https://cwiki.apache.org/confluence/display/qpid/What's+New+in+Apache+Qpid+Dispatch+Router+0.6.0
> )
>
> Your use case is greatly improved in this new version.  I just verified
> your use case with the following configuration fragment:
>
> connector {
>     addr: <broker-host>
>     port: <broker-port>
>     role: route-container
>     name: BrokerA
> }
>
> address {
>     prefix: queue
>     waypoint: yes
> }
>
> autoLink {
>     addr: queue
>     dir: in
>     connection: BrokerA
> }
>
> The "connector" causes the router to establish a connection to the broker
> with the exchange and queue.  The "address" establishes the namespace
> starting with "queue" as being a waypoint address (i.e. on a broker).  The
> "autoLink" instructs the router to subscribe to the queue on BrokerA once
> the connection is opened.  This subscription will then feed deliveries to
> mobile consumers on address "queue".
>
> You can then scale it out by adding an instance of "connector" for each
> additional broker and an instance of "autoLink" for the queue on the broker:
>
> connector {
>     addr: <broker-b-host>
>     port: <broker-b-port>
>     role: route-container
>     name: BrokerB
> }
>
> autoLink {
>     addr: queue
>     dir: in
>     connection: BrokerB
> }
>
> Regards,
>
> -Ted
>
>
>
> On 04/21/2016 12:03 PM, Alexandre Trufanow wrote:
>
>> Hi all,
>>
>> I am trying to get the following working on dispatch-0.5:
>>
>> producer -> brokerA.exchange -> brokerA.queue -> dispatcher -> consumer
>>
>> Subscribing a consumer to the queue directly on the broker works fine but
>> I
>> haven't managed to find a configuration where a mobile subscriber on the
>> dispatcher can receive messages.
>>
>> Is there a sample configuration somewhere for mobile consumers connecting
>> to a dispatcher ? Ideally I would like to be able to add multiple brokers
>> with the same queue name to be able to scale.
>>
>> Thanks,
>> Alexandre
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
>
>

Re: Dispatch mobile subscribers

Posted by Ted Ross <tr...@redhat.com>.
Hi Alexandre,

Could I get you to try the qpid-dispatch 0.6.0 beta?

(https://cwiki.apache.org/confluence/display/qpid/What's+New+in+Apache+Qpid+Dispatch+Router+0.6.0)

Your use case is greatly improved in this new version.  I just verified 
your use case with the following configuration fragment:

connector {
     addr: <broker-host>
     port: <broker-port>
     role: route-container
     name: BrokerA
}

address {
     prefix: queue
     waypoint: yes
}

autoLink {
     addr: queue
     dir: in
     connection: BrokerA
}

The "connector" causes the router to establish a connection to the 
broker with the exchange and queue.  The "address" establishes the 
namespace starting with "queue" as being a waypoint address (i.e. on a 
broker).  The "autoLink" instructs the router to subscribe to the queue 
on BrokerA once the connection is opened.  This subscription will then 
feed deliveries to mobile consumers on address "queue".

You can then scale it out by adding an instance of "connector" for each 
additional broker and an instance of "autoLink" for the queue on the broker:

connector {
     addr: <broker-b-host>
     port: <broker-b-port>
     role: route-container
     name: BrokerB
}

autoLink {
     addr: queue
     dir: in
     connection: BrokerB
}

Regards,

-Ted


On 04/21/2016 12:03 PM, Alexandre Trufanow wrote:
> Hi all,
>
> I am trying to get the following working on dispatch-0.5:
>
> producer -> brokerA.exchange -> brokerA.queue -> dispatcher -> consumer
>
> Subscribing a consumer to the queue directly on the broker works fine but I
> haven't managed to find a configuration where a mobile subscriber on the
> dispatcher can receive messages.
>
> Is there a sample configuration somewhere for mobile consumers connecting
> to a dispatcher ? Ideally I would like to be able to add multiple brokers
> with the same queue name to be able to scale.
>
> Thanks,
> Alexandre
>

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


Re: Dispatch mobile subscribers

Posted by Alexandre Trufanow <al...@gmail.com>.
To expand on this, messages sometimes get through but not consistently.
Using the attached configuration, I am only able to receive messages from
the dispatcher when it has been up for a very short amount of time. After a
few minutes, subscribing no longer works at all.

The broker has been set up the following way:

qpidd -d -p 27001 --data-dir $data_dir --log-to-file $name.log
--load-module $QPID_ROOT/lib/qpid/daemon/amqp.so --log-enable=info+

qpid-config -b localhost:27001 add exchange topic business
qpid-config -b localhost:27001 add queue results
qpid-config -b localhost:27001 bind business results foo


Messages are being sent directly to the broker on the 'business' exchange.

On Thu, Apr 21, 2016 at 6:03 PM, Alexandre Trufanow <
alexandre.trufanow.mx@gmail.com> wrote:

> Hi all,
>
> I am trying to get the following working on dispatch-0.5:
>
> producer -> brokerA.exchange -> brokerA.queue -> dispatcher -> consumer
>
> Subscribing a consumer to the queue directly on the broker works fine but
> I haven't managed to find a configuration where a mobile subscriber on the
> dispatcher can receive messages.
>
> Is there a sample configuration somewhere for mobile consumers connecting
> to a dispatcher ? Ideally I would like to be able to add multiple brokers
> with the same queue name to be able to scale.
>
> Thanks,
> Alexandre
>
>
>