开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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

评论

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

M1电脑运行Windows10弹出“内部版本已过期”的解决方法

Rose

pd虚拟机 M1电脑 Windows内部版本已经过期

TypeScript 与 JavaScript:你应该知道的区别

京东科技开发者

JavaScript typescript 前端 后端 企业号 3 月 PK 榜

京东云RASP云原生安全免疫创新实践

京东科技开发者

Web 安全 漏洞 业务安全 企业号 3 月 PK 榜

你代码的异味是故意的还是不小心?是故意的!

禅道项目管理

适用于 Apple Silicon (M1芯片)的 Photoshop常见问题及解决方案

理理

PhotoShop PS常见问题

探索 Pixelmator Pro 3新功能——AI智能模板

Rose

Pixelmator Pro Mac修图软件

跨端技术或许是提升软件运维效率的利器

FinFish

小程序化 小程序技术 高效运维 软件运维

从原生迈向混合,小而美团队如何搞定APP高效定制

华为云开发者联盟

App 华为云 定制开发 华为云开发者联盟 企业号 3 月 PK 榜

Dubbo Triple 协议

昵称不能为null

dubbo RPC triple协议

云智慧助力中国信通院组装式应用开发平台系列标准建设

云智慧AIOps社区

取得成功的 13 个方法

宇宙之一粟

个人成长 翻译 成功

FDF循环互助游戏系统开发智能合约搭建

薇電13242772558

智能合约

数据测试实践:从一个bug开始的大数据引擎兼容性探索

京东科技开发者

大数据 bug修复 引擎 测试数据构造 企业号 3 月 PK 榜

Flink Table Store 0.3 构建流式数仓最佳实践

Apache Flink

大数据 flink 实时计算

Sovit3D平台快速构建智慧渔业三维可视化养殖管理系统

2D3D前端可视化开发

智慧渔业 智慧渔场 智慧水产养殖 数字渔业 渔业数字孪生

软件测试 | Elasticsearch+Kibana

测吧(北京)科技有限公司

测试

React等前端框架如何与小程序结合

Onegun

前端 前端框架 React Vue 3

ins视频保姆级图文教程,快学起来!

frank

解决mac电脑打开应用“意外退出”的问题 (点按“重新打开”以再次打开应用程序)

理理

PHPStorm 意外退出 mac电脑

量化合约对冲交易app系统开发源代码

开发微hkkf5566

融云入选中国信通院《高质量数字化转型产品及服务全景图》

融云 RongCloud

产品 数字化 通讯

软件测试 | 什么是Logstach

测吧(北京)科技有限公司

测试

软件测试 | 质量控制

测吧(北京)科技有限公司

测试

精选案例 | 博睿数据30w+监测节点护航新华网、人民网两会重保工作

博睿数据

可观测性 智能运维 博睿数据 精选案例 主动式拨测

聊聊线上发布这件事

老张

软件测试 权限管理 服务部署

告别数据开发中的人工审核!火山引擎DataLeap落地“自动校验开发规范”能力

字节跳动数据平台

大数据 数据治理 数据研发 企业号 3 月 PK 榜

openEuler用户软件仓(EUR)介绍

openEuler

Linux 操作系统 虚拟机 openEuler 软件包

R-Drop论文复现与理论讲解

华为云开发者联盟

人工智能 华为云 深度神经网络 华为云开发者联盟 企业号 3 月 PK 榜

Higress on K8s 5分钟开箱即用

阿里巴巴中间件

阿里云 云原生 Higress

小程序技术如何提升企业的移动研发效率?

FinFish

降本增效 小程序容器 移动研发 小程序技术

详解神经网络中反向传播和梯度下降

华为云开发者联盟

人工智能 神经网络 华为云 华为云开发者联盟 企业号 3 月 PK 榜

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