【发布时间】:2020-02-02 14:34:48
【问题描述】:
目标:我想建立一个图形数据库,并最终从 Nodejs 应用程序中内置的一组静态遍历中访问数据
中间目标 1: 作为学习练习,我最初将在本地机器上的 docker 容器中使用 gremlin-console,而不是使用 Nodejs 应用程序。 - 我正在使用 docker 容器tinkerpop/gremlin-console:latest
中间目标 2: 在我组织的远程服务器上的虚拟机上的 docker 容器中运行 Janusgraph (Berkeleyje/Lucern/gremlin-server)(我不想要任何模糊的建议) - 我正在使用 docker 容器 janusgraph/janusgraph:latest v3.4.4
修订中级目标 2: 由于我在连接时遇到的问题,请在我的本地机器上的 docker 容器中运行 Janusgraph (Berkeleyje/Lucern/gremlin-server),与运行 gremlin-console 的 docker 容器
步骤:
- 我用
docker pull janusgraph/janusgraph:latest拉取了服务器docker镜像 - 我使用
docker run -it -p 8182:8182 janusgraph/janusgraph:latest /bin/bash(也使用 imageID)运行图像 - 从正在运行的容器中的控制台
/opt/janusgraph/bin/gremlin-server.sh
返回:(剪断)
3321 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0 serialization class is deprecated.
3370 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v3.0+gryo with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0
3370 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0 serialization class is deprecated.
3371 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v3.0+gryo-stringd with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0
3395 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v3.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0
3395 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0
3397 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0 serialization class is deprecated.
3398 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v1.0+gryo with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
3400 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0 serialization class is deprecated.
3400 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v1.0+gryo-lite with org.apache.tinkerpop.gremlin.driver.ser.GryoLiteMessageSerializerV1d0
3400 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0 serialization class is deprecated.
3401 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v1.0+gryo-stringd with org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
3401 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - The org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0 serialization class is deprecated.
3405 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v2.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0
3405 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - application/json already has org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0 configured - it will not be replaced by org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, change order of serialization configuration if this is not desired.
3410 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Configured application/vnd.gremlin-v1.0+json with org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0
3411 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - application/json already has org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0 configured - it will not be replaced by org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, change order of serialization configuration if this is not desired.
3458 [gremlin-server-boss-1] INFO org.apache.tinkerpop.gremlin.server.GremlinServer - Gremlin Server configured with worker thread pool of 1, gremlin pool of 8 and boss thread pool of 1.
3458 [gremlin-server-boss-1] INFO org.apache.tinkerpop.gremlin.server.GremlinServer - Channel started at port 8182.
我希望序列化类警告不重要
- 我用
docker pull tinkerpop/gremlin-console:latest拉取了控制台docker镜像 - 我使用
docker run -it -p 8182:8182 tinkerpop/gremlin-console:latest /bin/bash(也使用 imageID)运行图像 - (在非托管版本中,我将
/opt/gremlin-console/conf/remote.yaml调整为指向服务器主机名的host- 可从容器解析为其IP)
hosts: [localhost] # OR [ the remote hostname ] as per the two versions of goal 2
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }}
- 从正在运行的容器中的控制台
/opt/janusgraph/bin/gremlin.sh - 从返回的 gremlin 控制台
remote connect tinkerpop.server conf/remote.yaml
gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/127.0.0.1:8182
- 从 gremlin 控制台
:remote console(将所有后续命令切换到远程 gremlin-server)
问题
似乎控制台正在连接到服务器但是当我运行时
gremlin> :> graph = TinkerGraph.open(conf/gremlin-server/conf/gremlin-server/janusgraph-berkeleyje-server.properties) 回复了
Host did not respond in a timely fashion - check the server status and submit again. 无论我是尝试连接同地还是远程的 gremlin-server,这都是一样的
现在该怎么办?去哪里看?为什么 Gremlin 这么难!
元问题
我不清楚(并且文档没有解释):> TinkerGraph.open(server.properties) 是否需要控制台本地的服务器 .properties 文件的路径,或者(我认为更有可能)相对于远程服务器的路径
我希望文档少一些理所当然,并且(因为一定数量有限的架构模式*)全面地单独解释了所有需要的内容
*
- 服务器和客户端位于同一台机器上,共享资源/网络等。
- 服务器和客户端容器化在一台机器上,那么如何让它们对话(通过容器隔离)
- 远程机器上的服务器到客户端(有和没有容器化)
【问题讨论】:
-
忘了说运行
graph = TinkerGraph.open(conf/gremlin-server/conf/gremlin-server/janusgraph-berkeleyje-server.properties)在服务器端没有响应,让我怀疑之前:remote connect tinkerpop.server conf/remote.yaml命令的成功响应
标签: docker janusgraph gremlin-server