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中了
相似问题