<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          讀《中臺架構(gòu)與實現(xiàn)》

          共 2026字,需瀏覽 5分鐘

           ·

          2021-05-24 18:45

          最早是在極客時間知道歐創(chuàng)新老師的,我也是他的課程《DDD實戰(zhàn)課》的訂閱者,后來歐老師基于這門課程做更多的實踐與思考,完成了《中臺架構(gòu)與實現(xiàn):基于 DDD 和微服務(wù)》這本書的寫作,最近剛好讀完了這本書。

          中臺、微服務(wù)、DDD,這三個都是比較大的概念,每一個在市面上都有很多相關(guān)的書籍,一本書想要把三者都介紹得非常深入,不太容易,但本書很好地結(jié)合大量的案例將三者串聯(lián)起來,能夠讓我們了解更多概念性內(nèi)容之外,也能指導(dǎo)我們動手進(jìn)行實踐。

          從本書的副標(biāo)題:基于 DDD 和微服務(wù),可以得知:

          • 本書是介紹如何采用 DDD 和 微服務(wù)的方式來落地中臺的架構(gòu)和實現(xiàn),是一本偏實踐的書;
          • DDD 和微服務(wù)是相輔相成的,至于為什么,從書中可以找到答案。

          中臺最早是阿里在 2015 年提出的,具體故事是這樣的:

          馬云當(dāng)時在芬蘭考察一家叫 Supercell 的游戲公司,該公司員工數(shù)不到 200,一年的利潤卻高達(dá) 15 億美金,很重要的原因就是 Supercell 公司把游戲開發(fā)中大量重復(fù)的工作整理出來,開發(fā)成工具供所有人使用,大大提高了效率。馬云深受啟發(fā),回來后便提出了中臺戰(zhàn)略。

          中臺大體分為業(yè)務(wù)中臺、數(shù)據(jù)中臺和技術(shù)中臺,但其本質(zhì)都是能力的復(fù)用,說起復(fù)用,作為程序員的我們就非常熟悉了,抽取公共函數(shù)、公共類庫、自研一些中間件或者使用開源中間件,都是為了復(fù)用提高效率,這樣看來,即便我們處在中小公司,「中臺」離我們也沒那么遙遠(yuǎn)。

          微服務(wù)架構(gòu)是  Martin Flower 大神在 2014 年提出,這個概念針對的是我們常見的單體應(yīng)用,是為了解決單體應(yīng)用的一些常見問題:

          • 技術(shù)棧受限,新技術(shù)較難引進(jìn);
          • 任何修改需整個部署,持續(xù)交付周期長;
          • 可靠性,一個模塊的問題可能導(dǎo)致整個應(yīng)用的問題。

          所以在微服務(wù)的架構(gòu)中,我們可以:

          • 解決復(fù)雜問題,將復(fù)雜的問題分而治之;
          • 不同的微服務(wù)可以使用不同技術(shù)棧,發(fā)揮各家之長;
          • 獨立部署,能更快地迭代,符合敏捷的開發(fā)思想。

          但,微服務(wù)也不是銀彈,帶來好處的同時,也勢必會帶來很多的問題,關(guān)于問題在后面的微服務(wù)系列再詳細(xì)來講。

          而提到微服務(wù)的框架,最容易想到的就是 Spring Cloud,里面包含一堆解決微服務(wù)架構(gòu)的各種問題的組件,比如:

          • Eureka:服務(wù)發(fā)現(xiàn);
          • Feign:微服務(wù)之間的遠(yuǎn)程調(diào)用;
          • Hystrix:實現(xiàn)熔斷和限流;
          • Zuul:服務(wù)網(wǎng)關(guān);
          • Sleuth:鏈路追蹤;
          • Connfig:配置中心。

          在 dotNET Core 中目前還沒有比較成熟的類似 Spring Cloud 這樣的全家桶(也可能是我還不知道),但通過一些開源組件一樣能夠構(gòu)建微服務(wù)系統(tǒng):

          • 服務(wù)發(fā)現(xiàn):Consul;
          • 鏈路跟蹤:SkyWalking 或 Twitter 的 Zipkin
          • 遠(yuǎn)程調(diào)用:Grpc;
          • 熔斷和限流:Polly;
          • 服務(wù)網(wǎng)關(guān):Ocelot;
          • 配置中心:Apollo;

          我們都知道微服務(wù)就是要將一個大的應(yīng)用進(jìn)行拆分,上面提到的組件都是解決拆分后所帶來的的問題,但具體一個復(fù)雜應(yīng)用應(yīng)該怎樣拆分,應(yīng)該按照什么粒度進(jìn)行拆分,在微服務(wù)架構(gòu)中并沒有很好的指引,這時就需要 DDD 了。

          DDD 是一種架構(gòu)思想,是由著名建模專家 Eric Evans 在 2004 年提出,分為戰(zhàn)略層面和戰(zhàn)術(shù)層面,在戰(zhàn)略層面,主要講的就是如何進(jìn)行系統(tǒng)拆分。正好彌補(bǔ)了微服務(wù)的不足,所以在近些年微服務(wù)比較火熱的情況下,DDD 也煥發(fā)了第二春。

          DDD 中引入了很多的名詞概念:領(lǐng)域、子域、通用域、支撐域、核心域、領(lǐng)域事件、限界上下文、聚合、聚合根、實體、值對象等。初學(xué)者光是弄懂這些概念需要花費很大的功夫,更別提使用 DDD 來進(jìn)行代碼落地了。

          在本書中,有關(guān) DDD 我印象很深的就是書中使用桃樹做類比來模擬進(jìn)行領(lǐng)域的分解,將我們熟悉概念和知識類比到 DDD 中陌生的術(shù)語,可以快速地幫助我們理解 DDD 中的各種術(shù)語。

          那么中臺,微服務(wù)和 DDD 又是什么關(guān)系呢?這里引用書中的一張原圖:

          • 上面的中臺可以泛指所有的復(fù)雜業(yè)務(wù)系統(tǒng),既然是復(fù)雜系統(tǒng)就需要分而治之,怎么分?就靠 DDD 中的戰(zhàn)略層面的指導(dǎo)思想;
          • 分解完后,再集合 DDD 戰(zhàn)術(shù)層面的思想和微服務(wù)的技術(shù)框架就能很好進(jìn)行代碼落地了。

          市面上很多介紹 DDD 的書籍,即便是在講戰(zhàn)術(shù)層面,也很晦澀難懂,看完除了概念更熟悉了點之外,依然不知道怎樣進(jìn)行代碼編寫。而這正是本書的優(yōu)勢所在,除了有標(biāo)準(zhǔn)的代碼模型,還有具體示例的代碼詳解。這也是我看此書覺得比較驚喜的地方。

          看完這本書,我依然不敢說我對中臺、DDD 和微服務(wù)有多深的了解,但我相信有了這本書的基礎(chǔ),再去閱讀 Eric Evans 等大神的著作,應(yīng)該能收獲更多、也會更加深入。

          瀏覽 129
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色五月婷激情视频在线 | 91人妻无码一区二区三区 | 俺来也成人 | 能看毛片的网站 | 蜜桃免费视频 |