Spring Cloud Stream: Event Driven Microservices, Saga, Kafka
Spring Cloud Stream:事件驱动微服务,Saga,Kafka
Event Driven Architectural Patterns with Kafka and Spring Cloud Stream
基于事件驱动的架构模式与Kafka和Spring Cloud Stream结合使用
教程演示🔗
学生数量:530 个学生
上次更新时间:2024年1月
教程评分:5.0
教程语言:英语
教程字幕:中文、英语字幕
本课程包括:18 小时 长的随选视频、在移动设备和电视上观看、13 篇文章、结业证书、完整的永久访问权字幕
学习内容
1、响应式事件驱动微服务
2、Saga模式(Saga Pattern)和编排(Choreography)是两个不同的概念,它们在软件设计和分布式系统中扮演着重要角色。
1. Saga模式:Saga是一种处理分布式事务的编程模式,特别适用于那些需要跨多个服务进行复杂业务流程协调的情况。它通过一系列相互关联的步骤(称为”Actors”或”Sagas”)来确保在整个操作过程中的一致性,即使在某些步骤失败时也能回滚到一个可接受的状态。每个步骤代表一个服务调用,整个过程类似于一个长篇故事(Saga),因此得名。
2. 编排(Choreography):编排模式关注的是分布式系统中的服务交互,而不是事务处理。在这种模式下,各个服务独立运行,但通过定义明确的接口和协议规则,它们协同工作以实现某个业务目标。编排通常描述的是一个预定义的交互序列,而不是像Saga那样处理故障恢复和补偿逻辑。编排更像是一个舞蹈编排,各个服务按照预先编排的顺序执行动作。
3、 Saga Pattern Orchestrator 可以翻译为“Saga模式orchestrator”。这是一个在微服务架构或分布式系统中使用的概念,它描述了一种组织和管理长期(跨多个步骤)业务流程的方法。Saga Pattern(Saga模式)是一种应对分布式系统中的复杂事务处理问题的策略,通过将一系列相关的操作视为一个单一的“ saga”,确保这些操作要么全部成功,要么全部回滚,即使在途中遇到失败。Orchestrator(调度器、协调器)则是管理和协调这些 saga 顺序执行的组件。
4、Spring Cloud Stream 是一个框架,它扩展了 Spring Boot 应用程序的功能,使其能够轻松地与消息队列和事件驱动的系统集成。它提供了一种声明式的编程模型,允许开发者将应用程序配置为从源(如 RabbitMQ、Kafka、HTTP 等)读取数据,处理后发送到目标(如数据库、API、其他服务等)。Spring Cloud Stream 通过一组模块(如 binder、processor 和 sink)简化了这种集成,使得微服务架构中的消息传递变得更加灵活和易于管理。
5、事务性出站模式(Transactional Outbox Pattern)
6、扇出/扇入模式(Fan-out/Fan-in Pattern)
7、内容基于路由(Content-Based Routing)
8、端到端集成测试
要求
1、Java reactive programming是指一种编程范式,它强调事件驱动和非阻塞的、异步的处理方式。在Java中,Reactive Programming通常与Stream API、函数式编程以及响应式编程模型(如Reactor、RxJava或Project Reactor)相关联。这种编程模型使得开发者能够以声明性的方式处理数据流,即定义输入如何转换为输出,而不是明确指定操作的顺序。它适用于需要处理大量数据或高并发场景,例如网络I/O、数据库查询、事件处理等。
2、Kafka是一个分布式流处理平台,由Apache软件基金会开发。它主要用于构建高吞吐量、低延迟的事件驱动系统,常用于日志收集、实时数据处理和消息队列场景。Kafka的核心组件包括生产者(Producer)、消费者(Consumer)和主题(Topic),允许在分布式系统中高效地发布和消费消息。
3、对于印度口音感到舒适自在
4、Spring译为”春天”。在软件开发中,Spring是一个流行的开源框架,它是一个轻量级的Java企业应用程序开发框架,主要用于依赖注入和 inversion of control (IoC)。
课程介绍
**课程项目更新,适用于最新Spring Boot 3.2**
**响应式事件驱动微服务与Saga模式**
本课程专为对学习事件驱动微服务、Saga模式以及使用Spring Cloud Stream、Kafka和Java反应式编程等各种架构模式感兴趣的高级或技术经理级工程师设计。
课程结束时,参与者将深入理解并熟练掌握以下模式:
– Saga协调模式
– Saga指挥者模式
– 事务性出站模式
– 广播/多播(Fan-Out/Fan-In)
– 内容基于路由/动态路由
以下是本课程的内容安排:
– 课程首先介绍Spring Cloud Stream,一个用于开发事件驱动微服务的框架。学员将学习如何使用Reactive Kafka绑定,并通过Java反应式和函数式接口练习消息生产、消费、处理和确认。还将涵盖使用嵌入式Kafka进行集成测试的内容。
– 接下来,学员将深入了解Stream Bridge,一个用于将任意消息发送到Kafka主题的工具。Stream Bridge支持基于内容的路由,实现动态路由,甚至在错误处理中作为死信队列生产者的角色。
– 然后,我们将进入复杂应用的设计阶段,涉及多个微服务。学员将学习如何构建一个涉及所有服务的复杂工作流,重点关注Saga模式的实现。我们将探讨Saga指挥者和Saga协调两种风格,使学员理解中央协调器的角色,或者各个Saga参与者的事件观察和反应。
– 最后,课程涵盖事务性出站模式,解决可靠地将消息发送到Kafka主题的问题。该模式利用“出站”表作为代理Kafka主题。应用程序数据库事务的一部分,消息先插入到此表中。定期查询表格以确保消息已发送、标记为“已发送”且不会重复发送。
**”提升您的技术管理技能!深入学习Spring Boot 3.2下的事件驱动微服务与Saga模式。这门专为高级工程师设计的课程,将带您探索Spring Cloud Stream、Kafka和Java反应式编程,掌握 Saga协调、指挥者模式及事务性出站等关键架构。从基础的Reactive Kafka绑定,到Stream Bridge的动态路由,再到复杂工作流设计和故障处理策略。立即加入,打造高度可靠的微服务体系!”**