写点什么

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:001901

评论

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

gradle中的增量构建

程序那些事

maven Gradle 程序那些事 构建工具

LeetCode题解:1091. 二进制矩阵中的最短路径,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

话题讨论 | 如何使用“网站SEO”,让网站排在最前面?

我是哪吒

大前端 后端 话题讨论 SEO 2月春节不断更

用例文档

三生赤水

给hugo博客添加评论功能

远鹏

Hugo 静态博客 utterances

程序员成长第五篇:如何选择城市工作?

石云升

程序员 2月春节不断更 选择城市

3.Fiber(我是在内存中的dom)

全栈潇晨

React React Hooks react源码

Elasticsearch mapping 复杂数据类型

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

门诊数字化:患者信息识别方式

boshi

医疗 数字化基础 七日更

端口隔离和VLAN的区别

第 4 周作业

老元宵

微信红包封面,2021年为啥突然火了?

架构精进之路

春节 微信红包封面 商业洞察

2.react心智模型(来来来,让大脑有react思维吧)

全栈潇晨

React React Hooks react源码

春节快过腻了?不妨关心下太空探索

脑极体

日记 2021年2月17日(周三)

Changing Lin

2月春节不断更

EternalWallet为您提供快速、便捷、低价的国际汇款服务

Geek_c610c0

【函数计算实践】nodejs初探示例——本地mac环境

程序员架构进阶

架构 nodejs 函数计算 七日更 2月春节不断更

写公号大半年,看看我都收获了些啥

架构精进之路

技术 总结 微信公众号 成长笔记

IDEA插件:快速删除Java代码中的注释

xiaoxi666

Java 代码注释 JavaParser

面试的季节到了,老哥确定不来复习下数据结构吗

Silently9527

面试 数据结构与算法

C语言第三方库Melon开箱即用之词法分析器使用

码哥比特

c c++ Linux 后端 框架

翻译:《实用的Python编程》01_05_Lists

codists

人工智能 后端 python 爬虫 列表 数据结构与算法

1.开篇(听说你还在艰难的啃react源码)

全栈潇晨

React React Hooks react源码

揭秘登上2021春晚舞台的黑科技-XR技术

架构精进之路

黑科技 vr 春晚 XR MR

字幕组时代落幕,翻译的未来可能是?

字节跳动技术团队

算法从有序数组中移除重复的数据,AI学习资源2020 John 易筋 ARTS 打卡 Week 38

John(易筋)

ARTS 打卡计划 ai youbute学习资源

第四章作业-编写一个用例文档

秦挺

【LeetCode】重塑矩阵Java题解

Albert

算法 LeetCode 2月春节不断更

13. 如果自己写的 Python 程序出错了,怎么办?

梦想橡皮擦

python 爬虫 2月春节不断更

【STM32】PWM 输出 (标准库)

AXYZdong

硬件 stm32 2月春节不断更

一维数组的动态和

小马哥

算法

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