Closed Angel-fund closed 5 years ago
服务注册的 Region 配置是什么?
说一下, discovery 启动参数或配置文件里, region 是关键参数, 就像 /region/zone/env/appID 这样, /region 是根路径, 如果 region 缺失或匹配不对, 下面的 appID 是找不到匹配项的
说一下, discovery 启动参数或配置文件里, region 是关键参数, 就像 /region/zone/env/appID 这样, /region 是根路径, 如果 region 缺失或匹配不对, 下面的 appID 是找不到匹配项的
./discovery -conf discovery-example.toml -alsologtostderr discovery启动用的是 示例默认的配置
nodes = ["127.0.0.1:7171"]
# 本可用区zone(一般指机房)标识
[env]
region = "sh"
zone = "sh001"
host = "test1"
DeployEnv = "dev"
注册参数
ins := &naming.Instance{
Region: "sh",
Zone: "sh001",
Env: "dev",
Hostname: "test1",
AppID: "api.service",
Addrs: []string{
"http://172.0.0.1:8000",
"grpc://127.0.0.1:9000",
},
}
注册前貌似 要 res := dis.Build("api.service") 做一下这样的操作, 文档貌似也没说要这样做, 不然报 http: no Host in request URL, 然后注册又报
discovery: client.Get(http://127.0.0.1:7171/discovery/polls?appid=infra.discovery&appid=api.service&env=dev&hostname=test1&latest_timestamp=1557366391671257157&latest_timestamp=0) get error code(-404)
注册配置参数, 和discovery 启动参数是一直了吧
先看看服务发现有那些已经注册的服务:
http://127.0.0.1:7171/discovery/fetch/all
然后再看看服务参数是否有对应上了
注册前貌似 要 res := dis.Build("api.service") 做一下这样的操作, 文档貌似也没说要这样做, 不然报 http: no Host in request URL, 然后注册又报
注册的时候不需要build dis.build 是声明你需要依赖这个服务然后discovery会watch这个服务的变更 报404 是你依赖的服务不存在 通过 @tonyboxes 的方法fetch/all 看下都注册进去了哪些服务。
哈哈可以了 谢谢各位, 还是配置问题 discovery.New(conf) conf 中少了 一个region 参数, 经@tsingson 提点,看了下 goim 启动 参数是从 nohup target/logic -conf=target/logic.toml -region=sh 命令行注入的
discovery+ rpc 使用流程 我是这样理解的;
启动discovery 服务节点(7171), 然后把服务(rpc)注册到discovery上面
入口文件 cmd/main.go
rpc 客户端
rpc 服务端
启动后狂打下面的信息, 似乎发现不了这个rpc服务,是我使用姿势有问题马
配置文件