1

SnappyData v.0.5

在我们的 AWS SnappyData 实例中,我们具有以下属性:

  1. 公共IP:52.xxx(暴露在互联网上)
  2. 私有/内部 IP:172.xxx(仅在 AWS 内部公开)
  3. 私有/内部名称:ip-172-xxx.us-west-2.compute.internal(仅在 AWS 内部公开)

为了从我的 Windows 客户端连接 JDBC,我使用如下 JDBC URL:

jdbc:snappydata://52.xxx:1527/

连接产生的事件顺序是:

  1. JDBC 客户端连接到 AWS 并在 172.xxx:1527 处到达定位器
  2. 定位器找到运行在 172.xxx:somePort 的服务器
  3. 定位器将内部主机名发送回 Windows 客户端
  4. Windows JDBC 客户端尝试连接到此:

ip-172-xxx.us-west-2.compute.internal

JDBC 连接失败是因为只有 52.xxx IP 地址对 Internet 真正公开可用。

为了补救,我不得不更改我的 Windows 主机文件,添加以下映射:

52.x.x.x         ip-172-x-x-x.us-west-2.compute.internal

请提供更好的方法,这样我的客户就不需要破解他们的“主机”文件。

4

1 回答 1

1

您可以在服务器上设置“ prefer-netserver-ipaddress ”属性以强制将 IP 地址发送回客户端,例如 -prefer-netserver-ipaddress=... 或 -J-Dgemfirexd.prefer-netserver-ipaddress=... on命令行(请参阅此处的详细信息)

默认是转换为主机名,因为在大多数情况下,它是同时满足内部 IP 和外部 IP 地址的工作(即,如果从子网内部查找,则它解析为内部 IP 地址,但从外部它解析到外部 IP 地址)。

于 2016-07-23T01:10:29.723 回答