写点什么

利用事件简化系统架构

  • 2013-05-02
  • 本文字数:636 字

    阅读完需:约 2 分钟

在小型业务组件之间使用事件进行交互可以简化系统架构,上周 Russ Miles 在探讨“通过事件简化架构( Architectural Simplicity through Events )”时谈到了这一点。

简洁真的非常重要 Barbara Liskov QCon London 2013 的主题演讲中这样说。资深顾问 Russ Miles 对此深表赞同。他的经验是,团队的开发速度经常因所编写代码体积和复杂性的增长而放缓。他认为简化架构是帮助团队保持开发势头并加快开发过程的最佳方式。

对 Russ 而言,组件结构在简化架构方面非常重要。将组件放置在传统的分层模型中往往会把事情弄得一团糟。因此他创建了 Life-Preserver 模型(形成了一个环),所有的基础设施软件都在环上处理集成,而核心业务组件在环内加入业务价值。他指出该模式与 Alistair Cockburn 创建的六边形架构( Hexagonal Architecture )风格非常相似。

事件

下一步是定义组件如何彼此合作。因为我们很可能并不是一开始就知道所有交互,因此可以通过发送事件保持系统的灵活性。组件要遵守的唯一契约是事件的接收与广播,这为我们带来了一个标准的事件驱动架构,不过该架构是组件级的。

管道与过滤器

再进一步,Russ 几乎将组件缩减成了函数,从强类型事件变为简单的数据,比如,以文档或XML 的形式,使核心通信方式与集成组件和外部事件之间的通信方式相同。这一步使架构变为了在小型组件之间分享不可变数据,而每个组件就是负责对数据做某种处理并返回数据,这就是管道与过滤器模式,不过是在系统架构内部而已。

查看英文原文: Events bring Simplicity to a System’s Architecture

2013-05-02 08:544014
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 135.2 次阅读, 收获喜欢 35 次。

关注

评论

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

使用 Spring Boot 构建可重用的模拟模块

码语者

Spring Boot Module

[ CloudWeGo 微服务实践 - 07 ] 阶段总结

baiyutang

golang 微服务 11月日更

Flink 实践教程-入门(5):写入 ClickHouse

腾讯云大数据

流计算 Oceanus

构筑“数据连接器”,腾讯云大数据推出“开源开放”战略

腾讯云大数据

大数据

Prometheus HTTP API 查询(二) 表达式查询

耳东@Erdong

Prometheus PromQL HTTP API 11月日更

GitHub标星139K的:“嵌入式Linux系统开发教程”

Java Linux 编程 程序员

在线2-36进制转文本工具

入门小站

工具

08 K8S之资源对象介绍

穿过生命散发芬芳

k8s 11月日更

Go语言,深入了解 RWMutex 实现原理

微客鸟窝

Go 语言 11月日更

【死磕NIO】— 阻塞、非阻塞、同步、异步,傻傻分不清楚

chenssy

11月日更 死磕 Java 死磕 NIO

树莓派

IT蜗壳-Tango

11月日更

模块9 毕设

SAKIN

龙蜥操作系统将捐赠开放原子开源基金会

OpenAnolis小助手

Linux centos 开源社区 开放原子开源基金会

巩固Java基础,备战来年跳槽——你的薪资自己说了算

Java 编程 程序员 面试 线程

阿里云性能测试服务PTS新面貌 - 压测协议、施压能力全新升级

阿里巴巴中间件

阿里云 中间件 性能测试 SaaS 压测

linux几个没用但是有趣的命令

入门小站

Linux

《Kubernetes in action 读书笔记》:容器技术的发展

后台技术汇

Kubernetes 11月日更

aardio 开发桌面应用,这几点必须要掌握!

星安果

Python aardio

移动端自动化 AutoJS 快速入门指南

星安果

自动化 Autojs

死锁是如何工作的

卢卡多多

死锁 11月日更

Android C++系列:通过 JNI 访问 Java 字段和方法调用

轻口味

android 11月日更

Flink 实践教程-入门(4):读取 MySQL 数据写入到 ES

腾讯云大数据

流计算 Oceanus

GitHub多次霸榜,两个月拿下10000+Star,不愧是阿里内部开源的SpringCloud Alibaba笔记

Sakura

Java 编程 架构 面试 计算机

7张图揭晓RocketMQ存储设计的精髓

阿里巴巴中间件

阿里云 技术 RocketMQ 中间件 存储

浅谈DNS递归解析和迭代解析之间的区别

喀拉峻

网络安全

科技热点周刊|马斯克卖掉特斯拉 10% 股票;Facebook 停用面部识别系统;微软拥抱 Metaverse;雅虎退出中国

青云技术社区

云计算 facebook

远程代码执行漏洞分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

设计模式【3.3】-- CGLIB动态代理源码解读

秦怀杂货店

Java 设计模式

如何解决 fs.renameSync() 跨区移动文件的问题

liuzhen007

11月日更

基于 RocketMQ 构建阿里云事件驱动引擎EventBridge

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件 事件总线

算法入门-快速排序

ES_her0

11月日更

利用事件简化系统架构_架构_Jan Stenberg_InfoQ精选文章