使用 JanusGraphFactory 连接到外部 JanusGraph 服务器

问题描述 投票:0回答:0

问题

如何使用 JanusGraphFactory 连接到外部 JanusGraph Server
我不知道我在做什么,一般来说是 JanusGraph 和图形数据库的新手。

JanusGraph > Configuration > "storage.backend"
属性应该连接什么?

│   pom.xml
│
├───src
│   ├───main
│   │   ├───java
│   │   │       Main.java
│   │   │
│   │   └───resources
│   │       │   log4j2.xml
│   │       │
│   │       ├───conf
│   │       │       remote-graph.properties
│   │       │       remote-objects.yaml

我试过切换存储后端的名称

shorthands: berkeleyje, cql, hbase, inmemory

我希望其中至少有一个能起作用。
但是使用外部 JanusGraph-Server 实例似乎并没有真正改变它。

import org.apache.commons.configuration2.BaseConfiguration;
import org.apache.commons.configuration2.Configuration;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.janusgraph.core.JanusGraph;
import org.janusgraph.core.JanusGraphFactory;

public class Main {
    private static final Logger logger = LogManager.getLogger(Main.class);
    public static void main(String[] args) {
        Configuration configuration = new BaseConfiguration();
        configuration.setProperty("storage.backend", "inmemory");
        JanusGraph janusGraph = JanusGraphFactory.open(configuration);
        GraphTraversalSource g = janusGraph.traversal();
        logger.info(g.V().next());
        janusGraph.close();
    }
}
# remote-graph.properties 
gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection
gremlin.remote.driver.clusterFile=src/main/resources/conf/remote-objects.yaml
gremlin.remote.driver.sourceName=g
# remote-objects.yaml
hosts: [localhost]
port: 18182
serializer: {
  className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0,
  config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] }}
    <!-- POM.XML -->
    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>2.20.0</version>
        </dependency>
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-core</artifactId>
            <version>1.0.0-20230424-065649.dcd3240</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tinkerpop</groupId>
            <artifactId>gremlin-core</artifactId>
            <version>3.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.janusgraph</groupId>
            <artifactId>janusgraph-inmemory</artifactId>
            <version>1.0.0-20230427-155952.3f229ac</version>
        </dependency>
    </dependencies>
</project>

我使用的 JanusGraph-Server 是一个 docker 容器

docker run -it -p 18182:8182 janusgraph/janusgraph

它的Gremlin-Server's Console是在TCP-Port:18182上公开的标准TCP-Port:8182。
您如何连接到外部 JanusGraph-Server?

2023-05-01 10:36:13,327 [INFO] [o.j.d.c.b.ReadConfigurationBuilder.main] ::  Set default timestamp provider MICRO
2023-05-01 10:36:13,344 [INFO] [o.j.g.i.UniqueInstanceIdRetriever.main] ::   Generated unique-instance-id=c0a8563c7736-rmt-lap-win201
2023-05-01 10:36:13,354 [INFO] [o.j.d.c.ExecutorServiceBuilder.main] ::  Initiated fixed thread pool of size 40
2023-05-01 10:36:13,362 [DEBUG] [o.j.d.l.LocalLockMediators.main] ::     Local lock mediator instantiated for namespace org.janusgraph.diskstorage.inmemory.InMemoryStoreManager@6d24ffa1
2023-05-01 10:36:13,367 [DEBUG] [o.j.g.d.i.VertexIDAssigner.main] ::     Partition IDs? [true], Local Partitions? [false]
2023-05-01 10:36:13,369 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [0] to: 8
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [1] to: 5
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [2] to: 21
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [3] to: 17
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [4] to: 5
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [5] to: 16
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [6] to: 24
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [7] to: 11
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [8] to: 14
2023-05-01 10:36:13,370 [DEBUG] [o.j.g.d.i.p.SimpleBulkPlacementStrategy.main] ::    Setting partition at index [9] to: 31
2023-05-01 10:36:13,391 [INFO] [o.j.g.d.StandardJanusGraph.main] ::  Gremlin script evaluation is disabled
2023-05-01 10:36:13,397 [INFO] [o.j.d.l.k.KCVSLog.main] ::   Loaded unidentified ReadMarker start time 2023-05-01T15:36:13.397883Z into org.janusgraph.diskstorage.log.kcvs.KCVSLog$MessagePuller@70eecdc2
2023-05-01 10:36:13,397 [DEBUG] [o.j.d.l.k.KCVSLog.main] ::  Creating log read executor: initialDelay=100000000 delay=5000000000 unit=NANOSECONDS
2023-05-01 10:36:13,398 [DEBUG] [o.j.g.d.StandardJanusGraph.main] ::     Installed shutdown hook Thread[Thread-0,5,main]
java.lang.Throwable: Hook creation trace
    at org.janusgraph.graphdb.database.StandardJanusGraph.<init>(StandardJanusGraph.java:250) [janusgraph-core-1.0.0-20230424-065649.dcd3240.jar:?]
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:176) [janusgraph-core-1.0.0-20230424-065649.dcd3240.jar:?]
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:147) [janusgraph-core-1.0.0-20230424-065649.dcd3240.jar:?]
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:127) [janusgraph-core-1.0.0-20230424-065649.dcd3240.jar:?]
    at Main.main(Main.java:14) [classes/:?]
2023-05-01 10:36:13,446 [DEBUG] [o.j.g.t.StandardJanusGraphTx.main] ::   Caffeine vertex cache size: requested=20000 effective=20000 (min=100)
2023-05-01 10:36:13,448 [DEBUG] [o.j.g.t.v.CaffeineVertexCache.main] ::  Created dirty vertex map with initial size 32
2023-05-01 10:36:13,450 [DEBUG] [o.j.g.t.v.CaffeineVertexCache.main] ::  Created vertex cache with max size 20000
2023-05-01 10:36:13,455 [DEBUG] [o.j.g.t.JanusGraphBlueprintsGraph.main] ::  Created new thread-bound transaction standardjanusgraphtx[0x79c5636f]
2023-05-01 10:36:13,466 [WARN] [o.j.g.t.StandardJanusGraphTx.main] ::    Query requires iterating over all vertices [[]]. For better performance, use indexes
Exception in thread "main" java.util.NoSuchElementException
    at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.next(DefaultTraversal.java:257)
    at Main.main(Main.java:16)
2023-05-01 10:36:13,498 [DEBUG] [o.j.d.l.k.KCVSLog.pool-5-thread-1] ::   MessagePuller configured with ReadMarker timestamp slightly ahead of read lag time; waiting for the clock to catch up

configuration-files janusgraph java-17 gremlin-server graph-traversal
© www.soinside.com 2019 - 2024. All rights reserved.