【ArchSummit 】会议即将开幕,一起来看架构师在AI时代的“生存法则”总结! 了解详情
写点什么

Jonas Boner 谈 Events 将如何重塑现代系统

  • 2017-11-16
  • 本文字数:898 字

    阅读完需:约 3 分钟

Lightbend 的创始人兼首席技术官 Jonas Boner 在最近的 Reactive Summit 2017 会议上做了主题发言,谈到了事件驱动型服务(event driven services)、以及事件驱动架构(EDA)和事件流处理(ESP)技术将会给基于分布式系统的现代应用程序的设计带来哪些帮助。

Boner 的演讲一开始以 Tuxedo Terracotta 和多阶段的事件驱动构架 ( SEDA ) 为例,讲述了事件驱动系统历史演变的相关背景。了解事件驱动的本质很重要,因为事件代表着事实。

事件给了系统服务自主性,并帮助系统降低了风险。它们还降低了系统的耦合性(loose coupling),增加了系统的可伸缩性、弹性和可追溯性。事件驱动的服务基本上反转了系统中的控制流程,这有助于系统最小化耦合和增加自主性。事件驱动的解决方案更关注于系统的行为而不是系统的结构。

他建议开发人员不要只关注系统中的“领域对象”(Domain Objects),而应关注事件(Events)。他谈到了 Mark Burgess 提出的 Promise Theory ,并通过利用 promise 来使用事件加以界定 Bounded Context(跨边界上下文)。

Boner 还表示,事件使我们能够管理时间,并引用了 Greg Young 的话:

建模事件迫使我们暂时关注系统中正在发生的事情。时间成为系统的关键因素。

事件记录(Event Logging )允许我们通过将事件视为时间快照(snapshot),并且将事件日志作为我们的完整历史记录来建立时间微缩模型。通过重播用于调试、审计和跟踪的历史日志事件,我们就可以恢复到不同时间段的系统状态。这样的话,发生系统故障和进行数据复制时,我们就可以重现当时的状况。

Boner 讨论了事件驱动架构的以下模式:

  • Event Loop
  • Event Stream
  • Event Sourcing
  • CQRS for temporal decoupling (用于临时解耦的 CQRS)
  • Event Stream Processing(事件流处理)

Apache Flink Spark Streaming Kafka Streams Apache Gearpump Apache Beam 这样的事件流处理技术可以用来实现这些设计模式。

查看英文原文 Jonas Boner on How Events Are Reshaping Modern Systems


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2017-11-16 18:001470

评论

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

后端开发【干货知识】—Redis,Memcached,Nginx网络组件

Linux服务器开发

reactor 中间件 后端开发 组件 Linux后台开发

漏洞挖掘之目录遍历漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

【ELT.ZIP】《CCF开源高校行第一期》观后感

ELT.ZIP

Linux LVS OpenHarmony ELT.ZIP CCF开源高校行

湖仓一体架构解析

五分钟学大数据

数据湖 4月月更

当东数西算变成一场西游记……

脑极体

Ben Fisch等联创爆出道德、法律丑闻,Espresso Systems风雨飘摇

BlockChain先知

社区文章|MOSN 社区性能分析利器——Holmes 原理浅析

SOFAStack

golang GitHub 开源 SOFA

对话达梦副总经理冯源 | 假如你身处被“科技制裁”的俄罗斯-墨天轮专访

墨天轮

数据库 oracle 国产数据库 达梦

如何画好流程图

Hockor

前端 流程图

招聘|欢迎加入非凸,学习Rust,了解内存和线程安全问题

非凸科技

集合去重的境界

flyhero

Java 程序员 后端 4月月更

数字化转型-信息技术引发的系统性变革

Geek_XOXO

企业数字化转型

BFF治理与优化实践

码猿外

架构 微服务 BFF 软件架构治理

【ELT.ZIP】OpenHarmony啃论文俱乐部——细数生活中的压缩点滴

ELT.ZIP

OpenHarmony 数据压缩 ELT.ZIP

SkyWalking 分布式系统追踪

Rubble

4月日更

我和TiDB的故事 | 毫无准备地不期而遇,却想说与你相遇好幸运

TiDB 社区干货传送门

多批爱心物资驰援,妙可蓝多助力上海抗疫

科技新消息

张国荣《热·情》演唱会再现荧幕:AI修复解锁的经典与视听生活

脑极体

单线程的 JavaScript 是怎么实现异步的?

CRMEB

怒肝 JavaScript 数据结构 — 数组篇(二)

杨成功

JavaScript 数据结构 4月月更

淘特 Flutter 流畅度优化实践 · 二期

阿里巴巴终端技术

flutter

企业为什么需要文档协同

小炮

文档协同 团队协同

Go Error 最佳实践

宇宙之一粟

Go 语言 Error 4月月更

面试突击36:线程安全问题是怎么产生的?

王磊

Java java面试

系统性能分析从入门到进阶

阿里巴巴中间件

云计算 阿里云 云原生 中间件

今晚7点直播!聊一聊“进击的开源操作系统”

OpenAnolis小助手

InfoQ 龙蜥社区 CentOS停服 开源操作系统 今晚直播

被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

阿里巴巴中间件

阿里云 云原生 中间件 混沌工程

什么是数据库?5分钟深入理解数据库原理。

喀拉峻

数据库 网络安全

可能是全网第一个使用RediSearch实战的项目

越长大越悲伤

redis 中文分词 全文检索 SpringBoot 2 实战案例

百度智能云天工边云融合物联网平台,助力设备高效上云

百度开发者中心

能直接调试的开放API?这个API Hub绝了

Liam

Jmeter Postman API swagger Mock

Jonas Boner谈Events将如何重塑现代系统_语言 & 开发_Srini Penchikala_InfoQ精选文章