解决单点问题的几种思路

keepalived + 双机热备

布署两台机器(一主一备),这两台用keepalive检测心跳。每台机器都设置一个crontab脚本,每5分钟检查一下Dc进程在不在,如果不在,则拉起来。

如果一台机器的Dc进程崩溃了,则crontab脚本会拉起来。如果整台机器都挂了,则IP会切换到另一台机器的ip上。

不能解决出现网络分区情况下的脑裂

Zookeeper

用Zookeeper选举一个leader来对外服务,当leader节点挂掉后,再选举另一个节点。外部通过Zookeeper来实时 获取Dc的真实ip。

这种方法有个缺点:要布署一个zookeeper集群、且需要zookeeper先运行、其它节点后运行。

Basic Paxos

在master节点中内置Basic Paxos协议来实现选举,对外提供接口

posted on 2017-05-26 17:30  bitError  阅读(407)  评论(0编辑  收藏  举报