🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 事件驱动架构 事件(event)是状态发生变化时,软件发出的通知。 事件驱动架构(event-driven architecture)就是通过事件进行通信的软件架构。它分成四个部分。 ![](https://box.kancloud.cn/2ff8e722f01d598e1057d82acc2611ab_750x578.png) > * 事件队列(event queue):接收事件的入口 > * 分发器(event mediator):将不同的时间分发到不同的业务逻辑单元 > * 事件通道(event channel):分发器与处理器之间的联系渠道 > * 事件处理器(event processor):实现业务逻辑,处理完成后会发出事件,触发下一步操作 对于简单的项目,事件队列、分发器和事件通道,可以合为一体,整个软件就分成事件代理和事件处理两部分。 ![](https://box.kancloud.cn/977d8527d295de4444eaa07c5b67c981_750x507.png) 优点 > * 分布式的异步架构,事件处理器之间高度解耦,软件的扩展性好 > * 适用性光,各种类型的项目都可以用 > * 性能较好,因为事件的异步本质,软件不易产生阻塞 > * 时间处理器可以独立加载和卸载,容易部署 缺点 > * 涉及异步编程(要考虑远程通信、失去响应等情况),开发相对复杂 > * 难以支持原子性操作,因为事件通过会涉及多个处理器,很难回滚 > * 分布式和异步特性导致这个架构较难测试