方案:
1. 一个心跳进程,包含三个线程,send、recv、check。
2. 每台机器两个线程,一个是客户端线程负责发心跳消息,一个是服务端线程负责收心跳消息。N台机器,1号机器的服务端线程,负责接收其余N-1台机器客户端线程的心跳消息。
1号机器的客户端线程,负责向其余N-1台机器的服务端线程发送心跳消息。
3. 设定send的发送周期。
4. 在check中检测节点是否故障,检测原理是当若干个发送周期内没有收到心跳消息,则认为发送节点故障。