qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gao, Jie (Kyrie, HPIT-DS-CDC)" <jie....@hp.com>
Subject RE: Questions of qpid-route usage
Date Mon, 24 Feb 2014 10:24:11 GMT
Hi Pavel Moravec,

Thanks for explaining to me. I am trying to understand you. So the answers for my questions
are:

> If we want to add a route between 2 brokers, we can use qpid-route 
> route add ip:port ip:port exchange_type routingkey. Which means:
> 
> A-->B
> 
> A is a fake client and B will be the server. B will store all the 
> route information and also will be waiting for A's data. Inside qpid 
> it uses TCP protocol, so I guess B will be the server in the lower level(am I right?).

Yes, B is the server and A is the client.

> In this way, we can add a route without broker A. Which means, even if 
> we didn't start A, the route would still be added successfully. The problem is:
> Can we always do this thing? Ummm...if we let A missing for a very 
> long time (at this time B and the route will always exist), then we start A again.
> Does it still works? 

The answer of this question is NO. After several reconnection tries between 'A' and 'B' are
over, 'B' will never try to link to 'A'.

>Also, if we let the route existed in B, will B 
> being busy(waiting for A's data) all the time?

Since 'B' will never try to link to 'A', 'B' will not be busy all the time. But there is another
question: why we still can see the link information by running "qpid-route route list xxx"?
If the link between 'A' and 'B' is dead, I think it's better to delete the bad route automatically.
And next time when 'A' starts to run again, we cannot reuse this route, instead we have to
delete the route by using "qpid-route route del xxx" first and then using "qpid-route route
add xxx" . 


> Another question is when we use -s option in qpid-route. I saw the 
> help document it said: " Configure the route in the source broker 
> (create a push route)." So does it mean A will be the server and B 
> will be the fake client here?

The answer for this question is NO(according to your email). 'A' will still be the client
and 'B' will be the server. The only difference(after a tcp link established) between '-s'
and NOT '-s' is route information will be saved in 'A' instead of 'B'.

Am I right?

Thanks,
Kyrie 


-----Original Message-----
From: Pavel Moravec [mailto:pmoravec@redhat.com] 
Sent: 2014年2月24日 16:57
To: users@qpid.apache.org
Subject: Re: Questions of qpid-route usage

Hi Kyrie,
not sure if I understand your thoughts properly, but in normal A-->B federation (without
-s option), B broker behaves as a fake client and subscribes to A. When -s is used, A initiates
the connection to B and requests it to connect to itself. The main reason for this push-like
option is to bypass potential firewall blocking B->A connection establishment.

About federation link reconnection (assuming A-->B pull route where B connects to A): if
A is down, B periodically retries to connect to A, usually according to TCP retry scheme with
doubled delays between two subsequent retries. These are managed by operating system. Once
OS gives up, I *suppose* qpid broker invokes another request to the OS (so another full TCP
retry scheme is followed), and the broker does so forever.

Hope that helps.

Kind regards,
Pavel Moravec


----- Original Message -----
> From: "Jie Gao (Kyrie, HPIT-DS-CDC)" <jie.gao@hp.com>
> To: users@qpid.apache.org
> Sent: Monday, February 24, 2014 9:16:10 AM
> Subject: Questions of qpid-route usage
> 
> Hi all,
> 
> I am really confused about  this tool.  Hope some kind soul can help 
> to explain the mechanism to me.
> 
> If we want to add a route between 2 brokers, we can use qpid-route 
> route add ip:port ip:port exchange_type routingkey. Which means:
> 
> A-->B
> 
> A is a fake client and B will be the server. B will store all the 
> route information and also will be waiting for A's data. Inside qpid 
> it uses TCP protocol, so I guess B will be the server in the lower level(am I right?).
> In this way, we can add a route without broker A. Which means, even if 
> we didn't start A, the route would still be added successfully. The problem is:
> Can we always do this thing? Ummm...if we let A missing for a very 
> long time (at this time B and the route will always exist), then we start A again.
> Does it still works? Also, if we let the route existed in B, will B 
> being busy(waiting for A's data) all the time?
> 
> Another question is when we use -s option in qpid-route. I saw the 
> help document it said: " Configure the route in the source broker 
> (create a push route)." So does it mean A will be the server and B 
> will be the fake client here?
> 
> -s [ --src-local ]	 Configure the route in the source broker (create a push
> route).
> 
> Thanks,
> Kyrie
> 
> ---------------------------------------------------------------------
> 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

Mime
View raw message