gRPC Client Configuration
Overview
Section titled “Overview”This paper describes how to use the go-Zero framework for gRPC client development.
Configuration
Section titled “Configuration”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
Section titled “RpcClientConf”| Name | DataType | Meaning | Default value | Required? |
|---|---|---|---|---|
| Etcd | EtcdConf | Service finds configuration, when using etcd for service discovery | None | NO |
| Endpoints | String Type Array | RPC Server address list, used for direct link, configured when required for a rpc server cluster | None | NO |
| Target | string | Domain URL solved, please refer to https://github.com/grpc/grpc/blob/master/doc/naming.md | None | NO |
| App | string | rpc authenticated app name, only configured when rpserver opens authentication | None | NO |
| Token | string | rpc authenticated token, only configured when rpserver opens authentication | None | NO |
| NonBlock | bool | Whether to block mode, when true does not block rpc links | false | NO |
| Timeout | int64 | Timeout time | 2000ms | NO |
| KeepaliveTime | Time.Duration | Keepalive Time | 20s | NO |
| Middlewares | ClientMiddlewaresConf | Enable Middleware | None | NO |
EtcdConf
Section titled “EtcdConf”EtcdConf config service discovery when using etcd for service discovery.
| Name | DataType | Meaning | Default value | Required? |
|---|---|---|---|---|
| Hosts | String Type Array | etcd cluster address | None | YES |
| Key | string | Service discovery key | None | YES |
| ID | int64 | etcd tenant id | None | NO |
| User | string | etcd username | None | NO |
| Pass | string | etcd password | None | NO |
| CertFile | string | etcd certificate file | CertFile | NO |
| CertKeyFile | string | etcd certificate private key file | None | NO |
| CACertFile | string | etcd certificate file | CertFile | NO |
| InsecureSkipVerify | bool | Whether or not to skip certificate verification | None | NO |
ServerMiddlewaresConf
Section titled “ServerMiddlewaresConf”ServerMidlewaresConf is configured as an intermediary, when control is required.
| Name | DataType | Meaning | Default value | Required? |
|---|---|---|---|---|
| Trace | bool | Enable link tracking | true | NO |
| Recover | bool | Whether to enable an exception recovery | true | NO |
| Stat | bool | Enable stats | true | NO |
| Prometheus | bool | Whether prometheus are enabled | true | NO |
| Breaker | bool | Whether to turn on smelting | true | NO |