当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]在之前部分中,我们从宏观角度考虑了我们的数据,并区分了内部数据和外部数据。我们还讨论了模式和数据契约,以及它们如何提供随着时间的推移协商、更改和发展我们的流的方法。最后,我们介绍了事实(状态)和增量事件类型。事实事件最适合通信状态和解耦系统,而 Delta 事件往往更多地用于内部数据,例如在事件溯源和其他紧密耦合的用例中。

在之前部分中,我们从宏观角度考虑了我们的数据,并区分了内部数据和外部数据。我们还讨论了模式和数据契约,以及它们如何提供随着时间的推移协商、更改和发展我们的流的方法。最后,我们介绍了事实(状态)和增量事件类型。事实事件最适合通信状态和解耦系统,而 Delta 事件往往更多地用于内部数据,例如在事件溯源和其他紧密耦合的用例中。

规范化表创建规范化流

规范化的表导致规范化的事件流。连接器(例如,CDC)将数据直接从数据库拉入事件流的镜像集。这并不理想,因为它在内部数据库表和外部事件流之间创建了强耦合。

考虑一个简单的电子商务项目及其关联的品牌和税收状态表。

品牌和税收状态表通过外键关系与项目表相关。虽然我们只在表中显示一项,但您可能会有数千(或数百万)项,具体取决于您销售的产品。

通常为每个表设置一个连接器,从表中提取数据,将其组合成事件,并将每个表写入专用的事件流。

公开数据库中的基础表会导致每个表产生相应的事件流。虽然这种方式很容易上手,但它会导致多个问题,这些问题可以概括为耦合 问题或成本 问题。让我们逐一看看。

问题:消费者对内部模型的耦合

按原样公开源Item表会迫使消费者直接耦合它。源系统数据模型的更改将影响下游消费者。

假设我们重构Item表以将P ricing提取到它自己的表中。

重构源表会导致项目流的数据契约损坏。不再向消费者提供他们最初期望的相同商品数据。我们还必须创建一个新的连接器 - 一个新的P米流 - 最后,重构我们的消费者逻辑 以使其再次运行。重命名列、更改默认值和更改列类型是内部数据模型上的紧密耦合引入的其他形式的破坏性更改。

问题:流式连接(通常)昂贵

关系数据库是专门为快速、廉价地解决连接问题而构建的。不幸的是,流连接不是这样的。

考虑两个需要访问Item、其Tax及其Brand信息的服务。如果数据已写入其相应的流,则每个使用者(下图中的右侧)将必须计算相同的连接来对Item、B rand和T ax进行非规范化。

此策略可能会产生高昂的成本,无论是编写应用程序的开发时间还是计算连接的服务器成本。大规模解决流连接可能会导致大量数据洗牌,从而产生处理能力、网络和存储成本。此外,并非所有流处理框架都支持连接,尤其是外键连接。在那些这样做的语言中,例如 Flink、Spark、KSQL 或 Kafka Streams(例如),您会发现自己仅限于编程语言的子集(Java、Scala、Python)。

解决方案:提供非规范化数据是最好的

原则上,应使事件流易于消费者使用。在使用抽象层将数据提供给消费者之前对其进行非规范化,并创建显式的外部模型数据契约 (外部数据)以供消费者耦合。

对内部模型的更改在源系统中保持隔离。消费者获得一个定义明确的数据契约来进行耦合。只要源系统为消费者维护数据契约,对源模型所做的更改就可以不受阻碍地进行。

但是我们在哪里非规范化呢?两种选择:

· 通过专门构建的连接器服务在源系统外部进行重建。

· 在使用事务发件箱模式在源系统中创建事件期间。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭