[ 
https://issues.apache.org/jira/browse/ARTEMIS-108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14936760#comment-14936760
 ] 

Howard Gao commented on ARTEMIS-108:
------------------------------------

Just an update of what I'm doing:

https://github.com/gaohoward/activemq-artemis/tree/openwire-work2

Basically I've studied the Network of Broker feature and I think the basic 
concepts are quite similar to artemis. So far I've investigated the static and 
multicast protocols which pretty much like artemis' static connector and 
discovery group. 
So far I didn't plan to change any core cluster models, rather I'm trying to 
pass the topology information to openwire clients so clients can do failover:// 
protocol. Basically what happens is that OpenWireProtocolManager registers a 
topology listener to ClusterManager's default ClusterConnection (if it exists). 
Any topology updates (nodeUp/down) will cause OpenwireProtocolManager to update 
the ConnectionControl command. (used to update clients). 

At test side I've done some work to start an artemis cluster based on the 
openwire's configuration. Openwire (amq5) brokers wraps the cluster 
configuration into a NetworkConnector. For static:// and multicast:// discovery 
the class is DiscoveryNetworkConnector. According to the way it works, one 
DiscoveryNetworkConnector may correspond to multiple ClusterConnection 
configurations. We need to translate relevant configuration parameters into 
those for ClusterConnections.
Those parameters are listed here:
http://activemq.apache.org/networks-of-brokers.html

I'm going through them for the moment but not finished yet. Some of the 
parameters we seems don't have and need to be added. But that probably need to 
change the core.
(for example decreaseNetworkConsumerPriority)

Howard


> Dynamic fail over and load balancing for OpenWire clients.
> ----------------------------------------------------------
>
>                 Key: ARTEMIS-108
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-108
>             Project: ActiveMQ Artemis
>          Issue Type: Sub-task
>            Reporter: Martyn Taylor
>            Assignee: Howard Gao
>            Priority: Critical
>             Fix For: 1.3.0
>
>
> ActiveMQ OpenWire supports a feature that allows the broker to inform clients 
> when broker nodes are added and removed from the cluster.  This information 
> can be used on the client to determine which broker to reconnect to in the 
> event of a failure.  The OpenWire protocol supports this functionality via a 
> ConnectionControl packet.  The ConnectionControl packet contains information 
> about the brokers immediately connected to the current broker (used for 
> failover).
> In addition a ConnectionControl packet can instruct a client to reconnect to 
> a different broker in the cluster (used for load balancing connections).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to