The PPaaS membership scheme is a Carbon membership scheme. It is implemented to discover the Hazelcast cluster of a Carbon server via the topology.
How it works
Once a Carbon server starts it waits for the topology to initialize via the message broker. Next, it queries and gets the the member IP addresses of the given cluster, in the topology. Thereafter the Hazelcast network configuration is initialized for the queried IP addresses. As a result the above Hazelcast instance connects all the members in the cluster. Additionally, when a new member is added to the cluster all the other members are conceded to the new member.
Installation
Follow the steps given below to install the PPaaS Membership Scheme:
Apply the
kernel patch0012
Carbon patch. The patch includes a modification in the Carbon Core component, allowing it to add third party membership schemes.For more information, see WSO2 patch application process.
Copy the following
JAR
files to the /dropins
directory of the Carbon server:activemq_client_5.10.0_1.0.0.jar
geronimo_j2ee_management_1.1_spec_1.0.1_1.0.0.jar
hawtbuf_1.9_1.0.0.jar
org.apache.commons.lang3_3.1.0.jar
org.apache.stratos.common-4.1.0.jar
org.apache.stratos.messaging-4.1.0.jar
private-paas-membership-scheme-4.1.0.jar
Update the
<PPAAS_HOME>/repository/conf/axis2.xml
file with the following configurations:The cluster ID parameter needs to contain the cluster ID of the relevant carbon server cluster:
<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="true"> <parameter name="membershipScheme">private-paas</parameter> <parameter name="membershipSchemeClassName">org.wso2.carbon.ppaas.PrivatePaaSBasedMembershipScheme</parameter> <parameter name="clusterIds">cluster-1,cluster-2</parameter> <parameter name="localMemberPort">4000</parameter> </clustering>
Update the JNDI configuration of the product to include the message broker configuration for the PPaaS Membership Scheme to connect to. Point the java.naming.provider to the AMQP port of the message broker.
jndi.propertiesconnectionfactoryName=TopicConnectionFactory java.naming.provider.url=tcp://localhost:61616 java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory