【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

事件架构和事件流

  • 2017-09-10
  • 本文字数:1015 字

    阅读完需:约 3 分钟

将一个单体系统迁移到分布式系统或微服务系统,通常也是从源于同一数据库的单一数据源(SSOT,Single Source Of Truth)转变为源自多数据库的多个数据源。如果使用事件架构(Event Architecture)并将所有事件持久化为数据流,那么就我们可以转回到单一数据源上。这是 Ben Stopford 在他撰写的博客文章中提出的,此篇博客是他关于如何在 Kafka 中使用事件的系列博文之一。

Stopford 是 Confluent 公司的一名工程师他在博文中指出,传统的消息系统中,事件是短暂存在的,已消费的事件并没有历史信息。持久化所有的事件不仅会创建单一数据源,而且可以回溯和重放事件,使得对数据可执行似于版本管理系统中那样的操作。这使得恢复崩溃的系统以及在修复软件故障后重放事件成为可能。

对于一个典型的基于事件的系统,它会对事件进行监听,更新事件在数据库中的状态并做持久化,进而发出新的事件。在 Stopford 看来,这一架构具有两个挑战。首先,如何在同时写入数据和事件日志时维护一致性。其次,因为存在不同的代码路径等原因,在数据库中的和事件中的数据会出现一些偏差,这可能会导致系统中的不一致问题。解决问题的最好方法是类似于在事件溯源系统中那样,将事件作为头等实体并仅使用事件。

要着手实现事件流,一个途径是使用“变更数据捕获 ”(Change Data Capture)技术。采纳了这一技术的数据库正在不断增加。使用CDC,对数据库的写入将在后台转换为事件流。Stopford 在文章中提及,CDC 的一个优点就是提供了一致点。我们可以对数据库做读写操作,无需分布式事务就让事件流保持数据库和数据流的同步。

Stopford 提供了一个 CDC 的重要用例,就是实现旧架构的迁移。通过使用 CDC 连接到遗留系统的数据库,他们抽取出了事件流,并从使用遗留系统逐步迁移到使用事件流的系统。

在使用事件溯源和事件流中,一个非常有用的模式就是对事件的两次持有。其中一次在基于保留(Retention)的消息类(Topic)中。此类消息按时间顺序保留了每次更改,用于事件溯源视图中。另一次是在压缩消息类(Compacted Topic)中,该类消息类仅提供实体的最新视图,因此规模更小,速度更快。

文末 Stopford 做了总结,指出基于流的事件架构的最显著特性是可不断进化的能力。一旦有新的需求出现,系统就能构建出新的服务,进而轻易地进行部署,并通过从头开始重放所有的事件而维持更新状态。他相信,考虑到 Kafka 所能提供的功能,它非常适用于此类架构之中。

查看英文原文: Event Architectures and Event Streaming

2017-09-10 19:002577
用户头像

发布了 391 篇内容, 共 126.6 次阅读, 收获喜欢 255 次。

关注

评论

发布
暂无评论
发现更多内容

JixiPix Premium Pack for Mac v1.2.11激活版下载

影影绰绰一往直前

CheckBook Pro for mac(个人理财管理工具) v2.7.27注册激活版

mac

苹果mac Windows软件 CheckBook Pro 个人财务管理软件

即时通讯技术文集(第24期):音视频WebRTC好文合集 [共20篇]

JackJiang

网络编程 即时通讯 IM

「Macos最新」Rhino 8 for Mac(犀牛 8)中文激活版 支持M1

彩云

3d建模 Rhino 8

议题征集!2023 龙蜥操作系统大会硬核启动

OpenAnolis小助手

操作系统 龙蜥社区 2023龙蜥操作系统大会 智算 议题

Comsol Multiphysics for Mac(建模仿真软件) v6.2永久激活版

mac

苹果mac Windows软件 COMSOL Multiphysics 多物理场仿真软件

下一代ETL工具:微服务架构的全新数据集成平台

RestCloud

微服务 ETL

零代码AppLink平台触发事件组件

RestCloud

零代码 APPlink

Comsol Multiphysics for Mac(物理数值模拟仿真软件)v6.2中文激活版

影影绰绰一往直前

SOAP 协议和 HTTP 协议:分析比较

Apifox

程序员 后端 HTTP API soap

Promise规范与原理解析 | 京东物流技术团队

京东科技开发者

前端 Promise JavaScrip 企业号11月PK榜

前端必学——实现电商图片放大镜效果(附代码)

小齐写代码

探索亚马逊云科技云存储服务的性能

亚马逊云科技 (Amazon Web Services)

存储 Amazon S3 云存储服务

sublime text for Mac(代码编辑器)v4.0(4168)注册汉化版下载

影影绰绰一往直前

技术分享 | 在 IDE 插件开发中接入 JCEF 框架

LigaAI

后端 IDEA web技术分享 前段 IDE插件

Tower for Mac注册激活 附 注册机

彩云

Tower Git客户端

一次爽个够,80款H5精品小游戏合集

echeverra

H5小游戏

悦数图数据库 v3.6.0 发布|支持 Zone 管理,提升业务安全性和连续性

悦数图数据库

图数据库 悦数 杭州悦数

一起乐「FUN」天!大模型趣味赛等你来挑战!

飞桨PaddlePaddle

开发者 大模型

XTransfer与腾讯云达成战略合作 助力外贸数字化转型

XTransfer技术

腾讯云 出海 XTransfer 跨境金融

HTTP协议抓包工具:Charles for Mac注册激活版下载

影影绰绰一往直前

极盾故事|“五步”构建某三甲医院数据安全管理集成平台

极盾科技

数据安全

火焰杯软件测试竞赛颁奖典礼在长春工业大学举行

霍格沃兹测试开发学社

前端技术探秘-Nodejs的CommonJS规范实现原理 | 京东物流技术团队

京东科技开发者

JavaScript node.js 前端 企业号11月PK榜 ChromeV8

星河创新,开拓新纪!2023“星河产业应用创新奖”报名全面开启!

飞桨PaddlePaddle

星河社区

OpenMLDB SQL 开发调试神器 - OpenMLDB SQL Emulator

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

奈飞客户端:Netflix Mac v2.13.0激活版下载

影影绰绰一往直前

喜讯!MIAOYUN《电力云原生“一云多芯”大模型信创全适配解决方案》获评第二届中国赛宝信息技术应用创新优秀解决方案奖

MIAOYUN

AI 云原生 大模型 一云多芯解决方案 信创解决方案

CheckBook Pro for mac(优秀的个人理财管理软件)v2.7.27激活版

影影绰绰一往直前

OpenMLDB v0.8.4 诊断工具全面升级

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

事件架构和事件流_语言 & 开发_Jan Stenberg_InfoQ精选文章