Files
nexus/wiki/sources/public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091.md

65 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 聚焦最佳实践和团队协作)