Java-Webservice-Client, der Failover/Cluster des Webservice-Servers handhabt

Ich suche nach einer Java-Bibliothek, die mir helfen könnte, eine Webservice-Methode aufzurufen, und die mehrere Webserver verarbeiten kann, falls einige von ihnen nicht antworten. Die Idee ist, Failover zu ermöglichen, wenn ein Cluster von Servern denselben Webdienst bereitstellt.

Eine Art Szenario:

  • Client ruft Methode A auf Server 1 auf
  • Server 1 ist ausgefallen
  • versuchen Sie automatisch Server 2
  • ...

Gibt es eine solche Bibliothek?

Fragen Sie nur nach der Clientseite, einem App-Entwickler, der versucht, auf verschiedene Webdienstserver zuzugreifen? Oder meinen Sie serverseitiges Failover-Handling, das von einem Systemadministrator eingesetzt werden soll? Ihre Frage scheint beides zu erwähnen.
Meine Frage bezieht sich nur auf die Client-Seite. Ich habe vergessen zu erwähnen, dass es einen jax-ws-Client verwendet.
Sie sollten Ihre Frage mit zusätzlichen Informationen bearbeiten, anstatt sie als Kommentare zu posten. Verwenden Sie den Link „Bearbeiten“ unter Ihrer Frage (wenn Sie einen Webbrowser anstelle einer App verwenden).

Antworten (1)

HTTP-Client-Bibliotheken

Normalerweise führen wir diese Art von sukzessiven URL-Aufrufen direkt in unserem eigenen Code durch, wobei wir HTTP-Client-Bibliotheken zur Unterstützung verwenden.

HTTP-Client-Bibliotheken wie Apache HttpComponents Google HTTP Client Library und jsoup ermöglichen es Ihnen, eine Zeitüberschreitung festzulegen, und sie lösen Ausnahmen aus, wenn verschiedene Probleme auftreten, z. B. ein 404 .

Sie schreiben also eine Reihe von kaskadierenden ifAnweisungen, die jede Ziel-URL der Reihe nach ausprobieren, bis eine erfolgreich ist. Das Festlegen dieser URLs, Timeouts und der Ausnahmebehandlung erfordert ungefähr denselben Code wie das Konfigurieren einer Art Bibliothek.

Ich habe vergessen zu erwähnen, dass myclient ein jax-ws-Client ist und es daher vorziehen würde, diese Logik nicht an verschiedenen Stellen neu implementieren zu müssen