Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fault Tolerance in EE Microprofile

A6569b59297bd3e7cbda6de64e1e506b?s=47 Tim Zöller
December 01, 2018

Fault Tolerance in EE Microprofile

Lightning Talk for JUG Mainz in 2018. Shows simple examples on how to use fault tolerance in Eclipse Microprofile. German slides.

A6569b59297bd3e7cbda6de64e1e506b?s=128

Tim Zöller

December 01, 2018
Tweet

Transcript

  1. EE Micro Fault Tolerance JUG Mainz, 24.01.2018

  2. Tim Zöller Senior IT Consultant Seit 2014 bei ilum:e informatik

    ag in Mainz, vorher Softwareentwickler in der Chemieindustrie Ich wohne in Freiburg, vorher Mainz, vorher Remagen, vorher (bei) Koblenz Java begeistert seit 2008, Clojure-Fan seit 2015, Blockchain-Fanboy seit 2016 • Softwareentwicklung • Musik machen Interessen Über mich Clojure 40 % Business Process Management 80 % Java 90 % Architektur 70 % Blockchain 60 % Hallo! 2
  3. Applikationen werden als Single-Jar ausgeliefert. Das aufwändige Konfigurieren von Application

    Servern sowie das deployment darauf entfallen Leicht Im Gegensatz zu Spring gibt es bei EE Microprofile keinen Vendor-Lock in. Das Projekt wird von der Eclipse Foundation geführt. Frei JEE Know How ist weit verbreitet unter Entwicklern. Der JEE Standard wird seit vielen Jahren benutzt um robuste Webanwendungen zu entwickeln. Standard EE Microprofile JEE (nicht nur) für Microservices EE M icro 3
  4. • jax-rs • cdi-1.2 • jsonp-1.0 1.0 • mpConfig-1.0 1.1

    • mpConfig-1.1 • mpFaultTolerance-1.0 • mpHealth-1.0 • mpMetrics-1.0 • mpJwt-1.0 1.2 • mpTracing-1.0 • mpOpenApi-1.0 • mpRestClient-1.0 • mpMetrics-1.1 • mpConfig-1.2 1.3 • jaxrs-2.1 • cdi-2.0 • jsonp-1.1 • jsonb-1.0 2.0 10/2016 08/2017 10/2017 01/2018 ????? TIMELINE Entwicklungsstand und Roadmap 4
  5. Wer macht mit? Die größten Contributoren 5

  6. Retry Versucht nach einem (definierten) Fehler einen erneuten Serviceaufruf. Maximale

    Retryanzahl, Intervallgröße und Art der Exception welche einen Retry auslöst kann festgelegt werden. Timeout Beschränkt die maximale Wartezeit, die für einen Service erlaubt ist. Dieser Wert kann konfiguriert werden. Fallback Definiert einen Fallbackhandler oder eine Fallbackmethode. Ist mit allen anderen Fault Tolerance Mechanismen kombinierbar, kann beispielsweise Fehlercodes oder Daten aus Caches besorgen. Circuitbreaker Schützt nach vordefinierten Regeln instabile Services. Einstellbar sind, bei welchem Anteil von nicht erfolgreichen Servicecalls der Service “offline” geschaltet wird, wie lange dieses Intervall dauert und unter welchen Bedingungen der Service wieder aktiviert wird. Bulkhead Beschränkt die maximale Anzahl gleichzeitiger Verbindungen gegen einen Service, um ihn vor Überlastung zu schützen. Die Anzahl der Verbindungen kann festgelegt werden. Fault Tolerance Mechanismen Recovery und Schutz von Services 6
  7. Retry Denselben Call noch einmal versuchen 7

  8. Timeout Begrenzung der Aufrufdauer 8

  9. Fallback Ausweichszenario im Ernstfall 9

  10. Circuitbreaker Schutz vor Überlastung 10

  11. Bulkhead Begrenzung paralleler Calls 11

  12. https://microprofile.io Offizielle Webseite des Eclipse Projekts. Informationen zur Roadmap, aktuellen

    Releases, Dokumentation und Spezifikation. https://openliberty.io Webseite des Open Liberty Projekts, mit vielen Tutorials und Ressourcen zur Verwendung von MicroProfile, Informationen zur Roadmap, Dokumentation und Spezifikation. http://wildfly-swarm.io Webseite des Wildfly Swarm Projekts, mit Beispielen und einem Dependency Generator für neue Swarm Projekte. https://www.payara.fish/payara_micro Webseite für Payara Micro, inklusive Guide “Demystifying Microservices for Java EE Developers” Links und RessourceN … falls ihr euch alles noch mal in Ruhe ansehen wollt 12
  13. https://github.com/javahippie/FaultToleranceTest Beispielprojekt auf Github Zum Nachvollziehen und spielen 13

  14. Vielen Dank! Fragen später nach dem Vortragsblock 14