Consensus
- Node.js kursu
- Uzman
- Ders 32/47
- 5 dk
Raft ve Paxos consensus algoritmalarını öğrenirsin.
Consensus nedir?
Consensus (mutabakat), dağıtık düğümlerin tek bir değerde anlaşması sürecidir. Raft ve Paxos bunu sağlayan iki yaygın algoritmadır. Raft, anlaşılırlığı öne çıkarır; Paxos ise matematiksel özlülüğü.
Bir düğüm Raft'ta üç rolden birinde olur: follower (pasif), candidate (seçime giren) ve leader (yazmaları yöneten). Bir consensusRole(term) fonksiyonu bu rolleri modeller: term === 0 ise 'follower', term === 1 ise 'candidate', diğerleri için 'leader' döndürür. Bu, Raft'ın dönem (term) mantığını basit bir eşlemeyle gösterir; gerçek Raft'ta seçimler oy çokluğuyla yapılır ama roller aynı kalır.
Dönem (term) mantığı
Raft'ta term (dönem), mantıksal bir saattir. Her seçim yeni bir dönem başlatır. Bir düğümün rolü, içinde bulunduğu döneme bağlıdır. Bu, sistemin monotonik olarak ilerlemesini sağlar ve eski liderlerin geri gelmesini engeller.
Örnek: consensusRole(0) 'follower' döner; yeni başlayan düğüm pasiftir. consensusRole(1) 'candidate' döner; dönem 1'de seçime girer. consensusRole(2) 'leader' döner; çoğunluk oyu kazanıp lider olmuştur. Bu model, Raft'ın dönem-rol ilişkisini tek bir fonksiyonda gösterir. Paxos'ta da benzer bir mantık vardır (proposal number); her iki algoritma da çoğunluk ve monotonik dönem üzerine kuruludur.
Uygulama Consensus rol fonksiyonu yaz
function consensusRole(term) yaz. if (term === 0) return 'follower';, if (term === 1) return 'candidate'; ve return 'leader'; ile döndür. console.log(consensusRole(0)) ve console.log(consensusRole(2)) yazdır.
Başlangıç kodu
// consensusRole fonksiyonu yaz
// term 0 ise 'follower', 1 ise 'candidate', diğerleri için 'leader' döndürsün
// 0 ve 2 çağrılarını yazdır
// buraya yazÖrnek çözüm
function consensusRole(term) {
if (term === 0) return 'follower';
if (term === 1) return 'candidate';
return 'leader';
}
console.log(consensusRole(0));
console.log(consensusRole(2));Beklenen çıktı
follower leader
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Leader dalını tamamla
if (term === 0) return 'follower';
if (term === 1) return 'candidate';
return '____';
if (term === 0) return 'follower';
if (term === 1) return 'candidate';
return 'leader';
Açıklama: Diğer dönemler için 'leader' döner.
2 Kavramı rolüne eşle
| Kavram | Anlamı |
|---|---|
Raft |
Anlaşılır algoritma |
Paxos |
Matematiksel algoritma |
follower |
Pasif düğüm |
leader |
Yazmaları yönetir |
3 Raft'ta bir düğüm seçim kazanınca ne olur?
consensusRole(2)- Follower olur
- Candidate olur
- Leader olur Doğru cevap
- Client olur
Açıklama: Seçim kazananı leader olur.