QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

评论

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

如何进行APP版本升级管理?

InfoQ IT百科

如何清除WinRAR压缩文件历史记录?

InfoQ IT百科

如何对APP进行数据分析?

InfoQ IT百科

APP、小程序、H5,如何选择不同的开发载体?

InfoQ IT百科

抖音获客源码,蓝V思域运营,大热的X-Gorgon 0408和8408算法,今年的SaaS源码,编程语言需要变革吗?

yunluohd168

抖音短视频获客系统 抖音获客源码

md文件要用什么软件打开?

InfoQ IT百科

怎么清理钉钉缓存的图片和文件?

InfoQ IT百科

React Hooks 的实现必须依赖 Fiber 么?

云智慧AIOps社区

前端 大前端 React Hooks preact

深度学习—人工智能的第三次热潮

云智慧AIOps社区

人工智能 机器学习 深度学习

外包学生管理系统

流火

如何给电脑文件夹设置密码?

InfoQ IT百科

有哪些好用的杀毒软件?

InfoQ IT百科

Chrome如何安装插件?

InfoQ IT百科

Flutter 使用 Dio 的 Post 请求添加数据

岛上码农

flutter ios 安卓开发 4月月更 跨平台开发

云效钉钉小程序上线啦!业务方请痛快一键三连

阿里云云效

阿里云 云原生 钉钉 研发 云效钉钉小程序

如何在APP原型上写需求?

InfoQ IT百科

银行App为什么都不怎么好用?

InfoQ IT百科

预测猝死时间:AI与死神的争夺

脑极体

常见的中文电脑输入法软件有哪些?

InfoQ IT百科

如何用WinRAR将大文件分割成多个小文件?

InfoQ IT百科

低代码让人人都是开发者,高校人才有了努力的新方向

一只大光圈

阿里 低代码 数字化 钉钉宜搭 浙江工商大学

MongoDB Java 原生使用示例

Java mongodb 4月月更

虎符交易所完成三月份HOO回购 生态板块持续扩展

区块链前沿News

Hoo 虎符交易所 回购

下载软件哪个好?

InfoQ IT百科

电脑上切换输入法的快捷键是什么?

InfoQ IT百科

Chrome如何启用隐身模式?

InfoQ IT百科

APP访问用户的通讯录后,会得到通讯录上的信息吗?

InfoQ IT百科

如何制定移动APP的加载与刷新策略?

InfoQ IT百科

亚马逊云科技平台上的无服务器 WebSocket

亚马逊云科技 (Amazon Web Services)

Serverless websocket 亚马逊云科技 appsync

开源规则引擎——ice:致力于解决灵活繁复的硬编码问题

声网

开源 规则引擎 Dev for Dev

深入浅出 Ext4 块和 Inode 分配器的优化(下)

焱融科技

云计算 高性能 文件存储 文件系统

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