使用java sdk报错connection refused

hello我这边使用java sdk(3.4.1)有个报错,如下所示:

om.vesoft.nebula.client.graph.exception.IOErrorException: java.net.ConnectException: Connection refused (Connection refused)
at com.vesoft.nebula.client.graph.net.SyncConnection.open(SyncConnection.java:111)
at com.vesoft.nebula.client.graph.SessionPool.createSessionObject(SessionPool.java:311)

初步排查应该是有一台机器挂掉了,并且在配置中,hostip我们配置的是3台机器的ip(总共部署了3台,每台物理机均部署了meta,storage,graph),且partition也设置的是3。

我想请问下,我们应该是直接连接meta leader才是正确方式吧?可以直接指定meta leader吗?如果不能直接指定meta leader,那我理解meta应该可以帮忙规避掉挂掉的服务吧,那这个报错是因为什么呢?

Java SDK 连接的不是 Meta,而是 Graph,当某个 Graph 节点宕机时,如果客户端仍尝试与其建立 TCP 连接,就会直接报 Connection refused,Meta 在这个段都还没介入,自然无法自动规避。

那这样的话,是不是用java sdk就没办法能保证nebula的高可用了啊?因为只要有graph节点宕机,那么就会有请求会错误