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

栏目: Java · 发布时间: 6年前

内容简介:这是一个事件流处理微服务开源github示例。在事件驱动的微服务架构中,领域事件的概念对于每个服务的行为至关重要。随着微服务架构的普及,CQRS(Command Query Responsibility Segregation)与Event Sourcing结合使用的流行做法在应用程序中变得越来越普遍。此示例项目演示了如何使用Spring Boot和Spring Cloud构建事件驱动的微服务的端到端示例。该项目旨在展示构建处理HTTP和AMQP协议以交换消息的微服务的理想开发过程。

这是一个事件流处理微服务开源github示例。

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

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

演示的概念:

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

涉及Spring项目:

架构

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

使用Spring Cloud Stream和Spring State Machine创建事件驱动的微服务案例 上图详细说明了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/discovery
mvn spring-boot:run

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

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

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

无服务器函数

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


以上所述就是小编给大家介绍的《使用Spring Cloud Stream和Spring State Machine创建事件驱动的微服务案例》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spring Cloud微服务实战

Spring Cloud微服务实战

翟永超 / 电子工业出版社 / 2017-5 / 89

《Spring Cloud微服务实战》从时下流行的微服务架构概念出发,详细介绍了Spring Cloud针对微服务架构中几大核心要素的解决方案和基础组件。对于各个组件的介绍,《Spring Cloud微服务实战》主要以示例与源码结合的方式来帮助读者更好地理解这些组件的使用方法以及运行原理。同时,在介绍的过程中,还包含了作者在实践中所遇到的一些问题和解决思路,可供读者在实践中作为参考。 《Sp......一起来看看 《Spring Cloud微服务实战》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具