--- title: "Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 2" type: source tags: - EDA - Event-Driven - Architecture - OpenText date: 2024-09-17 last_updated: 2026-05-05 --- ## Source File - [[Cloud & DevOps/Public-Cloud-Learning-Sessions/09_Serverless_AI/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]] ## Summary(用中文描述) - 核心主题:事件驱动架构(EDA)进阶实践——最佳实践、团队独立性、常见消息模式 - 问题域:如何在企业云环境中设计、落地和治理事件驱动架构 - 方法/机制:Dr. Anil Giri(AWS 解决方案架构师)详解 EDA 三组件(事件生产者/消费者/代理)、事件路由器(EventBridge/SNS)与事件存储(SQS/Kinesis)、编排与编排模式(Choreography vs Orchestration)、幂等性、事件排序、团队去中心化所有权 - 结论/价值:帮助团队掌握 EDA 生产级最佳实践,在保证弹性和可扩展性的同时实现团队独立自治 ## Key Claims(用中文描述) - 事件代理分两类:事件路由器(EventBridge/SNS,按规则过滤路由)和事件存储(SQS/Kinesis,由消费者自己过滤) - EventBridge 比 SNS 功能更丰富,支持跨 AWS 服务的事件触发和工作流编排 - 幂等性(Idempotency)是处理 EDA 消息重复的关键机制,AWS Lambda 异步调用会自动重试 - SQS FIFO 和 Kinesis Data Streams 可保证事件顺序;标准 SQS 和 EventBridge 支持乱序处理 - 团队独立性应采用去中心化所有权,云卓越中心(Cloud CoE)提供基础设防,团队自主消费事件 - Fan-out 模式通过 SNS 主题或 EventBridge 规则将事件分发到不同团队 ## Key Quotes > "Event is nothing but it's like a change in the state or an update." — Dr. Anil Giri,EDA 定义 > "Everything fails every time means like whatever you have designed and whatever workload you is running it may fail any time." — 容错设计哲学 ## Key Concepts - [[Event-Driven-Architecture]]:一种软件架构范式,通过事件的生产、消费和响应实现松耦合通信 - [[Choreography]]:编排模式的一种,各微服务自主通信,无需中央协调者 - [[Orchestration]]:编排模式的一种,通过中央协调者(如 AWS Step Functions)控制工作流步骤 - [[Idempotency]]:幂等性——同一操作执行一次或多次产生相同结果的特性 - [[Fan-Out-Pattern]]:一对多消息分发模式,通过 SNS 主题或 EventBridge 规则将事件广播给多个消费者 - [[Competing-Consumer-Pattern]]:竞争消费者模式,同一时间只有一个消费者可处理消息(SQS 实现) - [[Dead-Letter-Queue-DLQ]]:死信队列,用于处理失败事件,防止消息丢失 ## Key Entities - [[AWS]]:Amazon Web Services,EventBridge/SQS/SNS/Lambda/Kinesis/AWS Step Functions 的托管方 - [[Amazon-EventBridge]]:AWS 事件路由器,支持规则过滤、跨服务触发、Schema 注册 - [[Amazon-SQS]]:AWS 消息队列服务,分标准队列(乱序/高效)和 FIFO 队列(有序/Exactly-Once) - [[Amazon-SNS]]:AWS 发布/订阅通知服务,实现 Fan-out 分发 - [[AWS-Lambda]]:AWS 无服务器函数,EDA 的核心事件消费者,异步调用自动重试 - [[AWS-Step-Functions]]:AWS 状态机编排服务,实现 Orchestration 模式 - [[Kinesis-Data-Streams]]:AWS 流数据服务,支持事件持久化和有序处理 - [[Dr.-Anil-Giri]]:AWS 解决方案架构师,Event Driven Architecture 系列主讲人 - [[OpenText]]:会议主办方,Public Cloud Learning Sessions 系列活动的组织者 ## 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]](Part 1 与 Part 2 为同一系列,Part 2 补充具体演示内容) - [[public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee]] ← related_to ← [[Event-Driven-Architecture]](Serverless 天然适合事件驱动,Lambda 是 EDA 的核心执行单元) - [[Event-Driven-Architecture]] ← depends_on ← [[Amazon-EventBridge]](EventBridge 是 AWS EDA 的核心事件总线) - [[Event-Driven-Architecture]] ← uses ← [[Idempotency]](幂等性是 EDA 生产级落地的必要保障) ## Contradictions - 与 [[ctp-topic-64-scaling-out-with-amazon-eks]] 在扩展方式上的差异——EDA 通过事件驱动异步扩展(消费者按需处理),EKS 通过容器编排横向扩展(Pod 副本数调整),两者适用于不同场景但可互补使用