2016-07-14 3 views
2

Kerberos認証にapache httpクライアントを使用しています。私は次の問題を抱えています。 サーバーからの401広告200の応答の間に、要求に応じて90〜300秒かかります。Apache Httpクライアント4.5.2 Kerberos認証に時間がかかりすぎる

私は、接続タイムアウト、ソケットタイムアウト、および接続マネージャタイムアウトを何も結果なしに設定しようとしました。サーバーから

401後の応答:ここから

client -> ACK 
server -> FIN, ACK 
client -> ACK 

-- break between 90 to 300 seconds -- 

client -> GET url 
server -> RST 

は200応答は、すべて[OK]を起動し

Wiresharkのは、次の私に語りました。私はなぜapacheのhttpクライアントが接続を閉じて、新しいものを開けないのか分からない、なぜそれが長くかかるのだろうか?

助けていただければ幸いです。

更新: さらに多くのKDCサーバーがあり、誰も利用可能ではないため、遅延の理由はmax_retries 3、要求タイムアウトあたり30秒です。 私はkrb5.confファイルを設定しようとしますが、Kerberosが、この考えていないようです:私は(ファイルにはSystem.outおよびSystem.errをリダイレクト)のKerberosログを有効にしている

[libdefaults] 
... 
kdc_timeout = 2000 
max_retries = 1 
+0

必ず読んでください:https://steveloughran.gitbooks.io/kerberos_and_hadoop/content/sections/errors.html >>野生の推測:あなたの問題は、UDP接続がKDCに届きませんでした。代わりにTCPを試してみてください。 .. –

答えて

1

を - と、すべてのKDCが私のクライアントに応答するわけではないことを発見しました。したがって、応答していないKDCは30秒で応答を遅らせました。 ×3回= 90秒。応答しないKDCごとに。

コンフィギュレーションファイルに設定することで解決:

max_retries = 1 kdc_timeout = 1500 (milliseconds)

更新:Kerberosの設定ファイルへのパスは動作しませんでした、URIの形式にあったので、私は絶対パスを使用します。

関連する問題