【问题标题】:How to connect to Amazon Neptune by using ssh Java如何使用 ssh Java 连接到 Amazon Neptune
【发布时间】:2021-12-07 19:12:32
【问题描述】:
我已经设置了一个 ssh 隧道以允许连接到 NeptuneDB 现在我想使用本地机器上的 Java 进行连接 通过使用 ssh 到 NeptuneDB,那么有什么办法吗?

【问题讨论】:

  • 这个问题经常出现,对我来说非常有意义。我在下面提供了详细的答案。但是,为避免版主关闭此问题,如果您可以根据 Stack Overflow 指南添加一些关于您已经尝试过的内容的更多信息,那将是一件好事。

标签: java ssh gremlin graph-databases amazon-neptune


【解决方案1】:

是的,这是可能的。您需要将 Neptune 集群的 DNS 名称添加到您的本地 hosts 文件中,并在您的代码和创建 SSH 隧道时使用该名称。不要使用localhost,否则 SSL 证书将无法解析。 hosts 文件中的行将采用以下形式:

127.0.0.1 localhost my.cluster-abcdefghijk.us-east-1.neptune.amazonaws.com

然后可以使用类似的东西创建 ssh 隧道

ssh -i mypem.pem ec2-user@ec2-xx-xx-xx-xx.compute-1.amazonaws.com  -N -L 8182:my.cluster-abcdefghijk.us-east-1.neptune.amazonaws.com:8182

在您的 Java 代码中,您可以像这样构建连接:

Cluster.Builder builder = Cluster.build();
builder.addContactPoint("my.cluster-abcdefghijk.us-east-1.neptune.amazonaws.com");
builder.port(8182);
builder.serializer(Serializers.GRAPHBINARY_V1D0);
builder.enableSsl(true);
cluster = builder.create();
drc = DriverRemoteConnection.using(cluster);
g = traversal().withRemote(drc);

【讨论】:

  • 谢谢,您的代码有效,但我想使用 spring boot 从海王星数据库中获取数据。你有任何配置吗?我使用 IntelliJ IDE 编码,那么我必须为 app.properties 文件添加什么?
  • 我很高兴代码有效。但是,这确实是一个新问题。也许接受这个答案并为 Spring Boot 创建一个新问题,以便该领域的专家能够看到它?
猜你喜欢
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 2020-03-01
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
相关资源
最近更新 更多