[grpc-default-executor-0] ERROR n.d.b.g.c.nameresolver.DiscoveryClientNameResolver - No servers found for xxx
项目主要依赖如下 spring-boot:2.3.7-RELEASE milvus-sdk-java :2.1.0-beta4 grpc-core:1.34.1 grcpc-client-spring-boot-autoconfigure: 2.12.0.RELEASE
milvus配置类
@Configuration
public class MilvusConfig {
@Value("${milvus.host}")
private String host;
@Value("${milvus.port}")
private Integer port;
@Bean
public MilvusServiceClient milvusServiceClient() {
ConnectParam connectParam = ConnectParam.newBuilder()
.withHost(host)
.withPort(port)
.build();
return new MilvusServiceClient(connectParam);
}
}
当我不加入grcpc-client-spring-boot-autoconfigure是使用MilvusServiceClient查询没有问题。 当加入grcpc-client-spring-boot-autoconfigure后,项目正常能启动,但是当查询的时候报异常,异常信息如下:
2022-08-04 15:27:54.101 [] [grpc-default-executor-0] ERROR n.d.b.g.c.nameresolver.DiscoveryClientNameResolver - No servers found for 10.24.16.36:19530
2022-08-04 15:27:54.101 [] [grpc-default-executor-0] WARN io.grpc.internal.ManagedChannelImpl - [Channel<7>: (10.24.16.36:19530)] Failed to resolve name. status=Status{code=UNAVAILABLE, description=No servers found for 10.24.16.36:19530, cause=null}
使用arthas调试定位到如下异常:

说实话我没用过grcpc-client-spring-boot-autoconfigure,看报错的提示像是访问不到那个地址。 看一下下面这个trouble-shooting是否能有帮助: https://yidongnan.github.io/grpc-spring-boot-starter/en/trouble-shooting.html
我解决了我项目中的这个问题,修改milvus-sdk-java中ManagedChannelBuilder创建链接的方式,将原来的forAddress修改为forTarget就可以了。感谢支持。

我解决了我项目中的这个问题,修改milvus-sdk-java中ManagedChannelBuilder创建链接的方式,将原来的forAddress修改为forTarget就可以了。感谢支持。
你这个改动 connectParam.getTarget() 这里返回的是一个地址字符串么?是不是 “10.24.16.36:19530” 这样的字符串?
我解决了我项目中的这个问题,修改milvus-sdk-java中ManagedChannelBuilder创建链接的方式,将原来的forAddress修改为forTarget就可以了。感谢支持。
你这个改动 connectParam.getTarget() 这里返回的是一个地址字符串么?是不是 “10.24.16.36:19530” 这样的字符串?
@Bean
public MilvusServiceClient milvusServiceClient() {
ConnectParam connectParam = ConnectParam.newBuilder().withTarget("static://10.24.16.36:19530").build();
return new MilvusServiceClient(connectParam);
}
换了个协议
我解决了我项目中的这个问题,修改milvus-sdk-java中ManagedChannelBuilder创建链接的方式,将原来的forAddress修改为forTarget就可以了。感谢支持。
你这个改动 connectParam.getTarget() 这里返回的是一个地址字符串么?是不是 “10.24.16.36:19530” 这样的字符串?
@Bean public MilvusServiceClient milvusServiceClient() { ConnectParam connectParam = ConnectParam.newBuilder().withTarget("static://10.24.16.36:19530").build(); return new MilvusServiceClient(connectParam); }换了个协议
你这个改动其实可以提个pr我觉得