SkyDNS服務(wù)發(fā)現(xiàn)系統(tǒng)
SkyDNS 是一個(gè)相對(duì)新的項(xiàng)目它采用Go語言編寫,使用了RAFT用于一致性,并提供了HTTP和DNS兩種客戶端API.它與Etcd和Spotify的DNS模型有點(diǎn)類似,事實(shí)上它采用了和Etcd,go-raft同樣的RAFT實(shí)現(xiàn)。
SkyDNS服務(wù)器聚簇在一起,使用RAFT協(xié)議,并選擇出一個(gè)主服務(wù)。SkyDNS服務(wù)器暴露不同的結(jié)點(diǎn)用于服務(wù)注冊(cè)和發(fā)現(xiàn)。
為了注冊(cè)服務(wù),服務(wù)會(huì)使用基于HTTP的API創(chuàng)建帶有TTL的入口。服務(wù)必須周期性地通過心跳報(bào)告它們的狀態(tài)。SkyDNS也使用了SRV記錄,但它對(duì)記錄做了擴(kuò)展用于支持服務(wù)版本、環(huán)境和地區(qū)。
為了發(fā)現(xiàn),客戶端使用DNS并檢索它們需要連接的服務(wù)的SRV記錄。客戶端需要實(shí)現(xiàn)負(fù)載均衡或者失效備援,并且周期性的緩存和刷新服務(wù)位置數(shù)據(jù)。
與Spotify使用DNS不同的是,SkyDNS支持服務(wù)的動(dòng)態(tài)注冊(cè),并且能夠在不依賴像Zookeeper或者Etcd的情況下動(dòng)態(tài)注冊(cè)。
如果你使用了docker,skydock,你應(yīng)當(dāng)去檢查一下你的容器與 SkyDNS 自動(dòng)的集成。
評(píng)論
圖片
表情
