【问题标题】:Connect to Amazon Neptune db from local Gremlin server from java app从 Java 应用程序从本地 Gremlin 服务器连接到 Amazon Neptune db
【发布时间】:2022-01-07 11:18:47
【问题描述】:

现在我们正在使用 Janusgraph。我们图中的节点和顶点已标记权利。我们已经定制了 Gremlin 服务器以在每个步骤执行后检查权限。

此 Gremlin 服务器是使用 Java 应用程序启动的。

我想知道我们是否可以为 Neptune 做同样的事情,即启动本地 Gremlin 服务器并连接到 Neptune DB 并对其进行自定义以进行权利检查。 另外,是否可以为 gremlin 查询响应配置自定义序列化程序?

添加示例配置:

host: MyNeptuneHost
port: 8182
evaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/tinkergraph-empty.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.myApp.tinkerpop.gremlin.driver.ser.MyAppGraphSONMessageSerializerV3d0, config: { ioRegistries: [org.myApp.tinkerpop.gremlin.tinkergraph.structure.MyAppIoRegistryV3d0] }}

【问题讨论】:

    标签: amazon-neptune gremlin-server aws-neptune


    【解决方案1】:

    Amazon Neptune 公开了您希望从任何其他 Gremlin 服务器看到的相同入口点。因此,对于您的应用程序,Neptune 看起来就像一个 Gremlin 服务器。但是,除了在创建与服务器的连接时指定要使用的序列化程序(通过从可用集中选择一个)之外,您无法配置序列化程序。从您的问题中不清楚如何执行权利检查,但您无法自定义 Neptune 服务器本身,只能调整通过参数组和查询设置公开的设置(例如超时)。

    【讨论】:

    • [已在原始问题中添加示例配置] @Kelvin,感谢您的回复。如果我正确理解您的观点,如果我使用问题中提到的示例配置并启动 Gremlin 服务器以连接 Neptun DB,Gremlin 服务器在返回查询响应时不会使用配置中的 MyAppGraphSONMessageSerializerV3d0 序列化程序?
    • 您是否想将两个 Gremlin 服务器链接在一起,以便调用 Gremlin 服务器,该服务器又调用 Neptune 并让该服务器转换从 Neptune 返回的结果?我没有尝试过,不确定性能会如何。
    • 是的,我相信这是在 Neptune 中使用自定义消息序列化程序的唯一方法。
    猜你喜欢
    • 2022-11-22
    • 2021-12-07
    • 1970-01-01
    • 2020-02-09
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    相关资源
    最近更新 更多