写点什么

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

评论

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

Python实战之用内置模块来构建REST服务、RPC服务

山河已无恙

RPC REST API Python.

技术分享 | 跨平台API对接(Java)

霍格沃兹测试开发学社

Nft数字藏品app开发,开发数字藏品系统

开源直播系统源码

数字藏品 数字藏品软件开发 数字藏品开发 数字藏品系统

干货 | Pytest 结合 Allure 生成测试报告

霍格沃兹测试开发学社

Python条件语句怎么用

和牛

Python 8月月更

没有一个顺手的流程绘制工具?好吧,自己动手,丰衣足食!

江南一点雨

Java springboot BPMN

最新出炉!深度解读《中国DevOps现状调查报告(2022)》

嘉为蓝鲸

DevOps

测试左移之Sonarqube maven项目分析

霍格沃兹测试开发学社

从 “搞不清楚” 到 “都明白了” 的费曼

图灵社区

量子力学 物理学家

干货 | 通用 api 封装实战,带你深入理解 PO

霍格沃兹测试开发学社

分布式数据中心网络互联技术实现

C++后台开发

数据库 分布式 后端开发 Linux服务器开发 C++开发

干货 | 实战演练基于加密接口测试测试用例设计

霍格沃兹测试开发学社

CI 可观测性使变更管理发挥作用|Foresight

观测云

他只是试图运用自己的能力,给这个领域带来改变

图灵社区

通信 科学史

设计模式的艺术 第三章单例设计模式练习(设计一个数据库连接池,能自行提供指定个数实例对象的数据库连接类)

代廉洁

设计模式的艺术

我是一个垃圾

蝉沐风

JVM 老年代 垃圾回收 GC 新生代

渗透测试 vs 漏洞扫描:差异与不同

SEAL安全

网络安全 渗透测试 软件安全 软件供应链安全

APICloud 可视化编程 - 拖拉拽实现专业级源码

YonBuilder低代码开发平台

低代码开发 多端开发 可视化开发

实战演示 H5 性能分析

霍格沃兹测试开发学社

这些并发容器的坑,你要谨记

华为云开发者联盟

后端 开发

对话彩生活:“互联网+物业”数智化转型的BI应用实践

观远数据

企业号九月金秋榜

详解 OpenDAL |Data Infra 研究社第三期

Databend

线上直播 大数据 开源 databend OpenDAL Datafuse Labs

【DBA100人】李建明:一名普通DBA的14年技术之路与成长智慧

OceanBase 数据库

即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术

JackJiang

网络安全 网络编程 即时通讯 IM openssl

从 “搞不清楚” 到 “都明白了” 的费曼

图灵教育

量子力学 物理学家

Dubbo 3.1.0 正式发布,数据面原生接入 Service Mesh

阿里巴巴云原生

阿里云 云原生 dubbo

长安链源码分析启动(1)

长安链

测试左移之Sonarqube scanner使用

霍格沃兹测试开发学社

测试右移之logstash完整配置实例

霍格沃兹测试开发学社

「海格通信」化繁为简!云管升级助力海格通信创新之路提速

嘉为蓝鲸

云管理

长安链源码分析启动(2)

长安链

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