1.3 Etcd的使用場(chǎng)景
和ZK類(lèi)似忧吟,Etcd有很多使用場(chǎng)景养筒,包括:
配置管理
服務(wù)注冊(cè)于發(fā)現(xiàn)
選主
應(yīng)用調(diào)度
分布式隊(duì)列
分布式鎖
1.4 Etcd讀寫(xiě)性能
按照官網(wǎng)給出的數(shù)據(jù), 在2CPU曾撤,1.8G內(nèi)存,SSD磁盤(pán)這樣的配置下晕粪,單節(jié)點(diǎn)的寫(xiě)性能可以達(dá)到16K QPS, 而先寫(xiě)后讀也能達(dá)到12K QPS挤悉。這個(gè)性能還是相當(dāng)可觀的。
1.5 Etcd工作原理
Etcd使用Raft協(xié)議來(lái)維護(hù)集群內(nèi)各個(gè)節(jié)點(diǎn)狀態(tài)的一致性巫湘。簡(jiǎn)單說(shuō)装悲,Etcd集群是一個(gè)分布式系統(tǒng),由多個(gè)節(jié)點(diǎn)相互通信構(gòu)成整體對(duì)外服務(wù)尚氛,每個(gè)節(jié)點(diǎn)都存儲(chǔ)了完整的數(shù)據(jù)诀诊,并且通過(guò)Raft協(xié)議保證每個(gè)節(jié)點(diǎn)維護(hù)的數(shù)據(jù)是一致的。
每個(gè)Etcd節(jié)點(diǎn)都維護(hù)了一個(gè)狀態(tài)機(jī)阅嘶,并且属瓣,任意時(shí)刻至多存在一個(gè)有效的主節(jié)點(diǎn)。主節(jié)點(diǎn)處理所有來(lái)自客戶(hù)端寫(xiě)操作讯柔,通過(guò)Raft協(xié)議保證寫(xiě)操作對(duì)狀態(tài)機(jī)的改動(dòng)會(huì)可靠的同步到其他節(jié)點(diǎn)奠涌。
1.6 Etcd概念詞匯表
Raft:Etcd所采用的保證分布式系統(tǒng)強(qiáng)一致性的算法。
Node:一個(gè)Raft狀態(tài)機(jī)實(shí)例磷杏。
Member: 一個(gè)Etcd實(shí)例溜畅。它管理著一個(gè)Node,并且可以為客戶(hù)端請(qǐng)求提供服務(wù)极祸。
Cluster:由多個(gè)Member構(gòu)成可以協(xié)同工作的Etcd集群慈格。
Peer:對(duì)同一個(gè)Etcd集群中另外一個(gè)Member的稱(chēng)呼。
Client: 向Etcd集群發(fā)送HTTP請(qǐng)求的客戶(hù)端遥金。
WAL:預(yù)寫(xiě)式日志浴捆,Etcd用于持久化存儲(chǔ)的日志格式。
snapshot:Etcd防止WAL文件過(guò)多而設(shè)置的快照稿械,存儲(chǔ)Etcd數(shù)據(jù)狀態(tài)选泻。
Proxy:Etcd的一種模式,為Etcd集群提供反向代理服務(wù)美莫。
Leader:Raft算法中通過(guò)競(jìng)選而產(chǎn)生的處理所有數(shù)據(jù)提交的節(jié)點(diǎn)页眯。
Follower:競(jìng)選失敗的節(jié)點(diǎn)作為Raft中的從屬節(jié)點(diǎn),為算法提供強(qiáng)一致性保證厢呵。
Candidate:當(dāng)Follower超過(guò)一定時(shí)間接收不到Leader的心跳時(shí)轉(zhuǎn)變?yōu)镃andidate開(kāi)始競(jìng)選窝撵。
Term:某個(gè)節(jié)點(diǎn)成為L(zhǎng)eader到下一次競(jìng)選時(shí)間,稱(chēng)為一個(gè)Term襟铭。
Index:數(shù)據(jù)項(xiàng)編號(hào)碌奉。Raft中通過(guò)Term和Index來(lái)定位數(shù)據(jù)短曾。