rpc配置

rpc配置控制着一个rpc服务的各种功能,包含但不限于监听地址,etcd配置,超时,熔断配置等,下面我们以一个常见的rpc服务配置来进行说明。

配置说明

  1. Config struct {
  2. zrpc.RpcServerConf
  3. CacheRedis cache.CacheConf // redis缓存配置,详情见api配置说明,这里不赘述
  4. Mysql struct { // mysql数据库访问配置,详情见api配置说明,这里不赘述
  5. DataSource string
  6. }
  7. }

zrpc.RpcServerConf

  1. RpcServerConf struct {
  2. service.ServiceConf // 服务配置,详情见api配置说明,这里不赘述
  3. ListenOn string // rpc监听地址和端口,如:127.0.0.1:8888
  4. Etcd discov.EtcdConf `json:",optional"` // etcd相关配置
  5. Auth bool `json:",optional"` // 是否开启Auth,如果是则Redis为必填
  6. Redis redis.RedisKeyConf `json:",optional"` // Auth验证
  7. StrictControl bool `json:",optional"` // 是否Strict模式,如果是则遇到错误是Auth失败,否则可以认为成功
  8. // pending forever is not allowed
  9. // never set it to 0, if zero, the underlying will set to 2s automatically
  10. Timeout int64 `json:",default=2000"` // 超时控制,单位:毫秒
  11. CpuThreshold int64 `json:",default=900,range=[0:1000]"` cpu降载阈值,默认900,可允许设置范围01000
  12. }

discov.EtcdConf

  1. type EtcdConf struct {
  2. Hosts []string // etcd host数组
  3. Key string // rpc注册key
  4. }

redis.RedisKeyConf

  1. RedisConf struct {
  2. Host string // redis 主机
  3. Type string `json:",default=node,options=node|cluster"` // redis类型
  4. Pass string `json:",optional"` // redis密码
  5. }
  6. RedisKeyConf struct {
  7. RedisConf
  8. Key string `json:",optional"` // 验证key
  9. }