On Thu, Jul 23, 2015 at 2:10 AM, Imesh Gunaratne <[email protected]> wrote:
> Hi All, > > We implemented a new Carbon membership scheme for Carbon servers for > automatically discovering the Hazelcast cluster via the Stratos topology. > This is for automatically discovering Carbon instances in a Carbon cluster > when running on Private PaaS. In the previous version of the Private PaaS > we used WKA membership scheme for this and implemented additional logic to > manage the number of WKA members and their recovery process. In the > previous model we needed to restart the entire Carbon cluster if all the > existing WKA members get terminated due to some reason. > > The initial implementation of $subject which was done for Carbon 4.4.0 can > be found here [1]. > > *How it works* > > This new model allows all the members in the cluster to get connected to > all the other members. More importantly the member list of the Hazelcast > cluster configuration get updated dynamically when new members join the > cluster and when existing members leave. > Yes. Treating all the members in the cluster as WKA members is a tried and tested method. This is the way to solve this problem. > > > As shown in the above diagram the Stratos membership scheme fetch the > topology from the message broker and find the list of member IP addresses. > Then those IP addresses are configured in Hazelcast Network Configuration > and let the Clustering Agent to create the Hazelcast instance. This happens > at the server startup. > > Once a new member is created by the PaaS, it executes the same logic and > get connected to all the existing members available in the given > cluster(s). Once this happens the existing members get connected back to > the new member via Hazelcast. > > In the axis2.xml we can specify a list of cluster ids from which the > members should be listed from: > > <clustering > class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" > enable="true"> > ... > <parameter name="membershipScheme">stratos</parameter> > <parameter > name="clusterIds">cluster-1,cluster-2</parameter> > ... > </clustering> > > Here we have allowed to specify multiple cluster ids to be able to use > cartridge grouping functionality in Private PaaS which would allow us to > model worker/manager separation. > > *Work in progress* > > Currently in the Carbon Kernel we do not have an extension point for > plugging in new membership schemes. As a result we had to patch the Carbon > Kernel Core module to do this initial implementation. > >From Hazelcast 3.6 release, they are introducing a new Hazelcast discovery API. This will allow us to plug different membership schemes easily. Imesh, Can you create a Jira in the Carbon product 4.5 version? > > Now we are in the process of introducing an extension point for plugging > in custom membership schemes to the Carbon runtime. Once that is > implemented we could move the above feature to a separate bundle and drop > it to the dropins folder and use it. > > [1] https://github.com/imesh/stratos-membership-scheme > > Thanks > > -- > *Imesh Gunaratne* > Senior Technical Lead > WSO2 Inc: http://wso2.com > T: +94 11 214 5345 M: +94 77 374 2057 > W: http://imesh.gunaratne.org > Lean . Enterprise . Middleware > > -- Sameera Jayasoma, Software Architect, WSO2, Inc. (http://wso2.com) email: [email protected] blog: http://blog.sameera.org twitter: https://twitter.com/sameerajayasoma flickr: http://www.flickr.com/photos/sameera-jayasoma/collections Mobile: 0094776364456 Lean . Enterprise . Middleware
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
