You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by ffrenchm <ff...@gmail.com> on 2009/03/19 16:26:39 UTC

QPID federation limitations.

Hello,

I've some questions about route configuration in QPID :

Is there a way to force a dynamic route reconnection when a remote node is
restarted ? (Currently I need to restart my local node and reconfigure my
route)
Is there a way to configure the internal routing queue durable and not
auto-delete ? (Then if I stop my local node and if there is messages in my
internal routing queue I will not lose my messages)

Thanks
-- 
View this message in context: http://n2.nabble.com/QPID-federation-limitations.-tp2503522p2503522.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: QPID federation limitations.

Posted by ffrenchm <ff...@gmail.com>.
I did a little modification to add routingKey to a queue routes. Thanks this
I can make work my use case (great ! :)) ... Don't know if you're interested
by the modification...
Naturally the best would be to permit to define a durable transmission queue
for the exchange routing (dynamic and static), but I do not know if it is
easy to do...

I notice too there was a misunderstanding about how you route your messages
from broker to broker in QPID. I was believing it was routing on GET (like
ActiveMQ) because I read this on the broker federation documentation : 

"Messages published to the distributed exchange are forwarded to other
brokers only if there are remote consumers to receive the messages. The
dynamic binding protocol ensures that messages are routed only to brokers
with eligible consumers." 

But in fact I don't need to open a JMS consumer on my remote destination to
make the messages forward : the messages are delivered instantly in the
remote broker and it's fine for me ! 

Thank you for your patience...

++


ffrenchm wrote:
> 
> Using queue-routes is an interesting idea but could I create queue-routes
> with direct exchange with a specified key work ? Looking at qpid-route it
> seems not possible...
> 
> ++
> 
> 
> Ted Ross wrote:
>> 
>> Ted Ross wrote:
>>> ffrenchm wrote:
>>>> Hello,
>>>>
>>>> I've some questions about route configuration in QPID :
>>>>
>>>> Is there a way to force a dynamic route reconnection when a remote 
>>>> node is
>>>> restarted ? (Currently I need to restart my local node and 
>>>> reconfigure my
>>>> route)
>>>> Is there a way to configure the internal routing queue durable and not
>>>> auto-delete ? (Then if I stop my local node and if there is messages 
>>>> in my
>>>> internal routing queue I will not lose my messages)
>>>>
>>>> Thanks
>>>>   
>>> When you create the route using qpid-route, you can use the --durable 
>>> switch to make the route durable.
>>>
>>> -Ted
>>>
>> I just read your question more carefully.  Creating a durable route 
>> means that the route will be automatically recreated when a broker 
>> restarts.  It still will not make the federation queue durable.  Rather, 
>> it will create a new private, auto-delete queue each time it restarts.
>> 
>> You can declare a durable queue and use queue-routing (not dynamic) for 
>> federation if you like.
>> 
>> -Ted
>> 
>> 
>> ---------------------------------------------------------------------
>> Apache Qpid - AMQP Messaging Implementation
>> Project:      http://qpid.apache.org
>> Use/Interact: mailto:users-subscribe@qpid.apache.org
>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/QPID-federation-limitations.-tp2503522p2510139.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: QPID federation limitations.

Posted by ffrenchm <ff...@gmail.com>.
Using queue-routes is an interesting idea but could I create queue-routes
with direct exchange with a specified key work ? Looking at qpid-route it
seems not possible...

++


Ted Ross wrote:
> 
> Ted Ross wrote:
>> ffrenchm wrote:
>>> Hello,
>>>
>>> I've some questions about route configuration in QPID :
>>>
>>> Is there a way to force a dynamic route reconnection when a remote 
>>> node is
>>> restarted ? (Currently I need to restart my local node and 
>>> reconfigure my
>>> route)
>>> Is there a way to configure the internal routing queue durable and not
>>> auto-delete ? (Then if I stop my local node and if there is messages 
>>> in my
>>> internal routing queue I will not lose my messages)
>>>
>>> Thanks
>>>   
>> When you create the route using qpid-route, you can use the --durable 
>> switch to make the route durable.
>>
>> -Ted
>>
> I just read your question more carefully.  Creating a durable route 
> means that the route will be automatically recreated when a broker 
> restarts.  It still will not make the federation queue durable.  Rather, 
> it will create a new private, auto-delete queue each time it restarts.
> 
> You can declare a durable queue and use queue-routing (not dynamic) for 
> federation if you like.
> 
> -Ted
> 
> 
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:users-subscribe@qpid.apache.org
> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/QPID-federation-limitations.-tp2503522p2509169.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: QPID federation limitations.

Posted by ffrenchm <ff...@gmail.com>.


Ted Ross wrote:
> 
> I thought I answered it.  Create a durable route and it will be 
> reestablished after a broker restart.
> 

Well I was believing it was the answer on the second one. Well I already do
this but I doesn't work like I expected. I'll try to retest this feature
soon.


Ted Ross wrote:
> 
> I'm not sure I understand your question.  What do you mean by "forward 
> directly on the PUT"?  I don't see how your scenario is any different 
> than having a queue on a single broker with multiple producers.
> 

What I mean is that when you take the MQSeries routing model when you send a
message to a remote queue, this message is directly forwarded from the
transmit queue - this is your private queue in fact - to the final
destination queue even if there is no consumer on this final destination
queue : that's what I call routing on the PUT...

On ActiveMQ - and so on Qpid if I understand well - the routing is on the
GET. The message stay in the transmit queue and will be forwarded until
there is a request on the final destination. For me this model raises some
problems - which are maybe not a problems but that's why I ask :) :

for example I have a network of broker with N node. Imagine that at time T
there is one message delivered at different time on each private queue
corresponding to one {exchange, routing key} and that at this time you do
not have a consumer started on a queue corresponding to this {exchange,
routing key}. Naturally we assume there is no network problem. Now at time
T+1 you start your consumer :

1) How will the FIFO ordering of the global delivery assumed ? I mean, how
can QPid assure the global FIFO ordering - I.E : that message mX delivered
on the private queue of the node X before message mY delivered on private
queue of node Y will be consumed before mY ?

2) for one {exchange, routing key} you can have severals destination queue
as I understood. Imagine you have 2 finals destination queues (Q1, Q2) for
our private queue corresponding to {exchange, routing key}. Our consumer
only consume Q1. Will Q2 received it's messages ? Or will the messages stay
on the private queue until there is a consumer on queue Q2 ?

I've others question about the routing model on QPID, but I prefer to test
this two cases as soon as possible before. Anyway I'll be very interested
about what you think.


Ted Ross wrote:
> 
> Keep in mind that we do not allow multiple paths to exist between any 
> producer/consumer pair.
> 

I'm not sure to understand. Do you mean that we can't have more than one
producer for one consumer ?

Thanks for all


-- 
View this message in context: http://n2.nabble.com/QPID-federation-limitations.-tp2503522p2507911.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: QPID federation limitations.

Posted by Ted Ross <tr...@redhat.com>.
ffrenchm wrote:
> Thanks for your answer Todd. So there is no way to get a durable bridge queue
> with dynamic routing do you don't think it wil be a good idea able to get
> this behavior in future QPID release ? Do I need to raise a JIRA ?
>   
Please do, it's a reasonable request.
> Do you have any comment about my first question ?
>   
I thought I answered it.  Create a durable route and it will be 
reestablished after a broker restart.
> Another question I have now is about the delivery behavior in the remote
> QPID (which in fact seems to be the same as ActiveMQ). Why do we need to
> have a consumer in the remote node to make forward the message? I mean -
> like activemq - I do not understand why the forward is not done directly on
> the PUT of the message. It raised some questions like is the FIFO ordering
> of the final destination queue respected with this kind of behavior  if you
> have several broker which publish on the same remote queue at different
> time?
>   
I'm not sure I understand your question.  What do you mean by "forward 
directly on the PUT"?  I don't see how your scenario is any different 
than having a queue on a single broker with multiple producers.

Keep in mind that we do not allow multiple paths to exist between any 
producer/consumer pair.
>
>
>
> Ted Ross wrote:
>   
>> Ted Ross wrote:
>>     
>>> ffrenchm wrote:
>>>       
>>>> Hello,
>>>>
>>>> I've some questions about route configuration in QPID :
>>>>
>>>> Is there a way to force a dynamic route reconnection when a remote 
>>>> node is
>>>> restarted ? (Currently I need to restart my local node and 
>>>> reconfigure my
>>>> route)
>>>> Is there a way to configure the internal routing queue durable and not
>>>> auto-delete ? (Then if I stop my local node and if there is messages 
>>>> in my
>>>> internal routing queue I will not lose my messages)
>>>>
>>>> Thanks
>>>>   
>>>>         
>>> When you create the route using qpid-route, you can use the --durable 
>>> switch to make the route durable.
>>>
>>> -Ted
>>>
>>>       
>> I just read your question more carefully.  Creating a durable route 
>> means that the route will be automatically recreated when a broker 
>> restarts.  It still will not make the federation queue durable.  Rather, 
>> it will create a new private, auto-delete queue each time it restarts.
>>
>> You can declare a durable queue and use queue-routing (not dynamic) for 
>> federation if you like.
>>
>> -Ted
>>
>>
>> ---------------------------------------------------------------------
>> Apache Qpid - AMQP Messaging Implementation
>> Project:      http://qpid.apache.org
>> Use/Interact: mailto:users-subscribe@qpid.apache.org
>>
>>
>>
>>     
>
>   


Re: QPID federation limitations.

Posted by ffrenchm <ff...@gmail.com>.
Thanks for your answer Todd. So there is no way to get a durable bridge queue
with dynamic routing do you don't think it wil be a good idea able to get
this behavior in future QPID release ? Do I need to raise a JIRA ?

Do you have any comment about my first question ?

Another question I have now is about the delivery behavior in the remote
QPID (which in fact seems to be the same as ActiveMQ). Why do we need to
have a consumer in the remote node to make forward the message? I mean -
like activemq - I do not understand why the forward is not done directly on
the PUT of the message. It raised some questions like is the FIFO ordering
of the final destination queue respected with this kind of behavior  if you
have several broker which publish on the same remote queue at different
time?




Ted Ross wrote:
> 
> Ted Ross wrote:
>> ffrenchm wrote:
>>> Hello,
>>>
>>> I've some questions about route configuration in QPID :
>>>
>>> Is there a way to force a dynamic route reconnection when a remote 
>>> node is
>>> restarted ? (Currently I need to restart my local node and 
>>> reconfigure my
>>> route)
>>> Is there a way to configure the internal routing queue durable and not
>>> auto-delete ? (Then if I stop my local node and if there is messages 
>>> in my
>>> internal routing queue I will not lose my messages)
>>>
>>> Thanks
>>>   
>> When you create the route using qpid-route, you can use the --durable 
>> switch to make the route durable.
>>
>> -Ted
>>
> I just read your question more carefully.  Creating a durable route 
> means that the route will be automatically recreated when a broker 
> restarts.  It still will not make the federation queue durable.  Rather, 
> it will create a new private, auto-delete queue each time it restarts.
> 
> You can declare a durable queue and use queue-routing (not dynamic) for 
> federation if you like.
> 
> -Ted
> 
> 
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:users-subscribe@qpid.apache.org
> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/QPID-federation-limitations.-tp2503522p2503997.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: QPID federation limitations.

Posted by Ted Ross <tr...@redhat.com>.
Ted Ross wrote:
> ffrenchm wrote:
>> Hello,
>>
>> I've some questions about route configuration in QPID :
>>
>> Is there a way to force a dynamic route reconnection when a remote 
>> node is
>> restarted ? (Currently I need to restart my local node and 
>> reconfigure my
>> route)
>> Is there a way to configure the internal routing queue durable and not
>> auto-delete ? (Then if I stop my local node and if there is messages 
>> in my
>> internal routing queue I will not lose my messages)
>>
>> Thanks
>>   
> When you create the route using qpid-route, you can use the --durable 
> switch to make the route durable.
>
> -Ted
>
I just read your question more carefully.  Creating a durable route 
means that the route will be automatically recreated when a broker 
restarts.  It still will not make the federation queue durable.  Rather, 
it will create a new private, auto-delete queue each time it restarts.

You can declare a durable queue and use queue-routing (not dynamic) for 
federation if you like.

-Ted


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: QPID federation limitations.

Posted by Ted Ross <tr...@redhat.com>.
ffrenchm wrote:
> Hello,
>
> I've some questions about route configuration in QPID :
>
> Is there a way to force a dynamic route reconnection when a remote node is
> restarted ? (Currently I need to restart my local node and reconfigure my
> route)
> Is there a way to configure the internal routing queue durable and not
> auto-delete ? (Then if I stop my local node and if there is messages in my
> internal routing queue I will not lose my messages)
>
> Thanks
>   
When you create the route using qpid-route, you can use the --durable 
switch to make the route durable.

-Ted


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org