I am deploying cassandra on two public networks, when nodes are started i can see all the node has joined the ring. Also nodetool describecluster
shows all nodes are reachable.
After sometime i see nodes are not able to connect to each other and nodetool describecluster
shows all nodes in unreachable list.
FYI, i have used public_ip as BROADCAST_ADDRESS AND RPC_ADDRESS. Listen address is the private_ip.
One reason this can happen, is that firewalls are sometimes configured to find and kill idle connections. The Linux kernel has default TCP "keepalive" settings that it can use to refresh long-running connections. The default values for these settings can be seen using
sysctl
:In an effort to combat this problem, DataStax recommends adjusting these values in production deployments:
You can also add each of those values to your system's equivalent of the
/etc/sysctl.conf
file (minus the backslashes) and implement that viasysctl
also: