0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

事件驱动的体系结构的一些想法

汽车玩家 来源:今日头条 作者:闻数起舞 2020-05-03 18:39 次阅读

本文只是有关事件驱动的体系结构的一些想法。 这里没有代码,只有观察和建议。 明确地说,我将使用事件驱动一词,但如果您阅读上面的Wikipedia参考,则会发现我也错误地混入了消息驱动系统。

TLDR;

这是关于复杂性的讨论,显然是说,强大的力量伴随着巨大的责任。

基于事件的架构

基于事件的体系结构范式的核心是事件的产生,检测,消耗和反应的解耦。它们应该在反映这一点的代码中进行组织,即与生产,检测,消耗和反应相关的代码应分别分组,并且通常还通过多个应用程序进行分发。尽管事情是有条理的,并且肯定有明确的因果关系,但通过系统的分派机制进行的每次转换都会充当信息壁垒。在许多体系结构中,如果您从第一段代码开始,则可以跟踪在给定情况下从头到尾遵循的代码路径,通常可以使用调试器实时进行。使用基于事件的系统,通过事件分配器的第一跳更有可能使您感冒。您立即面临一个问题,即许多现有的听众/订户中的哪些人将对事件做出响应,他们是否都在此过程中进行响应,是否可以保证收据,以及确定性发生的顺序?

它实际上是一个公开喊价(outcry)系统,在通常情况下,出价(通话)和要约(响应)易于观察和配对,但是在混乱的时期,以观察员的身份进行的所有呼喊变得几乎不可能。

我指的是我正在替换的当前事件驱动系统,称为弹球机,因为球会大量涌入,在周围疯狂反弹,有的会导致奖品弹出,而有的则会消失殆尽。 您必须是粒子物理学家才能认为系统是可预测的和可理解的。

级联混沌的真实示例

我记得读过一次关于航空公司系统停机的事后调查,我相信那是英国航空公司的UPS故障,恢复工作花了几天的时间。为什么?他们的系统都是事件驱动的,并挂在一条通用的消息总线上。随着时间的流逝以及通过企业收购,IT系统的有机增长意味着他们根本不知道到底在听什么,而且系统实施在容错方面也不一致。许多系统需要重新启动以重新建立通信,并且尽管UI可以快速检测和处理,但在不能解决所有问题时,他们显然会蛮力地"重新启动所有"。但是,由于系统之间的相互依赖性以及几乎同时进行的重启,因此并非所有重启均能正常工作。只是随着时间的流逝,通过注意到非功能性功能才发现了一些问题。例如,也许您可以预订航班,选择座位,登记行李,但行李标签不会在希思罗机场的柜台打印。因此,他们必须确定应该发生什么事件链,哪些链断裂了,没有发生什么事件反应以及最后应该由哪个系统执行。

我是否要注意事件驱动系统?

不。它们功能强大,并且在许多情况下绝对是正确的解决方案。 哎呀,我们正在用另一种事件驱动的架构替换弹球机。 什么?! 是的,这是我们方案中的正确工具。

因此,如果我不是说不使用事件驱动的体系结构,那是什么意思?

确保它们是可追踪的

从第零天开始进行跟踪和恢复:

· 将关联标识符和发起者信息维护到事件中。

· 统一审核/记录命令和事件。

· 请勿使用Blob或任何方案文本(如JSON)。 您希望始终使用通用语言,因为许多分布式部分正在监听。 集中定义事件,并在所有地方使用这些定义。 您想知道更改对整个系统的影响。 提前计划事件的演变变化。 在可能的情况下,请避免对现有字段进行结构更改,而应采用"狂暴/吹扫"方法,在这种情况下,您仅进行累加并直到要清理。

· 研究Zipkin和监视工具之类的东西,以显示跟踪信息。

· 如果另一个系统取决于您的事件,但又不能订阅您的调度程序,而是从某个持久性日志中扫描事件,请确保它们也遵循这些规则,不要在异构边界上停止这些最佳做法。

这些建议似乎过于严格,但是我一次又一次地看到人们认为他们可以在获得一定收入后再解决这些问题,然后当问题确实出现时,发现没有APM或快速解决方案可以追溯地真正修复生态系统。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 架构
    +关注

    关注

    1

    文章

    513

    浏览量

    25468
  • 事件驱动
    +关注

    关注

    0

    文章

    9

    浏览量

    6743
收藏 人收藏

    评论

    相关推荐

    【「RISC-V体系结构编程与实践」阅读体验】-- SBI及NEMU环境

    ,运行在S模式下的操作系统提供引导和统的接口服务。 本书的实验并没有采用业界流行的OpenSBI固件,而是从零开始编写个小型可用的SBI固件,以便从底层深入学习RISC-V体系结构。 系统上电后
    发表于 11-26 09:37

    【「RISC-V体系结构编程与实践」阅读体验】-- 前言与开篇

    。 开篇 书到了以后,大概地通读了遍,本书不仅介绍了RISC-V体系结构一些基础知识(架构体系结构、指令集、编译器、链接器、中断、内存管理、虚拟化等等),而且更突出动手实践,基于Q
    发表于 11-23 15:43

    GPGPU体系结构优化方向(1)

    继续上文GPGPU体系结构优化方向 [上],介绍提高并行度和优化流水线的方向。
    的头像 发表于 10-09 10:03 279次阅读
    GPGPU<b class='flag-5'>体系结构</b>优化方向(1)

    无刷DC门驱动系统的体系结构

    电子发烧友网站提供《无刷DC门驱动系统的体系结构.pdf》资料免费下载
    发表于 09-29 11:52 0次下载
    无刷DC门<b class='flag-5'>驱动</b>系统的<b class='flag-5'>体系结构</b>

    LED驱动器应用的一些指南和技巧

    电子发烧友网站提供《LED驱动器应用的一些指南和技巧.pdf》资料免费下载
    发表于 09-25 11:35 0次下载
    LED<b class='flag-5'>驱动</b>器应用的<b class='flag-5'>一些</b>指南和技巧

    名单公布!【书籍评测活动NO.45】RISC-V体系结构编程与实践(第二版)

    放弃本次试用评测资格! 火热的RISC-V市场 去年,部讲述 RISC-V 威廉希尔官方网站 基础的书在国内市场掀起了阵学习热潮,它就是 《RISC-V体系结构编程与实践》 ,这本书在豆瓣上更是获得了 9.6
    发表于 09-25 10:08

    嵌入式系统的体系结构包括哪些

    嵌入式系统的体系结构通常是个复杂而精细的架构,旨在满足特定应用需求,同时兼顾系统的可靠性、效率、成本和体积等多方面因素。以下是对嵌入式系统体系结构的详细解析,包括其主要组成部分、层次结构
    的头像 发表于 09-02 15:25 1120次阅读

    工业控制计算机的体系结构是什么

    工业控制计算机是种专门为工业自动化控制领域设计的计算机系统,具有高性能、高可靠性、实时性、可扩展性等特点。本文将详细介绍工业控制计算机的体系结构,包括其硬件结构、软件结构、通信协议、
    的头像 发表于 06-16 11:38 1004次阅读

    嵌入式微处理器体系结构 嵌入式微处理器原理与应用

    嵌入式微处理器是种集成于嵌入式系统中的微处理器,其体系结构和应用具有独特特点。本文将详细介绍嵌入式微处理器的体系结构以及其原理与应用。 、嵌入式微处理器
    的头像 发表于 05-04 16:53 2175次阅读

    嵌入式微处理器体系结构有几种

    微处理器体系结构可以分为多种类型,下面将详细介绍其中的一些主要体系结构。 单核体系结构 单核体系结构是最简单和常见的嵌入式微处理器
    的头像 发表于 04-21 16:29 1227次阅读

    嵌入式微处理器的体系结构

    嵌入式微处理器的体系结构通常包括核心架构、指令集架构、存储体系架构和系统总线架构等关键组成部分。
    的头像 发表于 03-29 11:48 875次阅读

    WiMAX MAC层基础知识:WiMAX网络体系结构

    WiMAX形式支持的WiMAX架构是支持固定、游牧和移动操作的统网络架构。WiMAX 网络体系结构基于全 IP 模型。
    发表于 02-08 10:39 795次阅读
    WiMAX MAC层基础知识:WiMAX网络<b class='flag-5'>体系结构</b>

    基于最新E/E体系结构的传感器应用白皮书

    电子发烧友网站提供《基于最新E/E体系结构的传感器应用白皮书.pdf》资料免费下载
    发表于 01-30 17:41 0次下载
    基于最新E/E<b class='flag-5'>体系结构</b>的传感器应用白皮书

    智能化的计算机体系结构设计方案

    未来计算机体系结构将趋向于智能化和自适应性。智能化的计算机体系结构可以根据不同的任务和场景进行智能调整,提高计算机的性能和效率。
    发表于 01-22 11:05 476次阅读
    智能化的计算机<b class='flag-5'>体系结构</b>设计方案

    《RVfpga:理解计算机体系结构》3.0 版本更新上线

    计算机体系结构课程,该课程针对本科教学设计,包含整套丰富的教学资料和实践练习,可帮助学生了解处理器架构中的关键要素,包括多个IP内核,修改RISC-V内核的方法,
    的头像 发表于 01-18 08:27 790次阅读
    《RVfpga:理解计算机<b class='flag-5'>体系结构</b>》3.0 版本更新上线