【譯】gRPC名稱解析

原文地址:https://github.com/grpc/grpc/blob/master/doc/naming.mdhtml

gRPC名稱解析


概述


gRPC提供DNS做爲默認的名稱系統。大量備選的名稱系統被用於各類各樣的部署。咱們提供一個足夠廣泛的API來支持一系列的名稱系統以及對應的名稱語法。多種語言的gRPC客戶端庫會提供插件機制來使不一樣名稱系統的解析器可以插入。git

設計細節


名稱語法

gRPC通道構造使用的一個徹底合格的、自包含的名稱使用如下語法:github

scheme://authority/endpoint_name

這裏,scheme指明要使用的名稱系統。目前爲止,咱們支持以下方案:bash

  • dns
  • ipv4(IPv4地址)
  • ipv6(IPv6地址)
  • unix(指向unix domain socket--只支持unix系統)

將來,像etcd這樣的額外的方案可能會被添加。
authority指明一些方案相關的引導信息,例如,對於DNS來講,authority會包含一個DNS服務要使用的IP[:port]信息。一般,一個DNS名稱會被用作authority,由於解析DNS名稱的能力已經被內置於全部的gRPC客戶端庫裏。
最後,endpoint_name指明一個要被給定名稱系統根據scheme和authority查找的具體的名稱。endpoint名的語法取決於被使用的scheme。負載均衡

解析器插件

gPRC客戶端庫會使用指定的方案去獲取正確的解析器插件並傳遞它徹底限定名字符串。
解析器應該可以與authority交互而且獲取一個返回給gPRC客戶端庫的解決方案。返回內容包括:
一個解析過的地址列表,每條包含三個屬性
地址自己,包括IP地址和端口
一個boolean值指定該地址是不是一個後臺地址(例如,地址用於和服務端直接交互)或均衡器地址(外部負載均衡器正在使用的狀況)
均衡器的名稱,若是地址是一個均衡器地址,將會被用來完成對等認證
一個服務配置
插件API容許解析器持續監控一個端點並返回須要的更新後的解決方案dom

相關文章
相關標籤/搜索