【译】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

相关文章
相关标签/搜索