写点什么

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 )关注我们。

2017-11-16 18:001558

评论

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

“复制”马斯克(一):全世界都会为“自大狂”让路吗?

脑极体

进大厂必看!拼多多大佬总结的10万字Springboot经典学习笔记

武哥聊编程

Java springboot 28天写作

壁纸收藏

小马哥

摄影 七日更

三张图解释静态NAT、动态NAT、PAT

CSS(六)——用CSS设置图像效果

程序员的时光

程序员 大前端 七日更 28天写作

一文搞懂“技术债”

李忠良

28天写作

关于垃圾收集器你了解多少?一文总结七大垃圾收集器

Java鱼仔

Java JVM 垃圾收集

Libra演进与数字货币国际化

CECBC

区块链

nodejs的调试debug

程序那些事

debug 调试 nodejs 程序那些事 程序调试

精彩的封面 | 视频号 28 天(20)

赵新龙

28天写作

记录关于写作的两个小想法

JiangX

28天写作

5年Java经验不会源码被拒,苦学这些Spring源码笔记后,面试不再慌

Java架构之路

Java 程序员 架构 面试 编程语言

Dubbo 3.0 前瞻之对接 Kubernetes 原生服务

阿里巴巴云原生

容器 运维 云原生 k8s dubbo

创业失败启示录|雨季后的明媚阳光

阿萌

28天写作 创业失败启示录

28天瞎写的第二百三十天:DIY 键盘的故事

树上

28天写作 机械键盘 GH60

HDFS是如何设计架构的?

大数据老哥

原来酸奶是这个味道,真香!「幻想短篇 20/28」

道伟

28天写作

开发质量提升系列:问题登记列表(下)

罗小龙

生产事故 28天写作 解决思路

Flink可靠性的基石-checkpoint机制详细解析

五分钟学大数据

大数据 flink

这是阿里技术专家对 SRE 和稳定性保障的理解

阿里巴巴云原生

项目管理 运维 云原生 安全 监控

模块分解 - 微服务架构认识与思考

raox

“区块链新闻编辑部”: 从“云媒体”到“链媒体”的现实跨越

CECBC

区块链技术

程序员入职新公司,只需8步,直接凸显出个人价值

Java架构师迁哥

KubeVela:标准化的云原生平台构建引擎

阿里巴巴云原生

容器 云原生 k8s API OAM

教你用Java字节码做点有趣的事

比伯

Java 编程 架构 程序人生 计算机

9个REST API设计的基本准则

devpoint

APi设计 RESTf

产品训练营-第五课

Geek_娴子

一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)

Java架构之路

Java 程序员 架构 面试 编程语言

WebPack | Loader处理非JavaScript模块机制详解

梁龙先森

JavaScript 大前端 webpack 28天写作

30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软

Java架构之路

Java 程序员 架构 面试 编程语言

Java基础--2021Java面试题系列教程--大白话解读

JavaPub

Java 面试 javapub

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