在JanusGraph中创建连接池并使用连接池

时间:2019-12-04 10:46:29

标签: gremlin tinkerpop tinkerpop3 janusgraph gremlin-server

我正在使用JanusGraph。在远程连接到JanusGraph时如何创建连接池,然后使用该池借用连接?

现在我正在做类似

private static void init() {
        String uri = "localhost";
        int poolSize = 5;

        graph = JanusGraphFactory.open("inmemory");
        cluster = Cluster.build()
                .addContactPoint(uri)
                .port(8182)
                .serializer(new GryoMessageSerializerV1d0(GryoMapper.build().addRegistry(JanusGraphIoRegistry.getInstance())))
                .maxConnectionPoolSize(poolSize)
                .minConnectionPoolSize(poolSize)
                .create();
        gts = graph
                .traversal()
                .withRemote(DriverRemoteConnection.using(cluster));
    }

此init方法初始化一次。然后任何需要连接的人都会简单地调用以下方法

public GraphTraversalSource getConnection() {
        return gts.clone();
    }

请注意,现在不建议使用withRemote()方法。我不确定我做得正确吗?

1 个答案:

答案 0 :(得分:2)

我认为您在混淆一些概念。如果要远程连接到AddEntityFrameworkSqlServer()实例,则只需要使用TinkerPop驱动程序(即Cluster)。在您的情况下,您将在本地创建JanusGraph实例,因此只需执行Graph并开始编写Gremlin。另一方面,如果您将JanusGraph实例托管在Gremlin Server中,则需要使用graph.traversal()选项。正如您所称withRemote()的使用方式已经过时,但javadoc提到了新方法,该方法也可以在documentation中找到:

withRemote()

要了解用于连接到import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal; GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster)); 实例的所有不同选项,我建议阅读TinkerPop参考文档的this section