java - 如何使用 ssh Java 连接到 Amazon Neptune
问题描述
我已经设置了一个 ssh 隧道以允许连接到 NeptuneDB,现在我想使用本地计算机上的 Java 通过 ssh 连接到 NeptuneDB,那么有什么办法吗?解决方案
是的,这是可能的。您需要将 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);
推荐阅读
- r - 选择我的输出中的任何单个元素到 S4 模式
- php - 不知道如何将android数据传递给php文件以用户身份登录到sql数据库
- vba - 运行时错误后自动重新初始化 VBA 全局变量
- javascript - 检索所有用户的数据,然后在 html 表中显示他们的用户 ID 并通过按钮更新
- go - 获取写入文件的字节的偏移量/位置
- bash - 终端中的 UTF-8 unicode 编码
- node.js - 如何在 GatsbyJS 中对属于特定类别的帖子列表进行分页
- python - 在一副纸牌上的随机迭代
- java - 如何将数据从 html 表单发送到 java 服务器套接字?
- android - Flutter Gridview 不更新来自 firebase 的值