服务端
一个简单的rpc服务,config文件可以配置成一个server配置:
package config import ( "github.com/tal-tech/go-zero/core/stores/cache" "github.com/tal-tech/go-zero/zrpc" ) type Config struct { zrpc.RpcServerConf //zrpc服务端配置 }
RpcServerConf服务端配置包含一些基本信息和服务注册的配置,具体可参考go-zero/zrpc/config.go
RpcServerConf struct { service.ServiceConf // 服务基础配置 ListenOn string // 监听port Etcd discov.EtcdConf `json:",optional"` // etcd配置 // redis 身份验证配置 Auth bool `json:",optional"` Redis redis.RedisKeyConf `json:",optional"` StrictControl bool `json:",optional"` Timeout int64 `json:",default=2000"` // 超时,单位ms,不为0 CpuThreshold int64 `json:",default=900,range=[0:1000]"` // 自适应降载cpu阈值,900代表90% } type ServiceConf struct { Name string // 服务名 Log logx.LogConf Mode string `json:",default=pro,options=dev|test|pre|pro"` // 运行环境 MetricsUrl string `json:",optional"` // 指标报告Url Prometheus prometheus.Config `json:",optional"` // 监控配置 }
对应的yaml文件为:
Name: hello.rpc Log: Mode: console ListenOn: 0.0.0.0:2001 Etcd: Hosts: - etcd.discov.svc.cluster.local:2379 # etcd在k8s集群内服务地址 Key: hello.rpc # rpc服务的key