读《中台架构与实现》

最早是在极客时间知道欧创新老师的,我也是他的课程《DDD实战课》的订阅者,后来欧老师基于这门课程做更多的实践与思考,完成了《中台架构与实现:基于 DDD 和微服务》这本书的写作,最近刚好读完了这本书。

中台、微服务、DDD,这三个都是比较大的概念,每一个在市面上都有很多相关的书籍,一本书想要把三者都介绍得非常深入,不太容易,但本书很好地结合大量的案例将三者串联起来,能够让我们了解更多概念性内容之外,也能指导我们动手进行实践。

从本书的副标题:基于 DDD 和微服务,可以得知:

  • 本书是介绍如何采用 DDD 和 微服务的方式来落地中台的架构和实现,是一本偏实践的书;

  • DDD 和微服务是相辅相成的,至于为什么,从书中可以找到答案。

中台最早是阿里在 2015 年提出的,具体故事是这样的:

马云当时在芬兰考察一家叫 Supercell 的游戏公司,该公司员工数不到 200,一年的利润却高达 15 亿美金,很重要的原因就是 Supercell 公司把游戏开发中大量重复的工作整理出来,开发成工具供所有人使用,大大提高了效率。马云深受启发,回来后便提出了中台战略。

中台大体分为业务中台、数据中台和技术中台,但其本质都是能力的复用,说起复用,作为程序员的我们就非常熟悉了,抽取公共函数、公共类库、自研一些中间件或者使用开源中间件,都是为了复用提高效率,这样看来,即便我们处在中小公司,「中台」离我们也没那么遥远。

微服务架构是  Martin Flower 大神在 2014 年提出,这个概念针对的是我们常见的单体应用,是为了解决单体应用的一些常见问题:

  • 技术栈受限,新技术较难引进;

  • 任何修改需整个部署,持续交付周期长;

  • 可靠性,一个模块的问题可能导致整个应用的问题。

所以在微服务的架构中,我们可以:

  • 解决复杂问题,将复杂的问题分而治之;

  • 不同的微服务可以使用不同技术栈,发挥各家之长;

  • 独立部署,能更快地迭代,符合敏捷的开发思想。

但,微服务也不是银弹,带来好处的同时,也势必会带来很多的问题,关于问题在后面的微服务系列再详细来讲。

而提到微服务的框架,最容易想到的就是 Spring Cloud,里面包含一堆解决微服务架构的各种问题的组件,比如:

  • Eureka:服务发现;

  • Feign:微服务之间的远程调用;

  • Hystrix:实现熔断和限流;

  • Zuul:服务网关;

  • Sleuth:链路追踪;

  • Connfig:配置中心。

在 dotNET Core 中目前还没有比较成熟的类似 Spring Cloud 这样的全家桶(也可能是我还不知道),但通过一些开源组件一样能够构建微服务系统:

  • 服务发现:Consul;

  • 链路跟踪:SkyWalking 或 Twitter 的 Zipkin

  • 远程调用:Grpc;

  • 熔断和限流:Polly;

  • 服务网关:Ocelot;

  • 配置中心:Apollo;

我们都知道微服务就是要将一个大的应用进行拆分,上面提到的组件都是解决拆分后所带来的的问题,但具体一个复杂应用应该怎样拆分,应该按照什么粒度进行拆分,在微服务架构中并没有很好的指引,这时就需要 DDD 了。

DDD 是一种架构思想,是由著名建模专家 Eric Evans 在 2004 年提出,分为战略层面和战术层面,在战略层面,主要讲的就是如何进行系统拆分。正好弥补了微服务的不足,所以在近些年微服务比较火热的情况下,DDD 也焕发了第二春。

DDD 中引入了很多的名词概念:领域、子域、通用域、支撑域、核心域、领域事件、限界上下文、聚合、聚合根、实体、值对象等。初学者光是弄懂这些概念需要花费很大的功夫,更别提使用 DDD 来进行代码落地了。

在本书中,有关 DDD 我印象很深的就是书中使用桃树做类比来模拟进行领域的分解,将我们熟悉概念和知识类比到 DDD 中陌生的术语,可以快速地帮助我们理解 DDD 中的各种术语。

那么中台,微服务和 DDD 又是什么关系呢?这里引用书中的一张原图:

  • 上面的中台可以泛指所有的复杂业务系统,既然是复杂系统就需要分而治之,怎么分?就靠 DDD 中的战略层面的指导思想;

  • 分解完后,再集合 DDD 战术层面的思想和微服务的技术框架就能很好进行代码落地了。

市面上很多介绍 DDD 的书籍,即便是在讲战术层面,也很晦涩难懂,看完除了概念更熟悉了点之外,依然不知道怎样进行代码编写。而这正是本书的优势所在,除了有标准的代码模型,还有具体示例的代码详解。这也是我看此书觉得比较惊喜的地方。

看完这本书,我依然不敢说我对中台、DDD 和微服务有多深的了解,但我相信有了这本书的基础,再去阅读 Eric Evans 等大神的著作,应该能收获更多、也会更加深入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fedora17的gnome3桌面美化

使用fedora已经有一段时间了,感觉还可以. 今天配置一下gnome的桌面吧. 首先要安装一款工具,这个可以说很必要了,当然,好多的博客里也都提到过,这就是 gnome-tweak-tool yum install gnome-tweak-tool 之后呢, 就可以打开这个软件,在附件里, 中文名字叫做高级设置,英文名字叫做…

全球高智商俱乐部门萨出品,最强大脑达人推荐,让孩子挑战脑力极限,玩出高智商思维!...

我们经常听到“脑力体操”(Mind Gymnastic),可能大家都不太懂得是什么。通俗地讲,就是时不时,给大脑来点小体操。可以灵活运用大脑,确保头脑是清醒的。门萨试题作为全球公认的“脑力体操”,它不是数学题,对…

linux关机开机命令详解,Linux关机与重启的命令详解

Linux有如下的关机和重启命令:shutdown, reboot, halt, poweroff,那么它们有什么区别呢?shutdown - 建议使用的命令shutdown是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r是最常用的参数&#x…

Microsoft Build 2021大会开始后,Develop Blog一系列更新

.NET BLOG发布.NET 6预览版4https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-4/发布**.NET MAUI**预览版4https://devblogs.microsoft.com/dotnet/announcing-net-maui-preview-4/介绍运行时.NET热重载时编辑代码的体验https://devblogs.microsoft.com/dotnet…

数学无用论??我们欠孩子真正的数学阅读

说到数学,我想起了13年一场轰动行业各界的“数学无用论”!那时微博上有个话题叫做#让数学滚出高考#,超过7成网友都表示支持,这可怕的比例就能说明在中国由于数学差导致命运被洗牌的真不在少数……甚至大部分人举起了“数学无用论”…

一些积累

为什么80%的码农都做不了架构师?>>> 查看某文件属于哪个RPM包。 我一直使用的是ubuntu,用的是apt-get所以。。,答案是-qf,没有环境没法实验,也不想装rpm在我的ubuntu里。 run level 这个不同的linux发行版…

数据庞大繁杂,如何精简挖掘?

从数据中抽取信息从信息中挖掘知识随着大数据时代的到来,数据挖掘的重要性越发显著。可谓是兵马未至,数据先行。所谓数据挖掘,一般是指从大型数据库中将隐藏的预测信息抽取出来的过程,而更为精确的解释就是“从数据中挖掘知识”。…

Magicodes.IE之总体教程

简介Magicodes.IE,导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。内容合集Magicodes.IE.AspNetCore之一行代码多格式导出Excel模板导出之动态导出 Magicodes.IE Excel合并行数据导入教程…

关于VC6.0 MSDEV.EXE-应用程序错误0x5003eaed指令引用的0x000...

2019独角兽企业重金招聘Python工程师标准>>> 错误现象:VC6.0中,点击add source file或是add header file,add file to project等菜单,将会出现MSDEV.EXE-应用程序错误,并引起VC6.0的自动关闭。 错误原因:可…

pixelbook安装linux系统,谷歌Pixelbook可以运行Fuchsia操作系统 正测试

【PConline资讯】早在2016年就有消息称,谷歌正在开发一款独立于Android和Chrome OS之外的操作系统 “Fuchsia”。尽管迄今为止谷歌根本没有详细说明这个操作系统,但最新文档指出,谷歌Pixelbook 笔记本可以运行Fuchsia系统。据报道&#xff0c…

AlphaGo Zero又上《Science》封面!谷歌的人工智能又干翻人类了!

全世界只有3.14 % 的人关注了数据与算法之美卢sir在回顾2018年的时候,发现居然遗漏了一个“知识点”——在2018年的最后一个月, AlphaGo Zero登上了世界顶级学术期刊《科学》杂志的封面。Google设计了AlphaGo(围棋机器人)的事早已…

【译】.NET 6 Preview 4 Released

.NET 6 Preview 4 Released我们很高兴地发布 .NET 6 Preview 4。现在,我们到 .NET 6 正式发布尚有一半。现在是再次浏览.NET 6 全部内容的好时机,就像第一篇预览文章一样。许多功能处于最终形式,而其他功能也将很快发布,因为已经为…

在终端(Terminal)中用颜色显示不同类型文件

2019独角兽企业重金招聘Python工程师标准>>> 对于从Unix/Linux平台转到Mac的同学来说,“终端”是经常要使用的一个工具。不过可能有很多人已经发现了,当我们使用ls命令来显示目录内容的时候,“终端”对于目录、可执行文件等特殊类…

马斯克要干翻人工智能,“神经蕾丝”能让每个人都能当钢铁侠

全世界只有3.14 % 的人关注了数据与算法之美爱因斯坦曾说过,“在一个崇高的目标支持下,不停地工作,即使慢,也一定会获得成功。”这不2019年刚到来,“硅谷钢铁侠”马斯克就定好了“小目标”了——“给我10年时间&#x…

都 2021 年了,竟然有人搞大数据时忽略 JSON 而去研究用 C# 把 XML 转换为 XML 的技术...

在大数据项目开发过程中,ETL(Extract-Transform-Load)是必不可少。即便目前 JSON 非常流行,开发人员也有必定会有对远古系统的挑战,而 XML 格式的数据源作为经典存在浑身上下散发着浓浓 old money 的味道。因为有 Newt…

新一代来袭︱不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?...

之前小木推荐“德国MINICUTE人体工学腰垫”受到了大家一致的好评和争相购买。小木为什么推荐这一款原因是:据统计,我国腰椎病患者已经突破2亿人。30~40岁人群中,患有颈腰椎病的占比59.1%!而且有着越来越年轻化的趋势,办…

微软放弃IE浏览器 应尽快完成国产化替代

不久前,微软决定在2022年6月15日彻底放弃IE浏览器,全线改用Microsoft Edge。微软官方表示,"我们宣布,Windows 10上的Internet Explorer的未来在Microsoft Edge中,Internet Explorer 11桌面应用程序将于2022年6月1…

各种流行的编程风格

2019独角兽企业重金招聘Python工程师标准>>> 在过去的N年中,我遇到了很多使用囧然不同风格的开发者,下面是我所知道的一些,你还知道其它的吗? 散弹枪编程 这种编程风格是一种开发者使用非常随意的方式对待代码。“嗯&a…

没有标题,配得上这款“俄罗斯方块”

在之前的文章时,马斯提到数学存在一种现象叫“梯次掉队”,原因在于孩子的数学思维地基没有打牢。(传送门)提到初中孩子需要空间想象能力时,很多父母疑惑为何需要?关于这点,小木给大家说明下&…

linux仿真速度快吗,Linux上安装使用最快的GPU加速的终端仿真器Alacritty

这个简单的教程展示了如何通过PPA在Ubuntu 20.04, Ubuntu 20.10, Linux Mint 20中安装最快的终端模拟器Alacritty。Alacritty是一个跨平台、GPU加速的终端模拟器,是现有最快的终端模拟器。可以在macOS、Linux、BSD和Windows上工作。它是一款专注于简单性和性能的免费…