Files
unitech-golib/gfetcd/README.md
2020-04-06 19:57:19 +08:00

80 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 代码结构
``` shell
├── README.md
├── client.go # grpc客户端调用
├── config.go # 配置结构
├── resolver.go # 地址解析
└── server.go # grpc服务端调用
```
## 数据结构
### 基本结构
``` golang
type BasicConfig struct {
DialTimeout int `toml:"dial_timeout"` // 连接超时时间默认5秒
EndPoints []string `toml:"endpoints"` // etcd的地址
Prefix string `toml:"prefix"` // etcd服务的路径前缀区分环境用
Debug bool `toml:"debug"` // 使用debug模式打印详细的etcd交互日志很多非调试不建议打开
}
```
### grpc服务端用的配置
``` golang
type NameConfig struct {
BasicConfig
Servers []string `toml:"servers"` // 注册的服务名称,可以是多个
Addr string `toml:"addr"` // 服务地址可以是IP:PORT或者:PORT格式
TTL int64 `toml:"ttl"` // 租约超时时间默认5秒
}
```
### grpc客户端用的配置
``` golang
type ResolverConfig struct {
BasicConfig
WatchServers []string `toml:"watch_servers"` // 依赖的服务名称
}
```
## 使用方法
### grpc服务端
``` golang
// demo
&config.EtcdName = {
EndPoints:[]string{"127.0.0.1:2379"},
Prefix: "/ng/test/okash",
Servers: []string{"orders.Orders", "product.Product"},
Addr: ":8701",
}
etcdName, err := gfetcd.NameRegist(&config.EtcdName)
if err != nil {
panic(err)
}
defer etcdName.Unregister()
```
### grpc客户端
```golang
// demo
&config.EtcdReslv{
EndPoints:[]string{"127.0.0.1:2379"},
Prefix: "/ng/test/okash",
WatchServers: []string{"product.Product"},
}
// 连接etcd
EtcdReslv, err = gfetcd.NewResolver(&config.EtcdReslv)
// 调用方法
err := EtcdReslv.Call(context.Background(), &XXXReq{}, &XXXResp{})
```