首页 > 解决方案 > 如何使用 ssh Java 连接到 Amazon Neptune

问题描述

我已经设置了一个 ssh 隧道以允许连接到 NeptuneDB,现在我想使用本地计算机上的 Java 通过 ssh 连接到 NeptuneDB,那么有什么办法吗?

标签: javasshgremlingraph-databasesamazon-neptune

解决方案


是的,这是可能的。您需要将 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);

推荐阅读