## 通用发现服务接口
- [DiscoveryRequest](#discoveryrequest)
- [DiscoveryResponse](#discoveryresponse)
### DiscoveryRequest
[DiscoveryRequest proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/discovery.proto#L24)
发现请求:是指在通过某些API,为Envoy节点请求一组相同类型的带版本标签的资源。
```
{
"version_info": "...",
"node": "{...}",
"resource_names": [],
"type_url": "...",
"response_nonce": "..."
}
```
- **version_info**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar)) 请求消息所携带的版本信息,将是最近成功处理的响应中收到的版本信息,第一个请求中`version_info`为空。在收到响应之前不会发送新的请求,直到Envoy实例准备好ACK/NACK新配置为止。ACK/NACK分别通过返回应用的新API配置版本或先前的API配置版本来进行。每个`type_url`(见下文)都有一个独立的版本信息。
- **node**<br />
([Node](Commontypes.md)) 发出请求的节点信息
- **resource_names**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar)) 要订阅的资源列表,群集名称列表或路由配置名称。如果为空,则返回该API的所有资源。LDS/CDS期望`resource_names`为空,因为这是Envoy实例的全局资源。LDS和CDS响应将意味着需要通过EDS/RDS获取的一些资源,这些资源将会在`resource_names`中列出。
- **type_url**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar)) 正在请求的资源的类型,例如“type.googleapis.com/envoy.api.v2.ClusterLoadAssignment”。 在单独的xDS API(例如CDS,LDS等)的请求中,资源类型不可见,但对于ADS是必需的。
- **response_nonce**<br />
([string](https://developers.google.com/protocol-buffers/docs/proto#scalar)) 对应于DiscoveryResponse的nonce的ACK/NACK。请参阅关于`version_info`和[DiscoveryResponse](#discoveryresponse) nonce上述的讨论。如果`nonce`不可用,则这可能是空的。以支持启动或非流xDS的实现。
### DiscoveryResponse
[DiscoveryResponse proto](https://github.com/envoyproxy/data-plane-api/blob/master/api/discovery.proto#L58)
```
{
"version_info": "...",
"resources": [],
"type_url": "...",
"nonce": "..."
}
```
- **version_info**<br />
([string](#)) 响应数据的版本信息
- **resources**<br />
([Any](#)) 响应资源。关于这些资源的类型,取决于被调用的API。
- **type_url**<br />
([string](#)) 资源的URL。如果资源非空,任何消息中的`type_url`必须与资源保持一致。这可以有效地识别在ADS上混合提供的xDS API。
- **nonce**<br />
([string](#)) 对于基于gRPC的订阅,nonce提供了一种方法来显式确认以下`DiscoveryRequest`中的特定`DiscoveryResponse`。在此发现响应之前,Envoy可能会向流管理服务器发送其他消息,以便在响应发送时未经处理。nonce允许管理服务器忽略前一版本的任何进一步发现请求,直到当前的发现请求。nonce是可选的,对于基于非流的xDS实现,不是必需的。
## 返回
- [上一级](../v2APIreference.md)
- [首页目录](../README.md)
- 首页
- 简介
- Envoy是什么
- 架构介绍
- 术语
- 线程模型
- 监听器
- L3/L4网络过滤器
- HTTP连接管理
- HTTP过滤器
- HTTP路由
- gRPC
- WebSocket支持
- 集群管理
- 服务发现
- 健康检查
- 连接池
- 负载均衡
- 异常检测
- 熔断
- 全局限速
- TLS
- 统计
- 运行时配置
- 跟踪
- TCP代理
- 访问日志
- MongoDB
- DynamoDB
- Redis
- 热重启
- 动态配置
- 初始化
- 逐出
- 脚本
- 部署
- 业界对比
- 获得帮助
- 历史版本
- 编译安装
- 编译
- 参考配置
- 演示沙箱
- 前端代理
- Zipkin跟踪
- Jaeger跟踪
- gRPC桥接
- 构建Envoy Docker镜像
- 工具
- 配置参考
- V1 API 概述
- V2 API 概述
- 监听器
- 网络过滤器
- TLS客户端身份认证
- Echo
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP连接管理器
- 路由匹配
- 流量转移/分流
- HTTP头部操作
- HTTP头部清理
- 统计
- 运行时设置
- 路由发现服务
- HTTP过滤器
- 缓存
- CORS过滤器
- 故障注入
- DynamoDB
- gRPC HTTP/1.1 桥接
- gRPC-JSON 转码过滤器
- gRPC-Web 过滤器
- 健康检查
- 速率限制
- 路由
- Lua
- 集群管理
- 统计
- 运行时设置
- 集群发现服务
- 健康检查
- 熔断
- 访问日志
- 限速服务
- 运行时配置
- 路由表检查工具
- 运维管理
- 命令行选项
- 热重启
- 管理接口
- 统计概述
- 运行时配置
- 文件系统
- 自定义扩展示例
- V1 API参考
- 监听器
- 网络过滤器
- TLS客户端身份认证
- Echo
- HTTP连接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP路由配置
- 虚拟主机
- 路由
- 虚拟集群
- 速率限制配置
- 路由发现服务
- HTTP过滤器
- 缓存
- CORS过滤器
- DynamoDB
- 故障注入
- gRPC HTTP/1.1 桥接
- gRPC-JSON 转码过滤器
- gRPC-Web 过滤器
- 健康检查
- Lua
- 速率限制
- 路由
- 集群管理
- 集群
- 健康检查
- 熔断
- TLS上下文
- 异常值检测
- HASH环负载均衡配置
- 异常检测
- 集群发现服务
- 服务发现服务
- 访问日志
- 管理接口
- 限速服务
- 运行时配置
- 跟踪
- V2 API参考
- 启动引导
- 监听&监听发现
- 集群&集群发现
- 服务发现
- 健康检查
- HTTP路由管理&发现
- TLS配置
- 通用的类型
- 网络地址
- 协议选项
- 发现API
- 限速组件
- 过滤器
- 网络过滤器
- TLS客户端身份认证
- HTTP连接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP过滤器
- 缓存
- 故障注入
- 健康检查
- Lua
- 速率限制
- 路由
- gRPC-JSON转码器
- 常见访问日志类型
- 常见故障注入类型
- FAQ
- Envoy有多快?
- 我在哪里获得二进制文件?
- 我如何设置SNI?
- 如何设置区域感知路由?
- 我如何设置Zipkin跟踪?