划分微服务后 rpc远程调用找不到服务
来源:10-12 编码实战: 改造api网关service

慕姐7389518
2020-04-13
环境是 本地运行go(127.0.0.1/192.168.174.1) 程序consul (192.168.174.200:8500) 在虚拟机中的docker下安装
在这一步调用报错,请问是什么原因呢 服务都已启动!]
写回答
1回答
-
xiaomo
2020-04-14
同学你好,其中一个可能的原因是由于consul不能正常主动销毁service实例引起的,就是当已注册的service退出后,consul没有正常感知并作出清理的动作.可以先检查一下,在向consul注册的时候,是否已经加上了以下配置:
service := micro.NewService( micro.Name("go.micro.service.user"), micro.RegisterTTL(time.Second*10), // 指定ttl为10, 即超时10秒后consul可删除service记录 micro.RegisterInterval(time.Second*5), // 指定service定期发送心跳注册间隔为5秒 )
如果以上都设置了,可以检查下,如果所有service都手动关闭后,consul是否还保存service的相关记录.是的话则是consul工作不正常;不是的话,再进行下一步的判断:可以先查找一下service对应的日志.如果有错误,再贴一下来讨论一下.
00
相似问题