技术编程|基于事件驱动架构的系统的采用 更高效实时系统分析数据


文 | AI国际站 唐恩
编 | 艾娃
本文由AI国际站 原创出品 , 未经许可 , 任何渠道、平台请勿转载 , 违者必究 。
实时和物联网实现了现代化的应用程序开发 。 但是物理定律仍然适用 。 从传统应用程序开发经验中获得的基本见解仍然适用于现代应用程序开发 。 这就是为什么现在该转向事件驱动的体系结构的原因 。

技术编程|基于事件驱动架构的系统的采用 更高效实时系统分析数据
本文插图

开发经验带来宝贵的收获 。
例如 , 我们应该知道数据库在物联网(IoT)应用程序中的运行速度不会比在使用传统方法构建的典型客户服务应用程序中运行的速度快 。 但是 , 我仍然看到很多实例 , 其中物联网开发人员忽略了传统数据库的局限性 。 这些数据库无法满足分析大量数据所需的巨大需求 。 因此 , 开发人员转而试图建立每秒需要数千次更新的应用程序 。 他们应该从一开始就知道它是行不通的 。 在物联网领域中 , 解决方案取决于流数据 。
解决方案取决于流数据 。 但是 , 大多数应用程序开发人员仍然对处理该数据的最佳方法并不十分了解 。 他们通常会说:“我得到了一些数据 。 我将其粘贴在数据库中 , 然后运行查询 。 ”当您构建用于事务处理或商业智能的传统应用程序时 , 将数据粘贴到数据库中并运行查询的过程将起作用 。 数据库的使用需要适度的数据速率 , 并且不需要实时响应 。
但是 , 当每秒有大量数据流需要立即分析时 , 这将行不通 。 例如 , 向开发人员询问他们数据库的速度 , 他们可能会告诉您它每秒可以进行5000次更新 。 那么 , 为什么他们为什么要尝试构建必须每秒执行50000次更新的IoT应用程序呢?它不会工作 。 他们应该已经从经验中知道这一点 。

技术编程|基于事件驱动架构的系统的采用 更高效实时系统分析数据
本文插图

让我们了解为什么会发生这种情况 。 实时应用程序和数据库
数十年来 , 数据库一直用于存储信息 。 数据存储到那里后 , 您随时可以方便地返回并进一步查询数据库以确定感兴趣的内容 。 但是随着实时系统的出现 , 数据库已成为一大难题 。 在实时系统的全部要点是分析和应对事件的时刻 。 如果您无法实时分析数据 , 则会受到严重限制 , 尤其是在安全性或安全性应用程序中 。
大多数应用程序开发人员更习惯于将数据输入数据库然后运行查询的情况 。 但是 , 当应用程序每秒传输大量需要立即响应的数据时 , 输入/运行模型不起作用 。 另一个挑战:如何在某种仪表板中显示实时数据 。
作为一种标准 , 对数据库运行查询以获取数据 。 当您试图显示实时信息时 , 会浪费资源 , 而每秒都会运行大量查询的大量数据 。 除了少数精通此技术的专家外 , 我们大多数人都不准备处理大量流数据 。
考虑一个传感器跟踪环境温度 , 该温度每秒产生一次新的读数 。 环境温度变化不会很快 , 因此一些传感器可能是可管理的 。 现在想象一下 , 由10000个传感器同时吐出信息产生的大量数据 。
类似地 , 考虑一个电力公司收集数十亿个数据点的示例 , 这些数据点直接馈入数据库 。 不可能一次将所有数据转储到系统中并期望立即处理所有内容 。 您无法每秒更新数据库100000次 。
该系统既不具有成本效益 , 也不具有效率 , 无法一次将所有这些数据放入数据库 , 然后一天不做任何操作 , 直到下一批到达为止 。 想象一下您需要处理峰值的硬件 。 情况真是麻烦 。 实际上 , 大多数开发人员以前从未构建过这类应用程序 。 而当他们尝试时 , 他们很可能会遇到错误或因低速而感到沮丧 。 峰值和系统需要找到处理内存中数据的方法 , 而不是尝试全部处理数据库中的数据 。

技术编程|基于事件驱动架构的系统的采用 更高效实时系统分析数据
本文插图

新时代 , 新发展模式
查看峰值和硬件系统将解释为什么我们仍在努力构建可支持IoT承诺的可行 , 可扩展的架构 。 考虑一下市政当局试图管理“智能道路 ”时遇到的挑战 。 如果要避免发生事故 , 则需要立即获取数据 。 但是 , 当用于衡量流量的数据流传输缓慢到达中央总部时 , 这是一个很大的障碍 。 基于事件驱动架构的系统又如何呢?
随着基于事件驱动体系结构(EDA)的系统的采用 , 这种未来就不会发生 。 尽管EDA相对较新 , 但许多行业已经在使用这种方法 。 这在装配线或金融交易中很常见 , 其操作可能会因获取关键数据而无法及时进行决策 。
到目前为止 , 软件开发模型一直依赖于将大量信息存储到数据库中以进行后续处理和分析 。 但是使用EDA应用程序 , 系统可以在事件发生在分布式事件网格中时分析数据 。 提供了关键数据 。
在这些情况下 , 数据的处理和分析现在变得更接近或什至位于实际生成数据的传感器和设备上 。 必须在内存中分析大量数据 , 以实现所需的快速响应时间 。 结果是:实时运行的应用程序的开发 , 并在需要时每秒响应数万甚至数百万个事件 。

技术编程|基于事件驱动架构的系统的采用 更高效实时系统分析数据
本文插图

代替依赖传统的以数据库为中心的技术 , 我们必须应用事件驱动的体系结构 。
【技术编程|基于事件驱动架构的系统的采用 更高效实时系统分析数据】当我们应用事件驱动的体系结构时 , 可以通过实时系统分析数据 。 而且 , 我们可以比传统数据库更高效 , 更快速地处理大量事件流 。


    推荐阅读