4.9 KiB
4.9 KiB
title, type, tags, date
| title | type | tags | date | ||||
|---|---|---|---|---|---|---|---|
| Public Cloud Learning Sessions (OpenText) - Event Driven Architecture Part 2 - 20240917 | source |
|
2026-04-14 |
Source File
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 聚焦最佳实践和团队协作)