## 视频
<video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT_-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video>
## 导读
异步通信和事件驱动架构是构建分布式应用程序的核心。[Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) 是一个完全管理的 Serverless 事件总线,有助于协调分布式和松散耦合的微服务,以实现业务功能。在本讲座中,了解 [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) 的特征,以及它如何在 Serverless 架构中发挥关键作用。学习事件驱动架构的主要元素和一些最佳实践。通过真实世界的用例,探索 [Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail) 的功能如何支持在 Serverless 环境中实现高级架构模式。
## 演讲精华
<font color = "grey">以下是小编为您整理的本次演讲的精华,共1600字,阅读时间大约是8分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font>
在亚马逊云科技的re:Invent上,伊恩·马辛厄姆发表了一场关于高级事件驱动模式及使用[Amazon EventBridge](https://aws.amazon.com/cn/eventbridge/?trk=cndc-detail)的演讲。他对能够就EventBridge这一他非常喜欢且视为亚马逊云科技的服务之一进行演讲感到兴奋。目前,他与同事卢克共同撰写一本关于在亚马逊云科技上实现[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化的书籍,预计明年初出版。他认为re:Invent是一个庆祝技术和共享知识的平台。
在演讲中,伊恩详细介绍了他将采用逐步递增的方式来安排这次会议。他从事件驱动架构的基本原理出发,解释了为何以及如何EventBridge能融入其中。在深入探讨特定的事件驱动模式之前,他还分享了关于事件的实践建议。最后,他以解答观众关于EventBridge和事件驱动架构的常见问题作为总结。
回顾去年的re:Invent,伊恩提到了韦纳·沃格尔斯强调的异步性和事件驱动架构的重要性。要理解异步性,首先要了解同步性。他给出了一个同步流程的例子——应用程序向服务请求信息(如产品价格),然后服务返回价格数据,用户满意。接着,他提供了一个异步通信的例子——订单服务和支付服务之间的交互。在授权后,订单服务需要在发货订单前获取资金状况。将付款ID发送到支付服务后,订单服务不再等待响应。支付服务会发送一个确认和批处理ID。订单服务此时面临何时以及多久进行一次针对支付服务的状态轮询的问题。
伊恩指出,这种交互导致了紧耦合问题。他提出了一个替代方案,即支付服务通过事件而非订单服务轮询来推送状态更新。这样,订单服务能在收到捕捉事件后立即做出反应并发货。
这是一篇关于人工智能在医疗领域的应用的文章。近年来,人工智能技术在各个领域取得了显著的进步,特别是在医疗领域。在这个领域,人工智能已经开始改变医生和病人的生活。通过使用先进的算法和技术,人工智能可以帮助医生更准确地诊断疾病,提高治疗效果,降低医疗成本。
例如,人工智能可以通过分析大量的医学图像和数据,帮助医生更准确地识别疾病的早期迹象。这使得医生能够在病情恶化之前及时采取行动,从而提高患者的生存率和生活质量。此外,人工智能还可以协助医生制定个性化的治疗方案,以满足每个患者的独特需求。
然而,尽管人工智能在医疗领域的应用取得了显著的成果,但仍然存在一些挑战。首先,医学数据的收集和分析需要大量的时间和精力,而且可能存在错误。此外,人工智能技术的普及和应用也需要医生和患者对其有足够的信任。为了克服这些挑战,研究人员正在努力提高人工智能的准确性和可靠性,以便更好地服务于医疗行业。
总之,人工智能在医疗领域的应用为提高诊断准确性、优化治疗方案和提高患者生活质量提供了巨大的潜力。随着技术的不断发展和改进,我们有理由相信,人工智能将在未来的医疗领域发挥更加重要的作用。
代码被视为一种负担"以及"你总是需要在昨天的基础上进行修改。"这表明了尽量减少不必要自定义代码的重要性,并尽可能利用原生集成。
例如,API网关可以直接与EventBridge集成,将事件传输至相关服务,而不需要在不同服务间传递数据的中间Lambda函数。正确运用合适的工具才能高效地完成工作。
接下来,Ian讨论了一种提高可靠性的方法——事件重放模式。该模式可以在系统恢复可用性后重新播放事件以处理故障。例如,EventBridge的存档和重放功能可以在网络中断期间储存事件,然后在连接恢复后重新播放这些存档的事件。
存档和重放功能允许设置一个过滤器模式,将特定事件存档一段特定时间,然后从该时间段重放这些已存档的事件。
Ian建议在重放事件时添加一个"重放"属性,以防止无限循环的发生。由于EventBridge的存档和重放功能并未提供顺序保证或控制重放速度的功能,下游服务可能需要额外的缓冲。
例如,一个服务能够在发出请求前检查其数据库依赖状态。若电路处于开启状态,表示数据库运行不正常,此时该服务能够立即返回错误,而非等待不可避免的超时。
Ian提出了一种更为稳健的实施策略,即通过一个专门的“电路管理器”服务来监控其下游的运行状况,并实时更新集中存储如DynamoDB的状态。管理器还可将状态更新作为事件或参数值推送至其他服务,以便告知它们电路的状况。
在探讨断路器问题时,一个关键点是仅执行快速失败还是同时也实施重试机制以处理进行中请求。对于不那么重要的流程,快速失败可能尚可接受;但对于诸如客户订单等重要交易,重试机制确保在恢复过程中不会丢失任何数据。
接着,Ian讨论了编排模式,从服务内编排开始。此种形式将协调组件的逻辑保留在单个服务的范围内。例如,一个服务可以利用Amazon Step Functions来协调其业务逻辑工作流程,同时仍保持在其自身的范围内。
下一个层次是跨服务编排,其中的编排器负责协调多个服务。Ian提供了一个实例,演示了编排器如何利用API和事件与其领域内的其他微服务进行沟通。
最后是分布式编排,其中一个领域的编排器需与其他领域的外部服务协同合作。他使用一个保险理赔处理的视觉示例,展示了不同领域之间如何处理与外部合作伙伴(如车辆修理厂)的交互过程。
分布式编排器可使用附带任务令牌的Amazon Step Functions来发射事件,直至其他域的外部服务回应并发送他们的令牌,从而使它能协调不同的、分布式的活动。
Ian还谈到了边界上下文模式,此模式采用独立的“门将”事件总线将领域内部事件总线与外部通信隔离开。内部总线处理所有的内部微服务,而门将总线则管理跨越域和账户的外部通信。这个模式清晰地区分了各种关注点。
在回答关于EventBridge的问题时,Ian回应了关于设置多少事件总线的问题。这取决于工作负载需求和治理情况。边界上下文总线是最易于管理的。
事件桥"相较于"亚马逊河":两者的目标不同,前者主要用于处理事件,而后者则适用于高流量流。
- "事件桥"与"SQS/SNS"的比较:了解在处理排序、批量和处理能力等方面的需求和权衡。
总的来说,Ian全面地介绍了在亚马逊云科技中运用事件桥进行事件驱动架构的关键概念、模式和功能。他强调了诸如解耦、优雅处理故障、控制流程以及分离关注等原则在构建健壮的事件驱动系统中的重要性。通过丰富的视觉示例和实际的实施案例,使与会者能够更深入地理解并付诸实践。
**下面是一些演讲现场的精彩瞬间:**
演讲者着重强调了现代云计算架构中存在着许多我们或许并不认为是设计模式的设计模式,这是因为我们已经习惯于使用云服务。
![](https://d1trpeugzwbig5.cloudfront.net/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT_/images/rebranded/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT__0.png)
领导者详细阐述了亚马逊云科技的Step Functions如何协同调度不同服务的并行或顺序操作,从而构建复杂的工作流程。
![](https://d1trpeugzwbig5.cloudfront.net/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT_/images/rebranded/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT__1.png)
演讲者探讨了一种包含API网关、队列、管道、Step Functions以及Lambda等组件的架构方案,以便在背后支持第三方注册工作。
![](https://d1trpeugzwbig5.cloudfront.net/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT_/images/rebranded/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT__2.png)
通过这种方式,Ib能够在不增加客户额外费用的前提下,将凭证保存在密钥管理器中。
![](https://d1trpeugzwbig5.cloudfront.net/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT_/images/rebranded/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT__3.png)
领导者还解释了Kinesis与EventBridge之间的差异,强调每种服务都有自己的特定用途和应用场景。
![](https://d1trpeugzwbig5.cloudfront.net/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT_/images/rebranded/COM301-R-Advanced_event_driven_patterns_with_Amazon_EventBridge__REPEAT__4.png)
## 总结
首先,EventBridge支持在解耦的微服务之间协调事件,例如在产品注册过程中触发计算忠诚度积分、生成折扣代码以及通知制造商等并行事件。
其次,EventBridge通过API目的地实现了无集成外部API的使用,无需编写Lambda函数即可处理身份验证和重试等功能。
最后,EventBridge具有弹性模式,如断路器,可以在连接恢复后对失败的事件进行存档并重新播放。通过使用状态码等元数据,可以帮助筛选需要重播的事件。
总的来说,EventBridge通过支持解耦的微服务和提供原生集成(如API目的地)以及弹性模式(如事件重播)等功能,推动了事件驱动架构的实施。
## 演讲原文
## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
[2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站")
[点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯!
[点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯!
## 即刻注册亚马逊云科技账户,开启云端之旅!
[【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“")
[【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")