我发现的文档建议创建一个 EmtpyGraph 并从中获取远程遍历:
EmptyGraph.instance().traversal().withRemote(config);
其中 config 是您的具有远程属性的配置对象,例如:
config.setProperty("clusterConfiguration.hosts", HOST);
config.setProperty("clusterConfiguration.port", PORT);
config.setProperty("clusterConfiguration.serializer.className", "org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0");
config.setProperty("clusterConfiguration.serializer.config.ioRegistries", ioRegistries); // (e.g. [ org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry) ]
config.setProperty("gremlin.remote.remoteConnectionClass", "org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection");
config.setProperty("gremlin.remote.driver.sourceName", "g");
但是,我在使用 JanusGraph 特定功能(例如提交事务)时遇到了问题,因为图实例是 EmptyGraph 本身,而不是 JanusGraph。所以,试试:
GraphTraversalSource g = JanusGraphFactory.open("inmemory").traversal().withRemote(config);
这将为您提供远程 gremlin-server 的遍历源,您可以执行 g.addV("vertexLabel")....;, g.tx().commit(); 等等。