--- title: "Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 2 - 20240917" type: source tags: - EDA - Event-Driven - Architecture - OpenText date: 2026-04-14 --- ## Source File - [[Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091.md]] ## Summary(用中文描述) - 核心主题:事件驱动架构(EDA)进阶最佳实践与团队协作模式 - 问题域:如何在云原生环境下构建可扩展、松耦合、高可用的分布式事件驱动系统 - 方法/机制:事件代理(Event Router / Event Store)、编排与编排、幂等性、事件排序、团队自主权、去中心化所有权 - 结论/价值:EDA 的核心价值在于解耦应用、实现逻辑分解;事件代理选型(EventBridge vs SNS vs SQS vs Kinesis)需根据功能丰富度和过滤能力权衡;幂等性是处理异步重试的关键;SQS FIFO / Kinesis 保证事件顺序;去中心化团队所有权优于集中式 ## Key Claims(用中文描述) - 事件驱动架构通过解耦应用,实现业务功能的逻辑分解,支持独立扩展和监控,最小化故障影响范围 - 事件代理分为两类:事件路由器(SNS / EventBridge,支持过滤和路由)和事件存储(SQS / Kinesis,需消费者自行过滤) - EventBridge 比 SNS 功能更丰富,可让源产品的事件触发其他 AWS 服务 - 编排(Orchestration)发生于同一微服务内部,而编舞(Choreography)则是不同微服务之间的通信模式;AWS Step Functions 是状态机工作流服务 - 稀疏事件(sparse events)体积小、适合频繁变化数据,但消费者可能需要额外查询详情;完整状态事件包含更多细节,但受 EventBridge 负载大小限制 - Lambda 异步调用会自动重试,因此幂等性对于处理订单和支付等场景至关重要 - 无序事件可使用 EventBridge 或标准 SQS;有序事件必须使用 SQS FIFO 或 Kinesis Data Streams - 去中心化团队所有权优于集中式所有权,SNS Topic / EventBridge Rules 实现扇出模式 - EventBridge 最佳实践:每个订阅者使用单一规则、避免为自定义事件使用默认事件总线、使用死信队列处理失败事件 ## Key Quotes > "Event is nothing but it's like a change in the state or an update." — 事件即状态变化 > "Everything fails every time means like whatever you have designed and whatever workload you are running it may fail any time." — 一切皆可能失败 ## Key Concepts - [[Event-Driven-Architecture]]:通过事件在生产者和消费者之间传递信息,实现松耦合的架构模式 - [[EventBroker]]:事件代理,分事件路由器(Event Router)和事件存储(Event Store)两种类型 - [[Idempotency]]:幂等性,确保同一请求多次执行结果相同,避免异步重试导致副作用 - [[Choreography]]:编舞模式,不同微服务之间通过事件进行通信和协作 - [[Orchestration]]:编排模式,在同一微服务内部协调多个步骤的状态转换 - [[Fan-Out-Pattern]]:扇出模式,通过 SNS Topic 或 EventBridge Rules 将事件分发给多个消费者 - [[Competing-Consumer-Pattern]]:竞争消费者模式,同一时间只有一个消费者能消费消息,通过 SQS 实现 - [[Dead-Letter-Queue]]:死信队列,用于处理失败的事件 ## Key Entities - [[AWS-EventBridge]]:AWS 事件代理服务,功能比 SNS 更丰富,支持基于规则的路由和第三方集成 - [[AWS-SNS]]:AWS 简单通知服务,事件路由器,支持主题订阅和扇出 - [[AWS-SQS]]:AWS 简单队列服务,事件存储,支持标准队列和 FIFO 队列 - [[AWS-Kinesis]]:AWS 流数据平台,支持有序事件流 - [[AWS-Step-Functions]]:AWS 状态机工作流服务,用于服务编排 - [[AWS-Lambda]]:AWS 无服务器计算服务,事件驱动执行的典型载体 - [[OpenText]]:会议主办方,提供 Public Cloud Learning Sessions 系列培训 - [[Cloud-Center-of-Excellence]]:云卓越中心,负责基础平台建设 ## Connections - [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-1-2024091]] ← part_of ← [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]] - [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]] ← extends ← [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]] - [[AWS-EventBridge]] ← used_by ← [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]] - [[AWS-SQS]] ← used_by ← [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]] - [[AWS-Lambda]] ← integrates_with ← [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]] ## Contradictions - 无明显冲突;本 Part 2 与 Part 1 为互补关系(Part 1 聚焦基础概念和核心组件,Part 2 聚焦最佳实践和团队协作)