解决单点问题的几种思路
keepalived + 双机热备
布署两台机器(一主一备),这两台用keepalive检测心跳。每台机器都设置一个crontab脚本,每5分钟检查一下Dc进程在不在,如果不在,则拉起来。
如果一台机器的Dc进程崩溃了,则crontab脚本会拉起来。如果整台机器都挂了,则IP会切换到另一台机器的ip上。
不能解决出现网络分区情况下的脑裂
Zookeeper
用Zookeeper选举一个leader来对外服务,当leader节点挂掉后,再选举另一个节点。外部通过Zookeeper来实时 获取Dc的真实ip。
这种方法有个缺点:要布署一个zookeeper集群、且需要zookeeper先运行、其它节点后运行。
Basic Paxos
在master节点中内置Basic Paxos协议来实现选举,对外提供接口
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步