65 lines
4.9 KiB
Markdown
65 lines
4.9 KiB
Markdown
---
|
||
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 聚焦最佳实践和团队协作)
|