【译】gRPC名称解析
原文地址:https://github.com/grpc/grpc/blob/master/doc/naming.md
gRPC名称解析
概述
gRPC提供DNS作为默认的名称系统。大量备选的名称系统被用于各种各样的部署。我们提供一个足够普遍的API来支持一系列的名称系统以及对应的名称语法。多种语言的gRPC客户端库会提供插件机制来使不同名称系统的解析器能够插入。
设计细节
名称语法
gRPC通道构造使用的一个完全合格的、自包含的名称使用以下语法:
scheme://authority/endpoint_name
这里,scheme指明要使用的名称系统。目前为止,我们支持如下方案:
- 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允许解析器持续监控一个端点并返回需要的更新后的解决方案

浙公网安备 33010602011771号