При попытке создания графа в JanusGraph-Docker отказано соединение - PullRequest
0 голосов
/ 26 сентября 2019

Я использую изображения JanusGraph-Docker (https://github.com/JanusGraph/janusgraph-docker) для настройки JanusGraph в Docker. Когда я использовал JanusGraph без Docker, у меня все работало нормально, но теперь я столкнулся с некоторыми проблемами:

Я использовал следующую команду для настройки janusgraph с помощью Cassandra + Elasticsearch:

docker-compose -f docker-compose-cql-es.yml up

Это запустит все необходимые контейнеры, которые я дважды проверил:

docker ps

Теперь я хочу подключиться к Janusgraph через консоль Gremlin, используя:

docker-compose -f docker-compose-cql-es.yml run --rm -e GREMLIN_REMOTE_HOSTS=janusgraph janusgraph ./bin/gremlin.sh

Это запустит консоль gremlin, и я настрою пульт с:

:remote connect tinkerpop.server conf/remote.yaml
:remote console

, который также отлично работает.Я пытаюсь создать новый график, который завершается ошибкой:

graph = JanusGraphFactory.open('conf/janusgraph-cassandra-es.properties')

Это дает мне следующее сообщение:

Соединение отклонено (Соединение отклонено)

Полная трассировка стека:

java.net.ConnectException: Соединение отклонено (соединение отклонено) на java.net.PlainSocketImpl.socketConnect (собственный метод) на java.net.AbstractPlainSocketImpl.doConnect (AbstractPl)ainSocketImpl.java:350) в java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:206) в java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:cketSj.javaSite.js:o.Socks.ocks.Socks.oSo.Socks.oSo.Socks.oSoSo.Socks.oSoSocketSec.) в java.net.Socket.connect (Socket.java:589) в org.apache.thrift.transport.TSocket.open (TSocket.java:182) в org.apache.thrift.transport.TFramedTransport.open (TFramedTransport.Java: 81) at orв org.janusgraph.diskstorage.cassandra.thrift.thriftpool.CTConnectionFactory.makeObject (CTConnectionFactory.java:43) в org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject (generic.cassandra.thrift.CassandraThriftStoreManager.getCassandraPartitioner (СassandraThriftStoreManager.java:215) в org.janusgraph.diskstorage.cassandra.thrift.CassandraThriftStoreManager. (CassandraThriftStoreManager.java:197) в sun.reflect.NativeConstructorAccessNews.: 62) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance (Constructor.java:423) в org.janusgraph.util.system.ConfigurationUtilin.tilJava: 58) в org.janusgraph.diskstorage.Backend.getImplementationClass (Backend.java:440) в org.janusgraph.diskstorage.Backend.getStorageManager (Backend.java:411) в org.janusgraph.graphdb.confraphDuderder.f.build (GraphDatabaseConfigurationBuilder.java:50) в org.janusgraph.core.JanusGraphFactory.open (JanusGraphFactory.java:161) в org.janusgraph.core.JanusGraphFactory.open (JanusGraphFactory.Java: 132) в org.janusgraph.core.JanusGraphFactory.open (JanusGraphFactory.java:79) в org.janusgraph.core.JanusGraphFactory $ open.call (неизвестный источник) в Script4.run (Script4.groovy: 1) в организации«.eval (AbstractScriptEngine.java:233) в org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda $ eval $ 0 (GremlinExecutor.java:266) в java.util.concurrent.FutureTask.run (FutureTask.java:266) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511)в java.util.concurrent.FutureTask.run (FutureTask.java:266) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExcecutor: 624) at java.lang.Thread.run (Thread.java:748)

Я могу выполнять запросы, подобные следующим, поскольку сервер janusgraph, кажется, предварительно развертывает граф с объектом обхода:

g.addV('user').property('username','exampleUserName')

Но когда я пытаюсь подключиться из python gremlin с помощью:

graph = Graph()
g = graph.traversal().withRemote(DriverRemoteConnection('ws://0.0.0.0:8182/gremlin','g'))

Я получаю ту же ошибку, любая помощь?

1 Ответ

0 голосов
/ 26 сентября 2019

Обратите внимание, что когда ваш сервер прослушивает на 0.0.0.0, это означает, что он будет доступен с компьютеров, отличных от того, на котором он работает.Альтернатива прослушивания 127.0.0.1 означает, что он будет доступен только для процессов на том же хосте, на котором работает сервер.

Однако, когда ваш клиент подключает к серверу, ондолжен указать фактическое имя хоста или IP-адрес, к которому он подключается, это может быть localhost или 127.0.0.1 или любой другой IP-адрес, к которому сервер подключен в сети.Однако вы не можете использовать 0.0.0.0 в строке подключения от клиента к серверу, поскольку это недопустимый IP-адрес для подключения.

...