事件驱动架构的优势与挑战三年后全球每天产生的数据量将达到463艾字节。相比之下,人类生成的所有单词的估计容量总计为5艾字节。为了在当今的数字经济中取得成功,许多企业正在实施战略来使用和分析所有这些数据,以便实时做出明智的业务决策。据估计,到2025年,人均每日数字互动次数将达到5,000次。企业需要能够满足对实时数据、流程和用户体验不断增长的需求。一种策略是使用事件驱动架构。事件驱动架构是一种软件设计模式,允许企业对客户交易等业务事件实时采取行动。事件驱动架构并不是一个新概念,它早在1970年代就已经存在。直到最近,这项技术才真正为企业和消费者提供实时服务。事件驱动的架构现在越来越受欢迎,可以解决现代业务问题并提供卓越的消费者体验。1、事件驱动架构的工作原理和好处事件驱动架构是以事件为基础,向相关方发出业务系统状态发生变化的信号。例如,事件可以是在线购买、产品发货或产品送货上门。事件在所有行业中不断发生。在事件驱动的架构中,有生产者和消费者。生产者触发事件,事件通过事件通道作为消息发送给感兴趣的消费者,事件在事件通道中被异步处理。生产者和消费者不必等待对方开始下一个任务,因为生产者和接收者是松散耦合或完全解耦的。由于通信和业务逻辑的分离,解耦还提高了可扩展性。发布者避免了瓶颈,并且在订阅者下线或消费减慢时不受影响。如果订阅者无法跟上事件,事件流会记录事件以供将来检索。发布者可以在没有吞吐量限制的情况下继续发送通知,并且对故障具有高度的弹性。发布/订阅(pub/sub)是事件驱动架构中的一种常见设计模式,它提供了一个在发布者和订阅者之间交换消息的框架。消息代理接收来自发布者的所有事件,并将它们实时路由到订阅者,订阅者注册接收事件。代理还记录事件。消费者可以随时访问事件流,他们可以读取最新的消息,或者处理自上次检查事件流以来收到的一系列消息。如果使用消息代理,则发布者不知道订阅者,即使感兴趣的各方数量增加也不会受到影响。发布到代理使生产者有机会向不同设备和平台上的一系列消费者发送通知。2.实施事件驱动架构的挑战将功能构建到应用程序中以提供大规模实时体验是有风险、复杂、昂贵且耗时的。组织最初可能会花费数月时间从现成的组件构建定制解决方案。所需的时间很容易变成数年,因为团队需要应对规模和可靠性要求的复杂性。许多应用程序依赖于一系列相互依赖的消息。但是,如果这些消息丢失或乱序,用户体验会受到影响,客户数据可能会在此过程中受损或丢失。提供具有数据完整性的实时数字体验所需的技术非常复杂,并且通常会导致无法接受的权衡,例如公司为了数据完整性而大规模牺牲性能。还有性能问题。不良或不可预测的延迟以及高带宽消耗等问题给应用程序开发人员在设计、构建和扩展实时功能时带来了不确定性。除了最大限度地减少延迟和带宽要求外,组织还必须最大限度地减少这些措施中的差异,以便为开发人员提供可预测性并确保提供有竞争力的体验。组织也很难设计、构建和运营自己的全球分布式容错实时基础设施。为了实现容错,组织需要在多个数据中心拥有多个冗余组件,以在其他组件丢失时保持系统正常运行。当一个组织开始扩展时,它要么获得收益,要么承受基础设施构建方式的后果。没有到位的基础架构无法扩展,也无法提供满足客户实时需求所需的弹性。此外,对于大多数组织而言,为事件驱动架构构建自己的基础设施只是分散了开发真正区分其产品的实时体验的注意力。要达到可以依赖基础架构来提供竞争体验的地步,团队需要雇用许多人并培养可能与业务核心无关的技能。3.Ably发布/订阅消息传递为了克服这些挑战,Ably边缘消息传递平台提供了API,使开发人员能够构建用于实时通信的应用程序和基础设施,而无需组织管理规模、延迟、消息完整性或网络中断。任意数量的订阅设备将实时接收从设备发布到Ably的消息。为此,Ably将消息流量组织到命名通道中。一旦连接到Ably,客户端可以是发布者(向Ably推送消息)、订阅者(等待从Ably推送消息),或两者兼而有之。虽然Ably可能会传送数十亿条消息,但订阅者只会在他们订阅的频道上接收消息。通道提供了一种实现发布/订阅模式的方法,允许发布者快速高效地将数据推送给订阅者。新数据被推送给订阅者,因此他们不必轮询服务器来检查新数据。Ably的在线状态功能允许客户宣布他们在频道上的在线状态。Presence使开发人员能够构建协作应用程序,例如聊天室、多人游戏或协作工具,因为Ably会自动实时跟踪任何设备上的人员。存在于频道上的每个成员都有一个唯一的客户端标识符和一个可选的有效负载,用于描述成员的状态,例如进入频道、更新状态或离开频道。其他设备或服务实时订阅这些存在事件。Ably是一个全球分布式系统,其中通道可以在多个区域独立活动,因此不存在单点故障或拥塞。下图说明了Ably如何解决高效全球路由的挑战:图1发布者在纽约的专用服务器使用基于延迟的路由路由到最近的数据中心(美国东部)。发布到美国东部的消息A被路由到美国东部的客户,并且一次到所有其他数据中心托管客户订阅了这些消息。所有其他地区的订阅客户将从他们所连接的数据中心接收消息。使用基于延迟的路由将伦敦的发布者和订阅者客户端路由到最近的数据中心(欧洲西部)。发布到EUWest的消息B被路由到EUWest的订阅客户,并且一次路由到所有其他数据中心托管客户订阅了这些消息。所有其他区域中的订阅客户端从它们所连接的数据中心接收消息B。4.实时体验的未来数字体验正在经历一场实时革命。消费者要求数字体验是即时的。因此,组织必须实时同步数据。随着越来越多的设备上线以及企业适应更复杂的实时数据经济,他们需要更简单、更可靠的基础设施来满足今天和明天的实时数据同步需求,因为日常服务永远依赖于-改变数据。原文链接:https://www.infoworld.com/article/3669414/the-benefits-and-challenges-of-event-driven-architecture.html
