Moderne Microservice-Architekturen sind ereignisgesteuert, reaktiv und choreografiert (im Gegensatz zur zentralen Steuerung über einen Orchestrator), sodass sie lose gekoppelt und leicht geändert werden können, oder?
TL; DR: Oh nein! Sie werden auf Hindernisse stoßen, wenn Sie den Ablauf von Ereignissen verstehen und verwalten.
In diesem Artikel werde ich meine Erfahrungen mit der Choreografie von Microservices zusammenfassen und auf die verschiedenen Hindernisse und Auswirkungen dieses Ansatzes hinweisen. Ich verwende ein typisches Geschäftsbeispiel - den "Customer Onboarding" -Prozess (je nach Branche wird möglicherweise davon gesprochen, dass ein Konto eröffnet wird ). Für die unten dargestellte Ereigniswarteschlange verwende ich Apache Kafka , aber keine Sorge, wenn Sie einen anderen Stapel verwenden, gelten dieselben Konzepte.
Choreographie von Mikrodiensten
Angenommen, die folgenden Dienste und Ereignisse bilden Ihr choreografiertes System:
Die Haupthindernisse, die bei der Verwendung dieses Ansatzes auftreten, können durch die folgenden Fragen beschrieben werden
- Wie ändere ich den Ereignisfluss?
- ? ?
- SLA ? - ? ? ?
- (, )?
, .
, . - . , , .
.
, , . :
. , .
. , . , . - .
?
, . - « », , . : “ ”, : “, , , ”. “ ‘ ’?”:
, . , , . , , . , — , . , , , . , , .
InfoQ (. “ ”) :
- ( Zipkin Jaeger)
- ( Elastic)
- ( ProM)
- ( Camunda)
, , , . . . Elastic — , . , - . , .
.
“ ” .
.
SLA, :
:
: ? ( ), .
, :
, :
Kafka Summit San Francisco 2018 (. “ Kafka Zeebe”), .
. “: .”
, , .
SLA
. ?
, . , . ( “ ” QCon London; . “ BPM ”).
(Java Spring Boot) “3 ”, Camunda, , ( GitHub). , .
, , . - ! , SLA , SLA.
, .
. “ ”. , ! . , -, -. .
“ ”, - , , , - , .
, . , . , , .
, , , , .
, , “” SOA BPM. . . , . , , GitHub.
, :
- , , “ ”. , . .
- , . , API . , , .
. , , -, .
. , , — , . , : . , , .
Dieser Beitrag wurde ursprünglich auf InfoWorld veröffentlicht . Ich habe kürzlich auf der QCon NYC (Präsentation) einen Vortrag zu diesem Thema gehalten .