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

成安专业做网站公司注册的流程与步骤

成安专业做网站,公司注册的流程与步骤,pc端和移动端的网站区别是什么,现在公司网站重要吗目录概述什么是事件?结偶与松散耦合事件驱动架构的工作原理事件驱动架构模型事件驱动架构的优势RabbitmqRabbitMQ 在 EDA 中的角色RabbitMQ vs. 其他消息队列概述 事件驱动架构是一种用于应用设计的软件架构和模型。事件驱动系统旨在捕获、沟通和处理解耦服务之间的…

目录

    • 概述
    • 什么是事件?
    • 结偶与松散耦合
    • 事件驱动架构的工作原理
    • 事件驱动架构模型
    • 事件驱动架构的优势
    • Rabbitmq
      • RabbitMQ 在 EDA 中的角色
      • RabbitMQ vs. 其他消息队列

概述

事件驱动架构是一种用于应用设计的软件架构和模型。事件驱动系统旨在捕获、沟通和处理解耦服务之间的事件。这意味着,系统可以保持异步,同时仍共享信息和完成任务。

许多现代应用设计都是由事件驱动的,例如必须实时利用客户数据的客户互动框架。事件驱动应用可以用任何一种编程语言来创建,因为事件驱动本身是一种编程方法,而不是一种编程语言。事件驱动架构支持最小程度的耦合,因此非常适合现代分布式应用架构。

EDA 采用松散耦合方式,因为事件发起者并不知道哪个事件使用者在监听事件,而且事件也不知道其所产生的后续结果。

什么是事件?

事件用于记录系统硬件或软件的任何重要事件或状态变更。事件与事件通知不同,事件通知是由系统发送的消息或通知,用于通知系统的另一方发生了事件。

事件源可能来自于内部输入,也可能是外部输入。事件可以由用户生成,例如单击鼠标或按键;也可以是外部来源,例如传感器输出;或来自于系统,例如加载程序。

结偶与松散耦合

解耦与松散耦合指的是软件架构和事件驱动系统中两个相关但不同的概念。

解耦是消除或最小化系统中独立组件之间的直接依赖关系的做法,以便组件之间不存在“唇亡齿寒”的关系。在 EDA 的语境下,通过确保生成事件的组件只需发送事件数据,而不必考虑特定的使用者组件,从而实现解耦。这种“断联”使组件彼此独立,创造出总体更灵活的系统。

松散耦合是一种特定形式的解耦,旨在降低组件之间的相互依赖的程度,而不是将它们完全分离开。在松散耦合的系统中,组件可能会彼此交互,但不会导致形成任何形式的依赖关系。

这两种系统都有利于提高灵活性和独立性,进而创造出敏捷且可扩展的系统。

事件驱动架构的工作原理

事件驱动架构由事件发起者(发布者)和事件使用者(订阅者)组成。事件发起者检测或感知事件,并以消息的形式呈现事件。由于是解耦系统,它不知道事件的使用者,也不知道事件的结果。

检测到事件后,将从事件发起者通过事件通道将事件传输给事件使用者,在事件通道中,事件处理平台会异步处理事件。发生事件时,需要通知事件使用者。他们可能会处理事件,也可能只是会受到事件影响。

事件处理平台将执行正确的事件响应,并将活动发送给下游正确的使用者。该下游活动即看到事件结果的位置。

Apache Kafka 是一个分布式数据流平台,是备受欢迎的事件处理解决方案。它能够实时处理事件流的发布、订阅、存储和处理。Apache Kafka 支持各种重视高吞吐量和可扩展性的用例,通过最大程度减少某些应用中对数据共享的点对点集成需求,因而可以将延迟降至毫秒级。

除此之外,还有其他一些中间件事件管理器也可用作事件处理平台。

事件驱动架构模型

事件驱动架构可以基于发布/订阅模型或事件流模型。

发布/订阅模型
这是基于事件流订阅的消息传递基础架构。借助该模型,在事件发生或发布后,事件将发送给需要通知的订阅者。

事件流模型
借助事件流模型,事件会被写入日志。事件使用者无需订阅事件流。相反,他们可以读取事件流的任何部分,并可以随时加入事件流。

事件流有几种不同的类型:

事件流处理会使用数据流平台(如 Apache Kafka)获取事件,并处理或转换事件流。
简单事件处理是指事件会立即触发事件使用者行动的情形。
复杂事件处理需要事件使用者处理一系列事件才能检测到模式。事件流处理可用于检测事件流中有意义的模式。

事件驱动架构的优势

EDA 可以帮助企业实现灵活的系统,能够通过适应变化并实时做出决策来改进工作流。实时情境感知意味着企业决策(无论是手动还是自动化)都可以使用能够反映系统当前状态的所有可用数据来做出决定。

当物联网(IoT)设备、应用和网络等事件源发生事件时,事件便会被捕获,使事件发起者和事件使用者能够实时共享状态和响应信息。

企业可以向其系统和应用添加事件驱动架构,提高应用的可扩展性和响应速度,改善对数据和背景信息的访问以做出更明智的业务决策。

事件驱动架构提供解耦优势,数据或服务的发起者和使用者不需要直接沟通,因此有利于打造更灵活且扩展性高的系统。进而进一步简化新组件的集成,提高容错性和系统的整体效率。

Rabbitmq

RabbitMQ 是事件驱动架构(EDA)中事件通道的典型实现,属于消息队列(Message Queue)中间件。它通过发布 - 订阅模式(Pub/Sub)实现组件间的解耦,是构建事件驱动系统的核心工具之一。

RabbitMQ 在 EDA 中的角色

  1. 事件通道
    RabbitMQ 作为中间层,接收生产者发送的事件(消息),并将其路由到对应的消费者。
  2. 支持多种消息模式
    工作队列(Work Queue):多个消费者竞争处理同一类事件(负载均衡)。
    发布 - 订阅(Publish/Subscribe):一个事件被多个消费者同时接收。
    路由(Routing):按规则(如事件类型)将事件路由到特定队列。
    主题(Topics):基于模糊匹配(如order.#)订阅事件。
  3. 保证事件可靠性
    支持持久化(Persistence):事件可存储到磁盘,避免 Broker 崩溃导致数据丢失。
    确认机制(Ack):消费者处理完事件后向 RabbitMQ 确认,未确认的事件会重新分发。

RabbitMQ vs. 其他消息队列

特性RabbitMQKafka
消息模式支持多种(直连、主题、扇形等)基于发布 - 订阅的事件流处理
吞吐量中等(万级 TPS)极高(百万级 TPS)
消息持久化支持(基于磁盘)高吞吐量持久化(顺序写磁盘)
适用场景企业级消息系统、复杂路由大数据、实时流处理、日志收集
http://www.dtcms.com/a/470187.html

相关文章:

  • 多个编码智能体同时使用会不会混乱?
  • wpf中调用NumericUpDown控件
  • JVM(九)-- 类的生命周期
  • 数字孪生重构智慧园区:众趣科技何以成为 VR 园区领域标杆
  • LeetCode 刷题【113. 路径总和 II】
  • 网站英文联系我们毕设做购物网站系统的原因
  • 当涂城乡建设局的网站wordpress 链接主题
  • 利用ps制作网站的设计江苏省建设工程集团
  • Linux内核架构浅谈9-Linux内核的开源生态:开发者协作与版本迭代机制
  • 【经验总结】AUTOSAR架构下NvM进入无限循环问题分析
  • 春招准备之Git篇
  • 11-py调用js
  • 分析竞争对手网站公司网站建设怎么
  • 2.Xshell效率实战:SSH管理秘籍的技术
  • 长春网站建设长春建设一个视频网站需要什么
  • 网站建设的设计方案平度市网站建设
  • Salesforce项目老掉坑?这8个思维陷阱千万别踩
  • 从递归到迭代的全方位解析——力扣38.外观数列(Count and Say)
  • 深度学习(DL)概念及实例操作
  • 基于单片机的四点位水位控制与报警系统设计
  • 如何将Python脚本输出(含错误)全量保存到日志文件?实战指南
  • 3d网页游戏排行做360手机网站优化
  • Unreal Engine 中的旋转表示:FQuat 与 FRotator 全面解析
  • 设计模式-解释器模式
  • 望牛墩镇仿做网站泰州建设网站
  • 网站建设与网页制作基础入门教程祥云平台官方网站
  • Unreal Engine C++ 开发核心:USceneComponent 常用方法详解
  • 陪诊陪护小程序前端功能解析:就医照料的便捷对接与全流程保障
  • 在线PhotoShop网页版常用快捷键和实用技巧
  • 湖南建设网站公司h5四合一网站建设