You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Gordon Sim <gs...@redhat.com> on 2009/01/21 19:20:47 UTC

[cpp]: federation links and failover to known hosts

At present, if connections between brokers fail they will periodically 
attempt to reconnect on the defined host and port. A broker now also 
sends a list of known-hosts during the connection handshaking.

As part of some work on asynchronous state replication between clusters 
I have committed a patch (r736354) that uses the addresses supplied as 
known-hosts when attempting to re-establish a link. I encountered a few 
issues that I thought were worth mentioning:

(i) The host and port combination is used as a key in the link registry. 
If either of these are changed the link registry has to be updated so 
that the link can be notified of establishment of a connection (which is 
signaled to the registry using the host:port key).

(ii) The host and port are immutable on the management object for a link 
and are used in the indexing of the object. I didn't change this which 
means that the host and port properties don't necessarily correspond to 
those used in the current connection. To make up for that I set the 
error state to indicate that the link has failed over to a specified 
address.

(iii) This behaviour will currently be triggered whenever the broker 
supplies tcp addresses in the known-hosts list. At present it does so 
regardless of whether its part of a cluster. The cluster module allows 
the URL used to be overridden and I've added a similar option to the 
broker options (it also allows an empty list to be sent be specifying 
'none').

(iv) One important limitation at present is that any changes to the 
cluster membership after a federation link has been established to that 
cluster will not yet be picked up. Thus when adding a member, on a new 
host and port combination, to a cluster the federation links would need 
to be recreated.

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


Re: [cpp]: federation links and failover to known hosts

Posted by Gordon Sim <gs...@redhat.com>.
Carl Trieloff wrote:
> Does any additional setup info need to be exposed via qpid-route, or is 
> this hidden from the user?

For this change there is no extra configuration required by qpid-route.

I did check in another change yesterday to allow acknowledged transfer 
over bridges and as part of that added an --ack option to qpid-route.

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


Re: [cpp]: federation links and failover to known hosts

Posted by Carl Trieloff <cc...@redhat.com>.

Does any additional setup info need to be exposed via qpid-route, or is 
this hidden from the user?

Carl.


Gordon Sim wrote:
> At present, if connections between brokers fail they will periodically 
> attempt to reconnect on the defined host and port. A broker now also 
> sends a list of known-hosts during the connection handshaking.
>
> As part of some work on asynchronous state replication between 
> clusters I have committed a patch (r736354) that uses the addresses 
> supplied as known-hosts when attempting to re-establish a link. I 
> encountered a few issues that I thought were worth mentioning:
>
> (i) The host and port combination is used as a key in the link 
> registry. If either of these are changed the link registry has to be 
> updated so that the link can be notified of establishment of a 
> connection (which is signaled to the registry using the host:port key).
>
> (ii) The host and port are immutable on the management object for a 
> link and are used in the indexing of the object. I didn't change this 
> which means that the host and port properties don't necessarily 
> correspond to those used in the current connection. To make up for 
> that I set the error state to indicate that the link has failed over 
> to a specified address.
>
> (iii) This behaviour will currently be triggered whenever the broker 
> supplies tcp addresses in the known-hosts list. At present it does so 
> regardless of whether its part of a cluster. The cluster module allows 
> the URL used to be overridden and I've added a similar option to the 
> broker options (it also allows an empty list to be sent be specifying 
> 'none').
>
> (iv) One important limitation at present is that any changes to the 
> cluster membership after a federation link has been established to 
> that cluster will not yet be picked up. Thus when adding a member, on 
> a new host and port combination, to a cluster the federation links 
> would need to be recreated.
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:dev-subscribe@qpid.apache.org
>


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