邮箱:oxwangfeng@qq.com
分类: 服务器与存储
2016-01-28 14:08:09
背景技术
网络技术的发展,对数据的存储和访问提出了更高的要求,分布式数据库也应运而生。它的高扩展性和高可用性为许多需要不间断工作的网站解决了难题。
分布式数据库,顾名思义,由分布在多个计算机节点上的子数据库组成,我们称为数据节点,多个数据节点在逻辑上是相关的,地位是平等的。为了保证整个分布式数据库的正常运行,必须要即时了解每个数据节点的运行状态,是否能正常提供服务,即数据节点是否有效。而网络波动、硬件故障等原因,都可能导致数据节点失效,网络波动会引起数据节点的暂时性失效,而硬件故障则会到时数据节点永久失效,因此需要一种有效的手段来判定当前数据节点是否真的失效。
本方案主要有以下几个步骤:
1) 所有的应用节点选举或者随意选出一个节点作为仲裁节点;
2)当一个应用节点连接不上数据节点时,主动屏蔽掉到此数据节点的连接,并且广播到其他应用节点;
3) 其他节点收到广播后,判断数据节点是否能够连接上,如果连接不上,则通知仲裁节点;
4)仲裁节点收到大部分选举信息后,进行计算,如果超过一半应用节点认为这个数据节点失效,则仲裁节点认为这个数据节点失效;
其流程图如下: