使用Spring Cloud Stream和Spring State Machine创立事件驱动的微服务案例

作者 : 开心源码 本文共1087个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共219人阅读

在事件驱动的微服务架构中,领域事件的概念对于每个服务的行为至关重要。随着微服务架构的普及,CQRS(Command Query Responsibility Segregation)与Event Sourcing结合使用的流行做法在应用程序中变得越来越普遍。

此示例项目演示了如何使用Spring Boot和Spring Cloud构建事件驱动的微服务的端到端示例。该项目旨在展现构建解决HTTP和AMQP协议以交换消息的微服务的理想开发过程。

演示的概念

  • Event Sourcing
  • 事件流解决
  • 修复部分失败
  • 补偿交易事务
  • 最终的一致性
  • 超媒体事件日志
  • 无服务器函数

涉及Spring项目

  • Spring Boot
  • Spring Cloud Netflix
  • Spring Cloud Stream
  • Spring Cloud Data Flow
  • Spring Statemachine

架构

这个案例架构中的每个微服务分解为三个不同的可独立部署的组件。

上图详细说明了Accounts的有界上下文的系统体系结构,其中包括每个Backing ServiceMicroserviceAWS Lambda Function的可部署单元。

要构建和运行试验项目,请运行以下命令:

mvn clean install -DskipTests -DskipDockerBuild

您需要在本地计算机上运行Apache Kafka,Apache Zookeeper和Redis。构建过程完成后,您可以在本地计算机上启动Spring Cloud Data Flow服务器,该服务器将协调每个微服务应用程序。

在启动Spring Cloud Data Flow之前,请确保您正在运行每个支持服务,如上所述。此外,您将需要启动Eureka服务器。

cd ./platform-services/discoverymvn spring-boot:run

一旦Eureka启动,您即可以启动Spring Cloud Data Flow服务器,该服务器将引导Spring Cloud Stream板块。

cd ./platform-services/data-flow-servermvn spring-boot:run

将导入Spring Cloud Stream应用程序,并且事件流将在数据流服务器的streams中部分可用。负载模拟器流板块将开始将事件缓慢地泵压入系统,您将能够在分析部分中看到事件,您可以在其中看到计数器测量事件负载随时间的变化。

无服务器函数

此参考体系结构中的每个有界上下文都包含一组动作映射函数,这些函数可以部署为无服务器函数。要理解有关其在实践中的工作原理的更多信息,请查看帐户工作者应用程序的文档。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 使用Spring Cloud Stream和Spring State Machine创立事件驱动的微服务案例

发表回复