|
随着移动互联和互联的速发展,越来越多的应用程序需要处理海量数据及大量并发请求传统的软件架构难以满足这些需求,因此,一些新的架构模式开始受到关注事件驱动架构(E-D A,EDA)因其高效\可扩展和灵活的势,逐渐成为热门选择本文探讨事件驱动架构在际应用中的势和挑战无一例外,半导体的客户都愿意采购其产品,因为质量上乘品质卓越是其产品的理念。我们为客户提供设计和周边产品采购协助.我们充足的库存\专业的团队和高效的计算机系统确保所有客户的请求都能在24小时内得到答复,无论是从我们的目录中选择当前产品还是帮助满足您的需求。https://www.yxyic.cn/category/thyristors-scrs-modules
事件驱动架构的概述
事件驱动架构是一种基于事件和消息的软件架构模式,其核心思想是将应用程序设计为响应事件的系统在这种架构中,事件是系统中发生的某种事情,比如用户行为\设备状态变化等当事件发生时,系统会产生相应的消息,该消息被传递给感兴趣的组件进行处理组件可以是其他应用程序\服务或者处理器等,它们通过订阅消息来接收事件
与传统的请求响应模式相比,事件驱动架构的处理方式不同传统请求响应模式是基于事务的,即客户端发起请求,服务端处理并返回响应而事件驱动架构是基于消息的,系统在事件发生时异步发送消息给感兴趣的组件进行处理这种异步处理方式使系统更加灵活\可扩展和高效
事件驱动架构的势
可扩展性
事件驱动架构是一种高度可扩展的架构模式由于事件是异步的,不同事件可以由不同组件处理可以根据应用需求,动态地添加或删除组件,现系统的可扩展性
高效性
事件驱动架构提高系统处理效率由于事件是异步的,组件在事件发生时立即处理,需等待请求响应这种异步处理方式提高了系统的响应速度和吞吐量
当类或组件之间内聚性高,它们的耦合度应低组件需要相互协作调用时,比如组件A需要触发组件B中的逻辑,自然方式是直接调用组件B中的方法但前提是A必须知道B的存在,这会使系统更难以改变和维护因此,可以使用事件来防止这种直接调用的耦合
使用事件现组件解耦还有另外的势如果有一个只负责组件B的工作团队,他们可能不需要与负责组件A的团队交流,只需针对组件A中的逻辑改变在组件B中做出相对反应两个组件团队可以单独发展,应用系统变得更灵活
即使在同一个组件团队中,有时不需要在同一请求响应中立即执行动作结果,只要异步执行这个动作,比如发送电子邮件这样可以立即向用户返回响应,并以异步方式发送电子邮件,避免用户等待发送过程
际应用中的挑战
然而,不加区别地使用事件也有危险逻辑流程在概念上是高度凝聚的,但通过脱钩机制的事件连接在一起代码应在明确情况下使用事件,防止代码库变成一大堆难以维护的"意大利面条"
有种使用事件的情况:
1 去耦组件
2 执行异步任务
3 跟踪状态变化(审核日志)
去耦组件(微服务)
当组件A执行的逻辑需要触发组件B的逻辑时,可以将触发事件发送到事件分派器组件B侦听调度程序中的特定事件,并在事件发生时执行操作A和B都依赖调度器和事件,但彼此不知存在,从而解耦
执行异步任务
有时需要执行较长时间的逻辑,不希望用户等待完成在这种情况下,可以将逻辑作为异步工作运行,立即返回用户消息比如在线商店下订单同步完成,但发送通知邮件可以异步
跟踪状态变化(审计日志)
传统数据存储方式更新数据库表行反映新值,但不存储为什么和什么时候改变可以将这些变化事件存储在审计日志中
事件驱动架构在际应用中具有显著势,如高效性和可扩展性但同时也面临挑战,需合理使用事件防止系统复杂性增加 |
|