服务配置 (Service Config)
概述
服务配置(Service Config)指定了 gRPC 客户端与 gRPC 服务器交互时应遵循的行为。服务所有者可以提供一个服务配置,定义所有服务客户端的期望行为。服务配置中的设置始终应用于特定的目标字符串(例如,“api.myapp.com”),而不是全局应用。
服务配置控制的行为
服务配置中的设置影响客户端的负载均衡、调用行为和健康检查。
本页概述了服务配置中的选项,但完整的服务配置数据结构已通过 Protobuf 定义进行文档化。
负载均衡 (Load Balancing)
一个服务可以由多个服务器组成,负载均衡配置指定了客户端应如何在这些服务器之间分配请求。默认情况下,使用 pick_first
负载均衡策略,但可以在服务配置中指定其他策略。例如,指定 round_robin
策略将使客户端轮流使用服务器,而不是重复使用第一个服务器。
获取服务配置
服务配置可以通过名称解析或程序化方式提供给客户端。
示例服务配置
以下示例执行了以下操作:
-
启用了
round_robin
负载均衡策略。 -
设置了所有服务中所有方法的默认调用超时为 1 秒。
-
将
foo
服务中的bar
方法以及baz
服务中的所有方法的超时覆盖为 2 秒。
{
"loadBalancingConfig": [ { "round_robin": {} } ],
"methodConfig": [
{
"name": [{}],
"timeout": "1s"
},
{
"name": [
{ "service": "foo", "method": "bar" },
{ "service": "baz" }
],
"timeout": "2s"
}
]
}