如何驯服事件驱动的微服务

如何驯服事件驱动的微服务

现代微服务架构是事件驱动的,反应式的和编排的(与通过协调器进行的集中控制相反),这使它们可以松散耦合并且易于更改,对吗?

TL; DR:哦,不!您将在理解和管理事件流中遇到障碍。

在本文中,我将总结我在微服务编排方面的经验,并指出这种方法的各种障碍和含义。我使用的是一个典型的业务示例- “客户入职”流程(取决于行业,您可能会在开设帐户时听说过)。对于下面介绍的事件队列,我使用的是Apache Kafka,但是请不要担心如果使用其他堆栈,则将应用相同的概念。





微服务编排



假设以下服务和事件构成了您的编排系统:



如何驯服事件驱动的微服务

使用此方法时出现的主要障碍可以通过以下问题来描述



  • 如何更改事件流程?
  • ? ?
  • SLA ? - ? ? ?
  • (, )?


, .







, . - . , , .



如何驯服事件驱动的微服务



.



, , . :



如何驯服事件驱动的微服务



. , .



. , . , . - .





?



, . - « », , . : “ ”, : “, , , ”. “ ‘ ’?”:



, . , , . , , . , — , . , , , . , , .

如何驯服事件驱动的微服务



InfoQ (. “ ”) :



  1. ( Zipkin Jaeger)
  2. ( Elastic)
  3. ( ProM)
  4. ( 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 . , , .


. , , -, .







. , , — , . , : . , , .





这篇文章最初发表在InfoWorld上我最近还在QCon NYC (演示文稿)上就此主题进行了演讲




All Articles