经过反复测试情况如下:
我在两台阿里云服务器进行测试
1. 两台服务器安全组规则都已打开测试端口. 安装docker, consul, jaeger的是A(公网IP:47.###.###.254); 另外一台B(公网IP:112.***.***.193).
2.如果把编译后的server 和 client 都放在A, 程序执行成功. 如果把编译后的server 和 client 都放在B, 程序执行成功.
3.如果server和client不在同一台服务器, 例如把编译后的server放在A, 把client放在B, client报408错误.{"id":"go.micro.client","code":408,"detail":"context deadline exceeded","status":"Request Timeout"}
4.如果关闭server, 执行client, client报500错误.{"id":"go.micro.client","code":500,"detail":"service go.micro.service.product: not found","status":"Internal Server Error"}
5. 如果加入公网ip地址编译server(micro.Address("112.***.***.193:8082")), server无法启动 ,报错: file=product/main.go:82 level=fatal listen tcp 112.***.***.193:8082: bind: cannot assign requested address.
6. 如果不加入公网ip, 进行默认编译server(micro.Address(":8082")), 查询consul,发现服务绑定到服务器私网ip (172.***.***.112:8082)
**请问:**
1. **微服务的server和client 必须部署在同一台服务器上吗?**
2. **微服务之间, 从注册到注册中心, 到向注册中心查询, 到执行服务, 调用过程是否可以追踪调试?**
3. **客户端执行速度非常快, 如何查看客户端是否注册成功?**
4. **server端是否可以注册绑定到公网ip?**