com.vesoft.nebula.client.graph.exception.NotValidConnectionException: No extra connection: All servers are broken.

  • nebula 版本:2.0.0

  • 部署方式: 单机

  • 安装方式:源码编译

  • 是否上生产环境:N

  • 问题的具体描述
    在刚开始的时候代码还能正常获取,但是某一天突然就报出了这个错误了,打印日志的时候session获取不到。看了一些回答,一个是与graph数据库网络不通,一个是nebulagraph studio和java client版本不符。想让大佬们看看这个问题,顺便studio 版本3.5.0应该匹配java-client的版本是多少?

log.info("pool": pool)
session = pool.getSession("root", "nebula", false)
log.info("session": session)
代码
13:58:29.560 [Q/admin] [http-nio-8080-exec-7] [INFO  g.a.c.c.q.n.GraphClientExampleController] - {session=null}
13:58:29.568 [Q/admin] [http-nio-8080-exec-7] [INFO  g.a.c.c.q.n.GraphClientExampleController] - {pool=com.vesoft.nebula.client.graph.net.NebulaPool@5d9c6cfd}
13:58:29.568 [Q/admin] [http-nio-8080-exec-7] [INFO  g.a.c.c.q.n.GraphClientExampleController] - {nebulaPoolConfig=com.vesoft.nebula.client.graph.NebulaPoolConfig@4372d760}
13:58:29.582 [Q/admin] [http-nio-8080-exec-7] [INFO  g.a.c.c.q.n.GraphClientExampleController] - {address=[192.168.11.75:9669]}
13:58:50.644 [Q/admin] [http-nio-8080-exec-7] [INFO  g.a.c.c.q.n.GraphClientExampleController] - {pool=com.vesoft.nebula.client.graph.net.NebulaPool@5d9c6cfd}
13:58:50.690 [Q/admin] [http-nio-8080-exec-7] [ERROR g.a.s.b.f.core.ErrorService] - [hk8TCbsz] Failed to invoke #getData
com.vesoft.nebula.client.graph.exception.NotValidConnectionException: No extra connection: All servers are broken.

image

这两个版本差了一个代沟呢,你看 studio 的使用限制说明:

https://docs.nebula-graph.com.cn/3.4.0/nebula-studio/about-studio/st-ug-what-is-graph-studio/#_5

不是 java 客户端的问题,是你所有的工具都不匹配,你用你的内核去找对应的工具。

1 个赞

好的。我去看一下。

当时没有用容器安装,而是直接安装在服务器中,如果要查看graph版本号的话应该用什么命令呀?

ADD  meta-transfer-tools.sh  nebula-graphd.service  nebula-metad.service  nebula.service  nebula-storaged.service  utils.sh

去 console 里执行下 show hosts graph

nebulaGraph版本号是3.3.0 studio版本号是3.5.0 可以对应上。
image
image
我把java-client的版本号也改为了3.3.0


但是还是会报错。。 :smiling_face_with_tear:

麻烦,类似的,你把连接服务器那块的代码贴下。

NebulaPool pool = new NebulaPool()
        Session session
        Map data = new LinkedHashMap()
        Map list = new LinkedHashMap()
        log.info("session": session)
        try {
            NebulaPoolConfig nebulaPoolConfig = new NebulaPoolConfig()
            log.info("pool": pool)
            log.info("nebulaPoolConfig": nebulaPoolConfig)
            nebulaPoolConfig.setMaxConnSize(100)
            List<HostAddress> addresses = Arrays.asList(new HostAddress("127.0.0.1", 9669))
            log.info("address": addresses)
            pool.init(addresses, nebulaPoolConfig)

            log.info("pool": pool)

            session = pool.getSession("root", "nebula", false) log.info("session": session)
} finally {
            if (session != null) {
                session.release()
            }
            pool.close()
        }

换成真实的 ip 地址看看会不会出问题。

换成真实的ip也会出错误。我试了一下您发的github上的Graph SessionPool example的样例代码。报错显示连接超时和空指针异常。

看下这个帖子的第二层和第三层的回复可以么?

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。