63 lines
4.6 KiB
Markdown
63 lines
4.6 KiB
Markdown
---
|
||
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 副本数调整),两者适用于不同场景但可互补使用
|