grpc客户端因使用consul导致的连通性问题

来源:3-6 gin集成nacos

404_

2022-12-26 17:19:17

我发现在使用了consul后,有一种情况,可能是一中隐患。

问题描述:

当mxshop-srvs服务停止运行后,consul就会将user_srv服务踢出。但是此时如果启动mxshop-api服务,在svr_conn.go这个文件中会进行grpc.Dial拨号。按理说它应该连接不上grpc server才对呀!但是mxshop-api却能够正常启动,没有任何报错。
只有在我进行用户登录接口调用时才报错了。这个报错就太隐晦了。报错如下图一:

相关截图:

图一:
图片描述

我感觉应该在svr_conn.go拨号逻辑的时候就进行报错(如下红框所示),但是我这边实际上并没有。请问老师:grpc客户端如何包装与server的连通性?这块代码该如何修改
图片描述

写回答

1回答

bobby

2022-12-27

mxshop-api 本身启动的时候是走服务发现的,这个时候如果没有服务在consul中这个不会导致dial失败,因为这里本身服务发现就是希望解决可以稍后连接的问题的,如果你希望srv没有启动的时候api不能启动的话 可以自己去写一个接口探查某些服务是否已经在consul中了

0

Go开发工程师

未来3-5年企业高性能项目不可替代的语言,从基础到项目实战再到重构,真正从入门到精通

508 学习 · 577 问题

查看课程