GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

Udi Dahan 探讨事件驱动架构和松耦合系统

2014 年 4 月 17 日

Udi Dahan 在一场演讲中探讨了我们在系统建模的时候,如何使用更加趋于事件驱动和异步的模式,以及向开发中引入这些准则和模式的时候,开发者需要面对的一些挑战。演讲中他强调了这样的观点:我们应该构建更加松耦合的系统,以获得诸如稳健性、弹性和可扩展性等特性。

Udi 是一位专注于分布式系统的架构师,同时也是 NServiceBus 的缔造者。从自身经验中他发现,当架构师和开发者们正在展望小型的、基础的简单系统时,他们往往过早地对何种架构适合系统做出了决策。然而,随着系统的演进,越来越庞大的代码库会引入更多的耦合,有时候这会导致系统中的众多紧耦合混杂成一团,成为一个复杂的“大泥球( Big Ball of Mud )”。

Udi 需要面对的一个挑战,是如何防止系统变成这样乱糟糟的一团,而其中最重要的一部分工作正是保持较低的耦合程度。为了实现这一目标,我们必须在项目早期就引入聚焦于松耦合的模式——相比之下,在项目后期引入完全不同的架构,并重构得到更加松耦合的事件类型系统,是件困难得多的事情。

在演讲中,Udi 重点介绍了发布- 订阅模式,并提到了这样的发现:当引入这种异步通信模式的时候,他往往会找到核心业务领域逻辑中的最佳位置;它包含了最复杂的逻辑,而且由于把铁板一块的整套大型逻辑,转化为若干互相之间异步运行的较小的领域而获益。但是他还强调,不可轻率地做出这样的决策,因为有太多的开发者匆忙地选用这些模式,并将之运用到它们并不适用的地方。

在Udi 看来,松耦合是一柄双刃剑,随着我们将更多的事物之间的联系斩断,它们的耦合度就越低,独立故障和Bug 出现的几率就会越高。而这样做的优势在于,当对某一部分中的一些逻辑做出调整时,导致其他部分出现问题的几率将非常低——最终这将帮助项目更快速完成。

在结束了关于架构的演说之后,Udi 展示了NServicesBus 工具框架的Demo,作为此次演讲的结尾。

NServiceBus 是针对.NET 的一套采用开源许可的服务总线,同时也提供商业授权许可。该总线同时也是更大型服务平台的一部分。

查看英文原文: Udi Dahan on Event-Driven Architecture and Loosely Coupled Systems

2014 年 4 月 17 日 20:041210
用户头像

发布了 256 篇内容, 共 50.5 次阅读, 收获喜欢 4 次。

关注

评论

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

面试字节跳动定级2-2,拿32*16offer,P8大佬的面试教程给了我春天!

Java架构之路

Java 程序员 架构 面试 编程语言

发布两小时!火爆Github的阿里内部Java面试突击手册,搞定金三银四无压力

神奇小汤圆

Java 编程 程序员 架构 面试

APICloud多端开发 | 在线教育App模板源码讲解

APICloud

软件开发 在线教育 移动开发 APP开发 APICloud

Hystrix 实战经验分享

vivo互联网技术

Java 服务器 熔断 Hystrix

区块链重新定义支付结算,让行业更便捷高效

CECBC区块链专委会

移动支付

简单粗暴实现深色模式

小小

深色模式

第七次作业

秦挺

Docker 教程(1)---Docker简介与安装

AlbertYang

Docker

盘点数字人民币试点地区 哪里既可申请开通又能领红包?

CECBC区块链专委会

数字人民币

从无到有实现音视频通讯

anyRTC开发者

ios android 音视频 WebRTC RTC

阿里P9在Github上分享的Java面试突击手册,凭借它,我拿下了阿里P7的offer!

Java架构之路

Java 程序员 架构 面试 编程语言

字节金三银四Java面试题库被泄露,GitHub连夜被下架

Java架构师迁哥

全文检索工具包Lucene入门教程

AlbertYang

lucene

Service Mesh框架选型对比分析:Linkerd、Envoy、Istio、Conduit

xcbeyond

Service Mesh 服务网格 3月日更

百度直播消息服务架构实践

百度Geek说

手机 直播 移动端

zookeeper的watch机制

大数据技术指南

大数据 zookeeper 3月日更

Java中的锁居然有这么多!

神奇小汤圆

Java 程序员 架构

「 视频云大赛 — 大咖驾到 」驱动下一代技术浪潮,我们更专注价值落地

阿里云视频云

阿里云 音视频 视频处理

什么样的技术能进入一线大厂?这份阿里、百度、腾讯等 20家Java岗招聘要求梳理报告,会给你答案;

Java架构之路

Java 程序员 架构 面试 编程语言

NodeJS基础入门教程(1)-一文让你快速了解什么是NodeJS

AlbertYang

nodejs

UDTS上线数据集成服务,汇聚多源数据帮助企业高效分析决策

UCloud技术

数据传输 数据集成

身份认证之多因素身份认证(MFA)

龙归科技

第三方登录 统一身份认证

大咖云集!阿里达摩院领航大数据 + AI向量检索专场Meetup回顾(内含讲师PPT领取)

Proxima 技术社区

人工智能 大数据 阿里巴巴 搜索 向量检索

搭建博客可能会用到的 Git 命令|学习笔记

彭宏豪95

学习 极客时间 笔记

校招社招皆宜!阿里强推面试突击手册真就无敌了!

Java王路飞

Java 程序员 架构 面试 阿里

比特币:21世纪的终极离岸银行

CECBC区块链专委会

比特币

软硬皆施!被誉为Java岗Offer收割机的阿里2021面试全栈图集宝典也太香了!

程序员小毕

Java 程序员 架构 面试 大厂

Flink 执行引擎:流批一体的融合之路

Apache Flink

flink

Flink VS Spark

五分钟学大数据

flink spark 3月日更

vue+typescript实现组件封装之button篇

小小

typescript Vue

使用组件的细节点

小小

DNSPod与开源应用专场

DNSPod与开源应用专场

Udi Dahan探讨事件驱动架构和松耦合系统-InfoQ