假设我有这样的 SQL 模式-
create table master_lock(job_type int primary key, ip varchar);
现在每个节点都尝试插入这样的值-
insert into master_lock values(1,192.168.1.1);
insert into master_lock values(1,192.168.1.2)
无论哪个节点能够成功插入,现在都可以被认为是主节点。我们可以在 sql 表中添加一个新的列时间戳,这样陈旧的锁就可以被移除。
通过这个方案,我可以很容易地选出一个主节点。为什么我需要 Paxos/Raft 等?