当前位置: 首页 > news >正文

【架构】事件驱动架构(Event - Driven Architecture,EDA)

一、事件驱动架构理论基础

事件驱动架构(Event - Driven Architecture,EDA)是一种软件设计范式,事件驱动的体系结构由生成事件流侦听这些事件的事件使用者以及将事件从生成者传输到使用者的事件通道组成。

在这里插入图片描述

在事件驱动架构中,系统的行为由事件触发。事件可几乎实时发送,因此使用者可在事件发生时立即做出响应。 生成者脱离使用者,即生成者不知道哪个使用者正在倾听。 使用者之间也能彼此脱离,且每个使用者都能看到所有事件。


二、核心组件

在这里插入图片描述

事件源(Event Source)

产生事件的地方,可以是用户界面、传感器、业务系统等。例如,在一个电商系统中,用户提交订单这个操作就是一个事件源,会产生 “订单已提交” 事件。

事件队列(event queue)

接收事件的容器。

分发器(event mediator)

将不同的事件分发到不同的业务逻辑单元。

事件通道(Event Channel)

负责事件的传输和分发,也被称为消息队列或事件总线。它可以实现事件的异步处理和组件之间的解耦。常见的消息队列有 RabbitMQ、Kafka 等。

事件处理器(Event Handler)

监听事件通道中的事件,并根据事件的类型和内容执行相应的操作。例如,当接收到 “订单已提交” 事件后,事件处理器可以进行库存检查、生成物流单号等操作。


三、工作流程

活动图


文章转载自:
http://amphigenous.hyyxsc.cn
http://aspiratory.hyyxsc.cn
http://caroler.hyyxsc.cn
http://bunny.hyyxsc.cn
http://aaal.hyyxsc.cn
http://carucage.hyyxsc.cn
http://ageratum.hyyxsc.cn
http://alliterate.hyyxsc.cn
http://abandonee.hyyxsc.cn
http://admissive.hyyxsc.cn
http://choker.hyyxsc.cn
http://anaplasty.hyyxsc.cn
http://bks.hyyxsc.cn
http://beeswing.hyyxsc.cn
http://aus.hyyxsc.cn
http://bell.hyyxsc.cn
http://bircher.hyyxsc.cn
http://administer.hyyxsc.cn
http://bearded.hyyxsc.cn
http://benet.hyyxsc.cn
http://algoid.hyyxsc.cn
http://charitable.hyyxsc.cn
http://anthropogeny.hyyxsc.cn
http://bev.hyyxsc.cn
http://binational.hyyxsc.cn
http://checkoff.hyyxsc.cn
http://acridity.hyyxsc.cn
http://astrologer.hyyxsc.cn
http://bilharzia.hyyxsc.cn
http://bathometer.hyyxsc.cn
http://www.dtcms.com/a/32356.html

相关文章:

  • electron提升软件运行权限,以管理员权限运行
  • Linux 常见指令
  • Linux之文件系统
  • Swiper插件的运用和学习
  • 【IO】java IO流的类型及IO模型
  • 大模型本地部署对于硬件配置要求太高,云端运行又担心数据泄露,有什么办法可以避免数据泄露又能够运行比较大的模型吗
  • ubuntu 源码编译ffmpeg
  • 大模型提示词工程实战
  • Linux中的查看命令
  • kkFileView报错no office manager available
  • 【数电笔记】第一章 数制和码制
  • 计算机毕业设计SpringBoot+Vue.js学生读书笔记共享(源码+LW文档+PPT+讲解+开题报告)
  • 【微服务】深入解析spring aop原理
  • 【0409】Postgres内核 CREATE DATABASE 之 从 new_record[] 加载 tuple 数据部分 到 堆空间指定区域 ⑥
  • 机器翻译与语音识别技术:推动人机交互的新篇章
  • Java数据结构_一篇文章搞定java对象的比较_7
  • 基于Weber和simulink的齿轮啮合刚度计算
  • 基于深度学习与知识图谱的设备智能维护系统KGPHMAgent
  • PHP2(WEB)
  • Redission可重试、超时续约的实现原理
  • C++:dfs,bfs各两则
  • kotlin的Int类型调用toString()会导致空指针吗
  • CountDownlatch实现原理
  • 1.2.2 AI 技术的融入
  • Linux 文件的三个时间:Access、Modify 和 Change
  • 【服务器与本地互传文件】远端服务器的Linux系统 和 本地Windows系统 互传文件
  • 对网络物理层芯片LAN8720A的复位信号(复位引脚nRST)的详细分析(顺便也介绍下其软复位的操作和导常情况解决方法)
  • AMBA-CHI协议详解(十八)
  • [论文解析]OmniRe: Omni Urban Scene Reconstruction
  • Java中的Stream API:从入门到实战