秒懂了微服务架构,看这本书就够了!
通過采用微服務(wù)架構(gòu),企業(yè)最大的收益是幫助內(nèi)部IT建設(shè)沿著可演進的方向發(fā)展、支持靈活擴展、降低運維成本、快速響應(yīng)業(yè)務(wù)變化。
這些底層技術(shù)能力的提升讓業(yè)務(wù)更加敏捷、成本可控,企業(yè)也可以從中獲得技術(shù)紅利和市場的競爭優(yōu)勢。
那么有什么方法可以讓我們在較短的時間內(nèi)掌握并且能夠游刃有余地發(fā)揮微服務(wù)帶給我們的開發(fā)成效呢?
看書顯然是一條捷徑,有人給你整理好,并且成本非常低。
目前市面上不乏介紹各種微服務(wù)開發(fā)框架和技術(shù)實踐的書籍,也有專注于微服務(wù)理論知識的講解,但總覺得看了不解渴。
因此,王佩華老師希望通過理論與實踐結(jié)合,層次分明、由淺入深地將微服務(wù)架構(gòu)梳理清楚,并呈現(xiàn)給不同學(xué)習(xí)階段的人群。
于是,《微服務(wù)架構(gòu)深度解析:原理、實踐與進階》誕生了!
本書的主要特色
平衡了微服務(wù)的理論與實踐工程
微服務(wù)架構(gòu)技術(shù)棧全面覆蓋
生命周期完整的軟件工程歷程介紹
Spring Boot框架及Spring Cloud核心組件的源碼解析
互聯(lián)網(wǎng)開源項目成功落地及大廠推廣經(jīng)驗
響應(yīng)式微服務(wù)編程范式升級進階?
本書內(nèi)容劇透
在理論篇,可以帶領(lǐng)新人快速入門微服務(wù)架構(gòu)。
在實踐篇,可以讓實際的開發(fā)者深入Spring Boot和Spring Cloud源碼,解決實際工作中的問題,掌握分布式系統(tǒng)構(gòu)建的經(jīng)驗。
在進階篇,響應(yīng)式編程和云原生架構(gòu)是高階人群重點關(guān)注領(lǐng)域和技術(shù)趨勢。
通過這樣漸進式的講解和梳理,搭建一個微服務(wù)架構(gòu)師所需要具備的完整架構(gòu)體系和知識技能框架。
▊?微服務(wù)架構(gòu)理論
雖然微服務(wù)的發(fā)展已經(jīng)相對成熟,但是依然有很多開發(fā)人員或管理者對微服務(wù)的概念及理論存在理解上的誤區(qū)。
典型的理解誤區(qū)是將某種技術(shù)框架或者編程風(fēng)格與微服務(wù)相混淆;此外,還有將容器技術(shù)等同于微服務(wù)架構(gòu)的誤解。
針對上述問題,本書系統(tǒng)性地介紹了微服務(wù)概念的背景來源、不同版本定義及“最佳實踐”集合的微服務(wù)特征介紹。
在“架構(gòu)設(shè)計哲學(xué)”一節(jié)中,本書將微服務(wù)架構(gòu)與UNIX設(shè)計哲學(xué)進行了創(chuàng)新性的概念比對和關(guān)聯(lián),可以更加深刻地理解微服務(wù)架構(gòu)的理論內(nèi)涵。
在“微服務(wù)與云原生”一節(jié)中,本書總結(jié)了微服務(wù)與云原生架構(gòu)的關(guān)系,以及云原生成熟度的分層等級,從中擴展了微服務(wù)架構(gòu)的概念外延。
此外,采用微服務(wù)架構(gòu)需要有一定的使用場景和約束條件,如果不加思索地在項目中使用微服務(wù),將緊耦合的模塊強行拆分,反而化簡為繁,增加了系統(tǒng)的復(fù)雜度和團隊的運維負擔(dān)。
為此,書中列舉了多種微服務(wù)使用場景,以及微服務(wù)架構(gòu)的采用前提。另外,通過揭示組織結(jié)構(gòu)、研發(fā)流程與技術(shù)之間隱含的隱射關(guān)系,我們可以更深入地了解他們對微服務(wù)架構(gòu)產(chǎn)生的影響。相信通過這些內(nèi)容的介紹可以快速幫助工程師做出決策,避免陷入困境。
▊?使用微服務(wù)構(gòu)建業(yè)務(wù)應(yīng)用
微服務(wù)架構(gòu)快速發(fā)展的一個主要驅(qū)動力來自業(yè)務(wù)應(yīng)用的規(guī)模增長,以及對業(yè)務(wù)復(fù)雜性的有效控制。
相比傳統(tǒng)的單體架構(gòu),微服務(wù)架構(gòu)強調(diào)將業(yè)務(wù)應(yīng)用與底層的非功能需求、第三方軟件進行最大化的剝離,使應(yīng)用服務(wù)聚焦在業(yè)務(wù)核心邏輯處理上,而不是將精力耗費在非業(yè)務(wù)功能上。
傳統(tǒng)的單體架構(gòu)在微服務(wù)化轉(zhuǎn)型過程中,面臨服務(wù)拆分以及服務(wù)復(fù)用,服務(wù)之間接縫設(shè)計等眾多問題,在“微服務(wù)構(gòu)建”一章中,我們針對業(yè)務(wù)開發(fā)人員關(guān)心的微服務(wù)模塊劃分、業(yè)務(wù)領(lǐng)域建模、服務(wù)如何擴展等問題通過實際項目案例進行詳盡解析。
“領(lǐng)域驅(qū)動設(shè)計的核心概念”一節(jié),講解了如何使用領(lǐng)域模型將產(chǎn)品需求與代碼實現(xiàn)進行映射關(guān)聯(lián),如何將業(yè)務(wù)中容易變化的元素與核心業(yè)務(wù)邏輯進行解耦。
通過“業(yè)務(wù)運營監(jiān)控項目”實際案例,從理解問題域、整理需求文檔、提煉問題域、挖掘隱藏的核心領(lǐng)域模型、服務(wù)拆分、定義界限上下文、領(lǐng)域建模等步驟進行闡述,通過一系列的慢動作拆解,讓你可以清晰了解整個微服務(wù)構(gòu)建的設(shè)計過程。
“微服務(wù)化改造”一節(jié)對微服務(wù)改造的時機、常見的技術(shù)債務(wù)、微服務(wù)改造模式進行了全面的總結(jié)。
“微服務(wù)構(gòu)建進階”一節(jié)從更宏觀的軟件構(gòu)建視角切入總結(jié)微服務(wù)構(gòu)建的最佳實踐。通過總結(jié)若干架構(gòu)原則,作為指導(dǎo)系統(tǒng)設(shè)計和編程的開發(fā)約束,使得系統(tǒng)構(gòu)建不會出現(xiàn)大的偏差。
▊?微服務(wù)架構(gòu)之Spring Cloud技術(shù)生態(tài)
傳統(tǒng)的單體架構(gòu)基于Tomcat中間件或者J2EE模型,很多都是建立在IDC機房和小型機基礎(chǔ)之上的,這種臃腫的架構(gòu)已經(jīng)無法滿足互聯(lián)網(wǎng)公司快速增長的業(yè)務(wù)規(guī)模,同時隨著云計算時代的到來,過去應(yīng)用部署的打包方式和運行方式都難以支撐快速的業(yè)務(wù)迭代。
在“腳手架”一章中,通過源碼詳解一步步帶你了解Spring Boot以注解為核心的“約定大于設(shè)計”的設(shè)計理念、強大的自動裝配機制、Spring Boot啟動以及擴展點設(shè)計的詳細流程。
Spring Boot常用的Starter、如何實現(xiàn)自定義Starter、生產(chǎn)就緒特性、安全管理機制、Spring Boot 嵌入式Web容器的啟動原理都將逐一詳解。
Spring Cloud作為開源社區(qū)最為完整的微服務(wù)架構(gòu)開發(fā)者平臺,為開發(fā)人員提供了分布式系統(tǒng)需要的注冊中心、配置中心、斷路器、負載均衡等關(guān)鍵組件和微服務(wù)治理核心能力。本書通過對這些組件的原理介紹、使用案例、源碼分析,帶領(lǐng)開發(fā)者逐步掌握構(gòu)建微服務(wù)架構(gòu)的核心治理組件。
Spring Cloud技術(shù)生態(tài)主要解決的是微服務(wù)架構(gòu)的服務(wù)治理技術(shù)復(fù)雜性問題。社區(qū)通過提供一系列開源工具和框架解決微服務(wù)架構(gòu)面臨的網(wǎng)絡(luò)動態(tài)性、高可用、高并發(fā)流量控制、彈性、容錯性等等問題。而這些分布式組件在開發(fā)中所經(jīng)常遇到的核心知識點和難點,以及如何擴展開發(fā)都將在書中為大家分析解答。相信對于類似的微服務(wù)技術(shù)或組件也能觸類旁通,舉一反三。
▊ 微服務(wù)與分布式中間件
微服務(wù)化架構(gòu)給系統(tǒng)在軟件工程代碼結(jié)構(gòu)、應(yīng)用交互方式、數(shù)據(jù)存儲模式上都帶來了極大的變化。
單體獨立進程下CPU的控制邏輯和模塊之間耦合、隔離問題需要向分布式系統(tǒng)下的I/O傳輸控制進行復(fù)雜性轉(zhuǎn)移。
這里就面臨如何使用合理的分布式中間件進行系統(tǒng)的集成、ORM數(shù)據(jù)存儲等解決方案。
“系統(tǒng)集成”一章體系化地梳理了影響微服務(wù)與微服務(wù)之間交互集成效率的三個主要因素:網(wǎng)絡(luò)協(xié)議、I/O模式以及序列化方式。
“Rest服務(wù)集成”一節(jié)詳細地講解了REST成熟度模型以及REST的重要核心概念,介紹了Restful架構(gòu)與HTTP協(xié)議關(guān)系以及Swagger接口文檔規(guī)范,還講解了Feign、JAX-RS等主流分布式框架源碼解析及原理分析。
“RPC遠程過程調(diào)用”一節(jié)詳細帶你了解主流的RPC框架,包含Dubbo分布式框架的RPC調(diào)用過程、源碼跟蹤以及SPI機制分析,還有Spring Cloud集成gRPC及gRP遠程調(diào)用源碼分析。
在“MOM消息隊列”一節(jié),對Spring Cloud Stream分布式消息處理框架,基于透明的消息驅(qū)動模式,進行了深入的源碼分析與解析。此外,還對Kafka、RabbitMQ的應(yīng)用場景和特性進行了介紹,并通過案例介紹如何使用SCS框架進行事件驅(qū)動的架構(gòu)模型開發(fā)。
在微服務(wù)與存儲之間,介紹了微服務(wù)框架經(jīng)常使用Spring Data框架,以及微服務(wù)架構(gòu)下分布式事務(wù)一致性的常見解決方案。
需要說明的是這些分布式中間件在我們的微服務(wù)架構(gòu)體系中依然還是有侵入性的問題,隨著云原生架構(gòu)的普及,這些中間件正在逐步下沉到網(wǎng)格層,并逐漸與業(yè)務(wù)進程分離,目標是成為語言無關(guān)的普惠技術(shù),正如現(xiàn)在有一些消息服務(wù)中間件已經(jīng)脫離了本地代碼包的依賴,這將是一個微服務(wù)架構(gòu)發(fā)展的趨勢,越來越多業(yè)務(wù)應(yīng)用也將從中受益,變得更加靈活、輕便。
▊?微服務(wù)的Devops方法論?
Devops的目標是小步快跑,使快速迭代、頻繁發(fā)布、開發(fā)運維一體化。
對于由數(shù)十人合作集成開發(fā)的項目,協(xié)作過程是一件困難的事情,系統(tǒng)順暢的持續(xù)集成、持續(xù)發(fā)布需要一個規(guī)范化和流程化工具以可視化的方式完成自動化交付并形成閉環(huán)。
在”微服務(wù)交付”一章中,我們詳細地介紹了“容器”作為微服務(wù)化的一個標準交付單元,如何將應(yīng)用以及應(yīng)用依賴的環(huán)境打包,使得部署交付不再受到環(huán)境限制。通過Docker構(gòu)建部署交付過程的詳細解析,掌握容器帶給我們快速交付的技能。
在“服務(wù)監(jiān)控治理”一章中,我們通過對監(jiān)控系統(tǒng)的原理進行介紹和對監(jiān)控進行分類,體系化地掌握監(jiān)控系統(tǒng)的指標類、日志類、調(diào)用鏈類三種監(jiān)控治理手段和常用的技術(shù)棧。
在“指標型數(shù)據(jù)監(jiān)控”一節(jié),對于喜歡Java底層字節(jié)碼攔截技術(shù)的開發(fā)者可以學(xué)習(xí)到JavaAgent技術(shù)、JVM的instrument機制以及Javaassist框架等技術(shù)。你可以將這些技術(shù)快速地應(yīng)用到實際的業(yè)務(wù)和應(yīng)用場景中去。
▊ 擁抱響應(yīng)式編程和云原生
在微服務(wù)開發(fā)領(lǐng)域,Spring5集成Reactor響應(yīng)式框架為Java開發(fā)者帶來了編程模型和編程范式的革命性的技術(shù),從Spring Boot2到Spring Cloud生態(tài)體系,面向函數(shù)式編程以及使用響應(yīng)式框架可以應(yīng)對快速響應(yīng)、擴展性、易于維護等方面的業(yè)務(wù)。
在“響應(yīng)式編程”一節(jié),書中通過實際的Bench Mark分析,詳細地解釋了響應(yīng)式編程的動機,分析在用戶激增場景下,系統(tǒng)內(nèi)部的結(jié)構(gòu)性瓶頸限制對系統(tǒng)的可伸縮性的影響。
在“響應(yīng)式技術(shù)框架”一節(jié), 書中詳細介紹了目前主流的響應(yīng)式框架技術(shù),包含JDK9中響應(yīng)式框架標準以及Flow API、RxJava響應(yīng)式框架、Spring技術(shù)生態(tài)下的Reactor框架、VertX響應(yīng)式框架。
書中對Spring Boot 2.x響應(yīng)式編程框架的核心組件、Spring WebFlux框架的源碼解析以及原理進行了介紹,同時比較了Spring MVC框架與Spring WebFlux的差異以及優(yōu)劣勢。對Spring Cloud Gateway項目介紹了核心概念、工作原理、源碼分析,并基于Spring Cloud Gateway源碼實現(xiàn)了動態(tài)路由功能的二次開發(fā)以及代碼講解。
Kubernetes已經(jīng)成為容器編排的事實標準,并成為微服務(wù)應(yīng)用的最佳部署管理平臺。從微服務(wù)生態(tài)的角度,相比Spring Cloud,Kubernetes擁有更加完整的、技術(shù)棧多樣性支撐生態(tài),提供更加廣泛的微服務(wù)組件和基礎(chǔ)設(shè)施能力。本書重點介紹了Kubernetes的微服務(wù)化設(shè)計理念以及與Spring Cloud生態(tài)融合的項目。
“微服務(wù)的發(fā)展趨勢”一節(jié)對云原生架構(gòu)進行了詳盡的闡述,并介紹了Java在云原生架構(gòu)下的應(yīng)用優(yōu)化策略,以及Service Mesh和Serveless技術(shù)的發(fā)展趨勢。
業(yè)界專家力薦
▊《微服務(wù)架構(gòu)深度解析:原理、實踐與進階》
王佩華?著
十多年經(jīng)驗集大成
從分布式到微服務(wù),從SpringBoot到SpringCloud各組件,從Docker到Kubernetes,從領(lǐng)域驅(qū)動設(shè)計到響應(yīng)式編程和云原生
本書從微服務(wù)架構(gòu)的設(shè)計理念和方法論切入,從不同角度全面介紹微服務(wù)特性、使用場景、組織流程、構(gòu)建交互、部署交付等軟件工程各個關(guān)鍵環(huán)節(jié)和核心要素,既包含了具體微服務(wù)技術(shù)的源碼解讀、原理分析,也加入了作者在電信、金融領(lǐng)域積累的真實案例和實踐經(jīng)驗。
本書不僅適合初學(xué)者深入理解微服務(wù)架構(gòu),也可以作為團隊管理者或者架構(gòu)師進階微服務(wù)架構(gòu)的技術(shù)參考手冊。
(滿100減50,快快掃碼搶購吧!)
如果喜歡本文 歡迎?在看丨留言丨分享至朋友圈?三連 點擊閱讀原文也可購買哦總結(jié)
以上是生活随笔為你收集整理的秒懂了微服务架构,看这本书就够了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nyoj - 概率计算 926
- 下一篇: DevOps是微服务的秘方