本篇內(nèi)容介紹了“Docker高可用配置中心Etcd使用場(chǎng)景有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),加格達(dá)奇企業(yè)網(wǎng)站建設(shè),加格達(dá)奇品牌網(wǎng)站建設(shè),網(wǎng)站定制,加格達(dá)奇網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,加格達(dá)奇網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一:簡(jiǎn)介
Etcd是一個(gè)開(kāi)源的分布式的鍵值存儲(chǔ)庫(kù),用于配置共享和服務(wù)發(fā)現(xiàn)。通常以集群的形式進(jìn)行部署,各工作節(jié)點(diǎn)會(huì)選出一個(gè)leader節(jié)點(diǎn)主導(dǎo)工作。通常用于存儲(chǔ)數(shù)據(jù)庫(kù)的連接配置,緩存配置,通用配置信息等。
Etcd的特點(diǎn)有:
1. 簡(jiǎn)單:基于HTTP+JSON的API,用curl命令就可以輕松使用
2. 安全: 可選SSL客戶認(rèn)證機(jī)制
3. 快速:每個(gè)實(shí)例每秒支持一千次寫(xiě)操作
4. 可信:使用Raft算法充分實(shí)現(xiàn)了分布式
Etcd主要解決的是分布式系統(tǒng)中數(shù)據(jù)一致性的問(wèn)題,而分布式系統(tǒng)中的數(shù)據(jù)分為控制數(shù)據(jù)和應(yīng)用數(shù)據(jù)。Etcd處理的數(shù)據(jù)默認(rèn)為控制數(shù)據(jù),對(duì)于應(yīng)用數(shù)據(jù),它只推薦處理數(shù)據(jù)量很小但訪問(wèn)頻繁的情況。
二:Etcd使用場(chǎng)景
1. 服務(wù)發(fā)現(xiàn)
在同一個(gè)分布式集群中的進(jìn)程或服務(wù),互相感知并建立連接,這就是服務(wù)發(fā)現(xiàn)。從本質(zhì)上說(shuō)服務(wù)發(fā)現(xiàn)就是要了解集群中是否有進(jìn)程在監(jiān)聽(tīng)UDP或TCP端口,并通過(guò)對(duì)應(yīng)的字符串信息進(jìn)行查找和連接。 解決服務(wù)發(fā)現(xiàn)的問(wèn)題,需要以下幾個(gè)方面:
a.一個(gè)強(qiáng)一致性,高可用的服務(wù)存儲(chǔ)目錄
b.一種注冊(cè)服務(wù)和監(jiān)控服務(wù)健康狀態(tài)的機(jī)制
c.一種查找和連接服務(wù)的機(jī)制
1.消息發(fā)布與訂閱
在分布式系統(tǒng)中,最適合的組件間通信方式是消息發(fā)布和訂閱機(jī)制。具體而言,即構(gòu)建一個(gè)配置共享中心,數(shù)據(jù)提供者在這個(gè)配置中心發(fā)布消息,而消息使用者則訂閱他們相關(guān)的主題,一旦相關(guān)主題有消息發(fā)布,就會(huì)實(shí)時(shí)通知訂閱者。通過(guò)這種方式可以實(shí)現(xiàn)分布式系統(tǒng)配置的集中式管理和實(shí)時(shí)動(dòng)態(tài)更新。
2.負(fù)載均衡
3.分布式通知與協(xié)調(diào)
使用etcd中的Watcher機(jī)制,通過(guò)注冊(cè)與異步通知機(jī)制,實(shí)現(xiàn)分布式環(huán)境下不同系統(tǒng)之間的通知與協(xié)調(diào),從而對(duì)數(shù)據(jù)變更進(jìn)行實(shí)時(shí)處理。
a. 通過(guò)etcd進(jìn)行低耦合的心跳檢測(cè)
檢測(cè)系統(tǒng)和被檢測(cè)系統(tǒng)通過(guò)etcd上某個(gè)目錄關(guān)聯(lián)而非直接關(guān)聯(lián)起來(lái),這樣可以大大減少系統(tǒng)的耦合性。
b.通過(guò)etcd完成系統(tǒng)調(diào)度
管理人員在控制臺(tái)做一些操作,實(shí)際上只需要修改etcd上某些目錄節(jié)點(diǎn)的狀態(tài),etcd就會(huì)自動(dòng)把這些變化通知給注冊(cè)了Watcher的推送系統(tǒng)客戶端,推送系統(tǒng)再做出相應(yīng)的推送任務(wù)。
c.通過(guò)etcd完成工作匯報(bào)
大部分類(lèi)似的任務(wù)分發(fā)系統(tǒng)會(huì)在子任務(wù)七朵花,到etcd來(lái)注冊(cè)一個(gè)臨時(shí)工作目錄,并且定時(shí)將自己的進(jìn)度進(jìn)行匯報(bào)(即將進(jìn)度寫(xiě)入到這個(gè)臨時(shí)目錄),這樣任務(wù)管理者就能夠?qū)崟r(shí)知道任務(wù)進(jìn)度。
4.分布式鎖與競(jìng)選
a.保持獨(dú)占鎖
b.控制時(shí)序鎖
使用分布式鎖可以完成Leader競(jìng)選,對(duì)于一些長(zhǎng)時(shí)間的CPU計(jì)算或者使用I/O操作,只需要競(jìng)選出的Leader計(jì)算或處理一次,再把結(jié)果復(fù)制給其他Follower即可,從而避免重復(fù)勞動(dòng),節(jié)省計(jì)算資源。
5.分布式隊(duì)列
6.集群監(jiān)控
三:Etcd架構(gòu)
Etcd中涉及的術(shù)語(yǔ)有:
1. Raft:etcd所采用的保證分布式系統(tǒng)強(qiáng)一致性的算法
2. Node:一個(gè)Raft狀態(tài)機(jī)實(shí)例
3. Member:一個(gè)etcd實(shí)例,管理著一個(gè)Node,可以為客戶端請(qǐng)求提供服務(wù)
4. Cluster:由多個(gè)Member構(gòu)成的可以協(xié)同工作的etcd集群
5. Peer:對(duì)同一個(gè)etcd集群中另外一個(gè)Member的稱(chēng)呼
6. Client: 向etcd集群發(fā)送HTTP請(qǐng)求的客戶端
7. WAL:預(yù)寫(xiě)式日志,是etcd用于持久化存儲(chǔ)的日志格式
8. Snapshot : etcd防止WAL文件過(guò)多而設(shè)置的快照,存儲(chǔ)etcd數(shù)據(jù)狀態(tài)
9. Proxy:etcd的一種模式,為etcd集群提供反向代理服務(wù)
10.Leader: Raft算法中通過(guò)競(jìng)選而產(chǎn)生的處理所有數(shù)據(jù)提交的節(jié)點(diǎn)
11.Follower:競(jìng)選失敗的節(jié)點(diǎn)作為Raft中的從屬節(jié)點(diǎn),為算法提供強(qiáng)一致性保證
12.Candidate:Follower超過(guò)一定時(shí)間接收不到Leader的心跳時(shí),轉(zhuǎn)變?yōu)镃andidate開(kāi)始Leader競(jìng)選
13.Term:某個(gè)節(jié)點(diǎn)成為L(zhǎng)eader到下一次競(jìng)選開(kāi)始的時(shí)間周期,成為一個(gè)Term
14. Index:數(shù)據(jù)項(xiàng)編號(hào),Raft中通過(guò)Term和Index來(lái)定位數(shù)據(jù)。
“Docker高可用配置中心Etcd使用場(chǎng)景有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!