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 で Locator に到達します
  2. ロケーターは、172.xxx:somePort で実行されているサーバーを検出します。
  3. Locator が内部ホスト名を Windows クライアントに送り返す
  4. Windows JDBC クライアントはこれに接続しようとします:

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

52.xxx の IP アドレスのみが実際にインターネットで公開されているため、JDBC 接続は失敗します。

解決するには、Windows ホスト ファイルを変更して、次のマッピングを追加する必要がありました。

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

私のクライアントが「ホスト」ファイルをハックする必要がないように、より良い方法についてアドバイスしてください。

4

1 に答える 1

1

サーバーで「prefer-netserver-ipaddress」プロパティを設定して、IP アドレスを強制的にクライアントに送り返すことができます。コマンドライン (詳細はこちら)

ほとんどのシナリオでは、内部 IP と外部 IP の両方にケータリングするジョブを実行するのは IP アドレスであるため、デフォルトではホスト名に変換されます (つまり、サブネット内から検索した場合、内部 IP アドレスに解決されますが、外部からは解決されます)。外部 IP アドレスへ)。

于 2016-07-23T01:10:29.723 に答える