【ラフトアルゴリズム】
Raftアルゴリズム とは?
💡 分散サーバーが「多数決」で正しい答えを決める仕組み
📌 このページのポイント
Raftアルゴリズムって何のためにあるの?
どうやって「みんな同じ」を保つの?
Raftではクラスター内の1台をリーダーに選び、データの書き込みはすべてリーダー経由で行うよ。リーダーは変更内容をログに記録して他のノード(フォロワー)に送り、過半数が「受け取った」と返答したら正式にコミットする仕組みだね。
リーダーが壊れたらどうなるの?
フォロワーはリーダーからの定期的なハートビートを監視していて、一定時間音沙汰がなくなると選挙を開始するよ。「私をリーダーにして!」と投票を呼びかけて、過半数の票を集めたノードが新リーダーになるんだ。これがリーダー選出(Leader Election)だね。
Paxosっていうのもあるって聞いたけど、何が違うの?
etcdって何に使われているの?
etcdはKubernetesのクラスター設定情報を保存するキーバリューストアだよ。Kubernetesが「どのPodをどのノードで動かすか」などの状態をetcdに保存していて、Raftのおかげで複数のetcdノードが常に同じ設定情報を持ち続けられるんだ。つまりRaftはKubernetesの信頼性を支える土台の一つになっているね。
📖 おまけ:英語の意味
「Raft Consensus Algorithm」 = Raftコンセンサスアルゴリズム
💬 「Paxosより理解しやすいもの(Understandable Paxos)」が設計目標で、「いかだ(raft)」のように複数のノードがまとまって動くイメージから名付けられたとも言われるよ