Lesson 68 — Consensus & Raft
Ba module tương tác cho 3 ý cốt lõi của bài: (1) Leader election — 5 node trên vòng tròn, xem timeout → candidate → vote → leader, có nút "giết leader" để xem re-election; (2) Log replication — leader append entry, replicate sang follower, commit khi đạt majority; (3) Split-brain — chia cluster thành 2 phe, thấy phe thiểu số không bầu được leader.
1. Leader election (5 node)
Bấm Bắt đầu: mỗi node bốc một election timeout ngẫu nhiên. Node timeout trước lên Candidate, tăng term, xin phiếu. Đạt majority (3/5) → Leader, gửi heartbeat dập các timeout khác. Bấm Giết leader để xem cluster tự bầu lại (re-election, term tăng).
2. Log replication (commit theo majority)
Leader (node L) append một command → replicate tới 4 follower. Khi majority (3/5) đã lưu entry → leader commit (ô chuyển xanh) và apply state machine. Follower chậm bắt kịp sau. Thử tắt vài follower (bấm vào tên) rồi append — chỉ cần 3/5 vẫn commit được.
3. Split-brain (partition phòng chống)
Chia cluster N=5 thành 2 phe. Phe nào đạt quorum 3 mới bầu được leader; phe thiểu số treo (đúng theo CP). Kéo thanh trượt để đổi tỷ lệ chia, rồi bấm Mô phỏng partition.