客户端
客户端调用一个简单的用户rpc服务,config文件需要增加zrpc.RpcClientConf:
package config import ( "github.com/tal-tech/go-zero/rest" "github.com/tal-tech/go-zero/zrpc" ) type Config struct { rest.RestConf HelloRpc zrpc.RpcClientConf }
RpcClientConf参照go-zero/zrpc/config.go,包含服务发现的基本信息。
RpcClientConf struct { Etcd discov.EtcdConf `json:",optional"` // etcd配置,通过服务发现获取rpc服务地址 Endpoints []string `json:",optional=!Etcd"` // 直连rpc服务节点 App string `json:",optional"` // 鉴权,须和服务器redis中配置一致 Token string `json:",optional"` // 鉴权,须和服务器redis中配置一致 Timeout int64 `json:",optional"` // 超时 } type EtcdConf struct { // etcd配置 Hosts []string // etcd集群地址 Key string // rpc服务的key }
对应的yaml文件为:
Name: hello-api Host: 0.0.0.0 Port: 2003 UserRpc: Etcd: Hosts: - etcd.discov.svc.cluster.local:2379 # etcd在k8s集群内服务地址 Key: hello.rpc # rpc服务的key