2

vertx HttpClient に問題があります。これは、vertx とプレーン Java を使用して GET をテストすることを示すコードです。

    Vertx vertx = Vertx.vertx();
    HttpClientOptions options = new HttpClientOptions()
            .setTrustAll(true)
            .setSsl(false)
            .setDefaultPort(80)
            .setProtocolVersion(HttpVersion.HTTP_1_1)
            .setLogActivity(true);
    HttpClient client = vertx.createHttpClient(options);

    client.getNow("google.com", "/", response -> {
        System.out.println("Received response with status code " + response.statusCode());
    });
    System.out.println(getHTML("http://google.com"));

getHTML() はここから: How do I do a HTTP GET in Java?

これは私の出力です:

<!doctype html><html... etc <- correct output from plain java
Feb 08, 2017 11:31:21 AM io.vertx.core.http.impl.HttpClientRequestImpl
SEVERE: java.net.UnknownHostException: failed to resolve 'google.com'.     Exceeded max queries per resolve 3 

しかし、頂点は接続できません。ここで何が問題なのですか?私はプロキシを使用していません。

4

4 に答える 4

3

参考までに:この質問とここのtsegismontのコメントで説明されているように、解決策はフラグvertx.disableDnsResolverを次のように設定することtrueです:

-Dvertx.disableDnsResolver=true

ここで説明されているように、JVM DNS リゾルバーにフォールバックするには:

場合によっては、JVM 組み込みリゾルバーを使用することが望ましい場合があります。JVM システム プロパティ -Dvertx.disableDnsResolver=true がこの動作を有効にします。

kubernetes 環境の redis クライアントで、この DNS 解決の問題を確認しました。

于 2019-11-26T15:50:44.393 に答える