Ich benutze Apache HTTP-Client für Kerberos-Authentifizierung. Ich habe folgendes Problem: zwischen den 401 ad 200 Antworten vom Server dauert es zwischen 90 und 300 Sekunden, je nach Anforderung.Apache Http Client 4.5.2 Kerberos-Authentifizierung dauert zu lange
Ich habe versucht, die Verbindung Timeout, Socket-Timeout und Verbindungs-Manager-Timeout ohne Ergebnis zu setzen.
Wireshark sagt mir folgende:
nach 401 Antwort vom Server:
client -> ACK
server -> FIN, ACK
client -> ACK
-- break between 90 to 300 seconds --
client -> GET url
server -> RST
von hier aus startet die 200-Antwort, alles ok. Ich verstehe nicht, warum Apache http Client die Verbindung nicht schließt und eine neue öffnet, warum es so lange dauert?
Jede Hilfe wäre zu schätzen.
Update: Es gibt mehr KDC-Server und nicht jeder ist verfügbar, der Grund für die Verzögerung ist die max_retries 3 und 30 Sekunden pro Anfrage Timeout. versucht ich krb5.conf Datei zu konfigurieren, aber es scheint, dass Kerberos dies nicht berücksichtigen:
[libdefaults]
...
kdc_timeout = 2000
max_retries = 1
Ein Muss-lesen: https://stevelogran.gitbooks.io/kerberos_and_hadoop/content/sections/errors.html >> wilde Vermutung: Ihr Problem könnte mit UDP-Verbindungen im Zusammenhang mit dem KDC nicht in Verbindung stehen, versuchen Sie stattdessen TCP. .. –