服务配置
概述
本文介绍如何使用 go-zero 框架进行 gRPC Client 的开发。
配置
type RpcClientConf struct {
Etcd discov.EtcdConf `json:",optional,inherit"`
Endpoints []string `json:",optional"`
Target string `json:",optional"`
App string `json:",optional"`
Token string `json:",optional"`
NonBlock bool `json:",optional"`
Timeout int64 `json:",default=2000"`
KeepaliveTime time.Duration `json:",default=20s"`
Middlewares ClientMiddlewaresConf
}
type EtcdConf struct {
Hosts []string
Key string
ID int64 `json:",optional"`
User string `json:",optional"`
Pass string `json:",optional"`
CertFile string `json:",optional"`
CertKeyFile string `json:",optional=CertFile"`
CACertFile string `json:",optional=CertFile"`
InsecureSkipVerify bool `json:",optional"`
}
type ServerMiddlewaresConf struct {
Trace bool `json:",default=true"`
Recover bool `json:",default=true"`
Stat bool `json:",default=true"`
Prometheus bool `json:",default=true"`
Breaker bool `json:",default=true"`
}
RpcClientConf
名称 | 类型 | 含义 | 默认值 | 是否必选 |
---|---|---|---|---|
Etcd | EtcdConf | 服务发现配置,当需要使用 etcd 做服务发现时配置 | 无 | 否 |
Endpoints | string 类型数组 | RPC Server 地址列表,用于直连,当需要直连 rpc server 集群时配置 | 无 | 否 |
Target | string | 域名解析地址,名称规则请参考 https://github.com/grpc/grpc/blob/master/doc/naming.md | 无 | 否 |
App | string | rpc 认证的 app 名称,仅当 rpc server 开启认证时配置 | 无 | 否 |
Token | string | rpc 认证的 token,仅当 rpc server 开启认证时配置 | 无 | 否 |
NonBlock | bool | 是否阻塞模式,当值为 true 时,不会阻塞 rpc 链接 | false | 否 |
Timeout | int64 | 超时时间 | 2000ms | 否 |
KeepaliveTime | Time.Duration | 保活时间 | 20s | 否 |
Middlewares | ClientMiddlewaresConf | 是否启用中间件 | 无 | 否 |
EtcdConf
EtcdConf 为服务发现配置,当需要使用 etcd 做服务发现时配置。
名称 | 类型 | 含义 | 默认值 | 是否必选 |
---|---|---|---|---|
Hosts | string 类型数组 | etcd 集群地址 | 无 | 是 |
Key | string | 服务发现 key | 无 | 是 |
ID | int64 | etcd 租户 id | 无 | 否 |
User | string | etcd 用户名 | 无 | 否 |
Pass | string | etcd 密码 | 无 | 否 |
CertFile | string | etcd 证书文件 | CertFile | 否 |
CertKeyFile | string | etcd 证书私钥文件 | 无 | 否 |
CACertFile | string | etcd 证书根文件 | CertFile | 否 |
InsecureSkipVerify | bool | etcd 是否跳过证书验证 | 无 | 否 |
ServerMiddlewaresConf
ServerMiddlewaresConf 为中间件配置,当需要控制中间件时配置。
名称 | 类型 | 含义 | 默认值 | 是否必选 |
---|---|---|---|---|
Trace | bool | 是否开启链路追踪 | true | 否 |
Recover | bool | 是否开启异常恢复 | true | 否 |
Stat | bool | 是否开启统计 | true | 否 |
Prometheus | bool | 是否开启 prometheus | true | 否 |
Breaker | bool | 是否开启熔断 | true | 否 |