2

我正在尝试开发与 lyft/envoy 一起使用的 RDS(路线发现服务)。根据文档 RDS API URL 应该遵循GET /v1/routes/(string: route_config_name)/(string: service_cluster)/(string: service_node)。我想知道的是service_cluster和service_node的用法。

目前我还没有将它们用于任何特定任务,只是匹配了 GET 路径并定义了单个路由。哪个工作得很好。我检查了特使为这些发送的价值并得到了service_cluster: lax& service_node: node1,没有太多帮助。Docs 说这些值也可以通过 CLI 选项设置。

它应该用来做什么?我错过了什么吗?

4

1 回答 1

3

我的理解是这样的:Envoy 被设计为微服务网格中的微服务代理。因此,您可以让多个特使从 RDS 获取路由配置。当您设计网格时,您可以决定如何对这些多个特使进行分组——这是您的网格和 RDS 之间的合同。RDS 有两个级别的分组——服务集群服务节点。因此,您可以决定,例如,调用服务集群的同一微服务服务节点的多个版本(具有多个版本的微服务)。

因此,您可以为网格中的每个 envoy 实例分配一个服务集群和一个服务节点标识符,并在命令行中将这些参数传递给 envoy。然后 envoy 会将它们传递给 RDS 以获取路由。然后,如果您的网格设计需要,RDS 可以将不同的路由返回到不同的服务集群和服务节点。

如果你不使用 envoy 作为网格的一部分,即你只运行一个 envoy,你可以在你的 RDS 实现中忽略这些参数。

于 2017-11-13T15:04:27.370 回答