写点什么

Vaughn Vernon 谈微服务和领域驱动设计

  • 2016-08-02
  • 本文字数:979 字

    阅读完需:约 3 分钟

虽然单体应用程序也可以实现相当好地建模,但它们常常会演变成一团乱麻。究其原因是单体应用程序内的多个领域模型错综复杂地交织在一起。根据 Vaughn Vernon 的经验,这种情况在几周或几个月内就会出现。在今年早些时候举行的 Scala Days 大会上,他在演讲中表达了这样的观点。

Vernon 是《实现领域驱动设计》和《通过Actor 模型实现响应式消息处理模式》这两本书的作者。他指出,当应该保持独立的领域模型混在了一起,互相无法区分时,就很难或者不可能和业务及领域专家一起从逻辑上推断模型,让应用或系统比单体应用程序还糟糕。

单体应用程序的一个替代方案是微服务,但我们如何定义一个微服务?它有多大?有时候,人们提出使用代码行定义微服务的大小,Vernon 见过以数十行为标准的,也见过一上千行为标准的,但他不主张采用这样一种既宽泛又不准确的定义。

此外,有些企业号称有数以百计的微服务,但又不知道或者不关心准确数值。他们认为,不值得花费时间和精力去弄清它们的实际使用情况,因为,只是让它们运行起来的话,成本会很低。Vernon 对此作出了回应。他不同意这样的观点。他指出,别的不说,基础设施对于许多微服务如何运行,如何在故障情况下保持弹性,有重大的影响。

Vernon 建议采用一种规定性的方法确定一个系统里微服务的大小和数量:使用领域驱动设计(DDD)的方法,尤其是有界上下文。他指出,在微服务社区里,有时候会将有界上下文定义成只有一个实体,但他发现那不大可能。相反,Vernon 支持借助通用语言在大小确定的有界上下文中建模微服务,并提到了Sam Newman 的著作《构建微服务》。

在开始使用微服务的时候,Vernon 建议从每个有界上下文一个微服务开始。他认为,即使我们能够在一个有界上下文中找出多个本身可以视为微服务的组件,但它们的内聚性和协同关系意味着它们应该一起放在一个服务里。他还建议,一个服务和一个有界上下文应该是一个可部署的单元。尽管如此,根据经验,他们可能会采用更细的粒度,为一个有界上下文创建更多的微服务和可部署单元,可能是因为扩展性方面的原因。

除了实体之外,通用语言还包括命令和事件消息。通过发布最终供其他微服务使用的事件,消息可以用在事件驱动的架构中。在演讲总结阶段,Vernon 展示了一个构建微服务的例子。该例子使用了 Actor 模型,并使用 Akka Scala 实现。

查看英文原文: Vaughn Vernon on Microservices and Domain-Driven Design

2016-08-02 19:003014
用户头像

发布了 1008 篇内容, 共 429.6 次阅读, 收获喜欢 346 次。

关注

评论

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

中文汉化版Navicat数据库 Navicat Premium 15直装版 mac/win

Rose

以创新保障数据安全,华为云空间亮相国家网络安全宣传周

最新动态

百度梁志祥:樱桃好吃树好栽 智能体让营销更简单

极客天地

mac苹果电脑风扇控制软件:Macs Fan Control Pro for mac 激活版

你的猪会飞吗

mac软件下载 Mac软件下载站 mac破解软件下载

相约华中科技大学,移动云技术论坛来了!NineData受邀参会并分享

NineData

移动云 NineData 华中科技大学

CleanMyMac X for mac(Mac清理优化工具) v5beta中文激活版

Rose

iShowU Studio for mac(强大的屏幕录像编辑工具)v2.3.15激活版

Rose

Redis集群slot迁移改造实践

vivo互联网技术

redis集群 slot迁移 水平扩缩容

flowjo for mac安装教程 Mac流式细胞分析软件 支持M1/M2

Rose

魔乐开发者社区正式上线,AI开发者快来撩!

天翼云开发者社区

开发者社区 天翼云

如何让JS代码变的安全?

天翼云开发者社区

前端 网络安全

TDengine 首席架构师肖波演讲整理:探索新型电力系统的五大关键场景与挑战

TDengine

数据库 tdengine 时序数据库

华为发布会开场舞《见非凡》诠释卓越品质,Hi-Res原曲上线华为音乐

最新动态

落地数仓数据模型自动、可持续长效治理之策

Aloudata

数据仓库 数据治理 数据模型 数据血缘 主动元数据

百度智能云向量数据库创新和应用实践分享

百度Geek说

数据库 百度云 数据 大模型 知识库

选购小间距LED屏幕的技巧

Dylan

技术 分辨率 LED显示屏 led显示屏厂家 市场

截图和屏幕录制工具 CleanShot X for mac v4.7.3激活版

Rose

从表级血缘、列级血缘到算子级血缘,给企业数据管理带来哪些帮助?

Aloudata

全链路数据血缘 数据血缘 数据链路 主动元数据

解锁数据潜力,天翼云TeleDB为企业数智蝶变添力赋能!

天翼云开发者社区

数据库 云计算 云原生 天翼云

在广袤的数据通信旷野,“伙伴+华为”体系点亮星云

脑极体

通信

人工智能 | ChatGPT 插件开发

测试人

人工智能 软件测试

Microsoft Office LTSC 2024 For Mac永久许可证

Rose

功能强大且灵活的虚拟插件Blue Cat Audio Blue Cat PatchWork mac蓝猫桥接插件

Rose

Topaz Video AI v5.3.2激活版 mac地表最强视频无损放大修复工具

Rose

Nova for Mac 代码编辑器 v11.10中文版

Rose

鸿蒙NEXT生态应用核心技术理念:可分可合,自由流转

芯盾时代

鸿蒙 终端

虚拟机热迁移技术介绍

天翼云开发者社区

云计算 虚拟机

Cisco ACI Simulator 6.0(7e)M 发布下载,新增功能简介

sysin

Cisco sdn 思科 ACI

张靓颖时隔9年华为发布会再唱《我的梦》,来华为音乐赏高燃重现

最新动态

Vaughn Vernon谈微服务和领域驱动设计_语言 & 开发_Jan Stenberg_InfoQ精选文章