This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Clustering Cassandra with One Host
Cassandra cluster design does not allow you to run two nodes in a single host (machine). However, there are alternative methods to simulate two hosts in a single machine by adding virtual ethernet devices to the host on which we plan to run the Cassandra cluster.
This setup includes two virtual ethernet devices on the default ethernet device (e.g., eth0). Since we run two Carbon servers in one machine, some ports may try to bind with the default device and this results in port conflicts. Therefore we are going to offset one WSO2 SS instance by 10.
Users can configure the <PRODUCT_HOME>/repository/conf/carbon.xml
 file or the -Doffset
 option to offset a Carbon server. When offsetting takes place, all the nodes are shifted by the offset. It is necessary to set the Cassandra storage port (cluster port) into a common value (7000). Cassandra related port’s base values can be set via system variables as explained in this tutorial.
Create two IP aliases:
ifconfig eth0:1 192.168.0.2 ifconfig eth0:2 192.168.0.3
- Configure cassandra.yaml in node 0 and node 1.
In node 0:
- seeds: "192.168.0.2" listen_address: 192.168.0.2 rpc_address: 192.168.0.2
In node 1:
- seeds: "192.168.0.2" listen_address: 192.168.0.3 rpc_address: 192.168.0.3
Update theÂ
<PRODUCT_HOME>/repository/conf/etc/hector-config.xml
 in node 0.<HectorConfiguration> <Cluster> <Name>ClusterOne</Name> <Nodes>192.168.0.2:9160</Nodes> <AutoDiscovery disable="false" delay="1000"/> </Cluster> </HectorConfiguration>
Update theÂ
<PRODUCT_HOME>/repository/conf/etc/hector-config.xml
 in node 1.<HectorConfiguration> <Cluster> <Name>ClusterOne</Name> <Nodes>192.168.0.3:9160</Nodes> <AutoDiscovery disable="false" delay="1000"/> </Cluster> </HectorConfiguration>
- Start the cluster.
Node 0 configurations:Â Use theÂ
--start
 command to start node 0.$PRODUCT_HOME/bin/wso2server.sh --start
- Node 1 configurations:
Update the
<PRODUCT_HOME>/bin/wso2server.sh
 file as follows:-Dcassandra.rpc.port=9150 \ -Dcassandra.storage.port=6990 \
Use theÂ
--start
 command to start node 1.$PRODUCT_HOME/bin/wso2server.sh --start
You can verify the status of the cluster using aÂ
notetool
 command../nodetool -u admin -pw admin -p 9999 ring -h 192.168.0.2 ./nodetool -u admin -pw admin -p 10009 ring -h 192.168.0.3
Also you can check the listening port using aÂ
netstat
 command.netstat -anl |grep 7000 tcp6 0 0 192.168.0.3:7000 :::* LISTEN tcp6 0 0 192.168.0.2:7000 :::* LISTEN
netstat -anl |grep 9160 tcp6 0 0 192.168.0.3:9160 :::* LISTEN tcp6 0 0 192.168.0.2:9160 :::* LISTEN
You can now connect to the cluster using theÂ
cassandra-cli
 tool../cassandra-cli -u admin -pw admin -h 192.168.0.2 ./cassandra-cli -u admin -pw admin -h 192.168.0.3