Etcd集羣與gRPC

一. etcd

1.下載安裝docker(略)docker

2.啓動etcd:緩存

      docker run -p 2379:2379 -p 2380 2380 -v /Users/xuanpro/Desktop/certs:/etc/ssl/certs quay.io/coreos/etcd:v3.0.4服務器

docker掛載本地端口2379和2380.負載均衡

docker掛載/etc/ssl/certs到本地/Users/xuanpro/Desktop/certs運維

elcolio/etcd  是docker的鏡像, 也能夠經過docker search etcd 查找鏡像,再去docker pull xxxx  拉鏡像下來
進程


二.負載均衡方式

(1)集中式LB(Proxy Model)
LB上有全部服務的地址映射表,一般由運維配置註冊,當服務消費方調用某個目標服務時,它向LB發起請求,由LB以某種策略作負載均衡後將請求轉發到目標服務.例如Nginx
(2)進程內LB(Balancing-aware Client)
首先將服務地址註冊到服務註冊表,同時按期報心跳到服務註冊表以代表服務的存活狀態,至關於健康檢查. 服務消費方要訪問某個服務時,它經過內置的LB組件向服務註冊表查詢,同時緩存並按期刷新目標服務地址列表,而後以某種負載均衡策略選擇一個目標服務地址,最後向目標服務發起請求.例如ETCD.
(3)獨立 LB 進程(External Load Balancing Service)
主機上的一個或者多個服務要訪問目標服務時,他們都經過同一主機上的獨立LB進程作服務發現和負載均衡。

三.gRPC服務發現

GRPC實現原理基於進程內LB方案:
(1)gRPC服務端啓動後,向etcd註冊一個服務,且有租約,若沒續租將自動被刪除.
(2)gRPC客戶端服務啓動後,向etcd發出名稱解析請求,名稱將解析爲一個或多個IP地址,每一個IP地址標示它是服務器地址仍是負載均衡器地址,以及標示要使用那個客戶端負載均衡策略或服務配置。
(3)客戶端實例化負載均衡策略,若是解析返回的地址是負載均衡器地址,則客戶端將使用grpclb策略,不然客戶端使用服務配置請求的負載均衡策略。
(4)負載均衡策略爲每一個服務器地址建立一個子通道(channel)。
(5)當有rpc請求時,負載均衡策略決定那個子通道即grpc服務器將接收請求,當可用服務器爲空時客戶端的請求將被阻塞。
相關文章
相關標籤/搜索