前言
在當(dāng)今的數(shù)字化經(jīng)濟(jì)時(shí)代学密,微服務(wù)架構(gòu)已經(jīng)成為公司業(yè)務(wù)構(gòu)建的主流架構(gòu)模式纪岁,代表了未來(lái)的技術(shù)發(fā)展趨勢(shì),同時(shí)微服務(wù)也成為開(kāi)發(fā)者的必備技能则果。
微服務(wù)經(jīng)過(guò)了長(zhǎng)足的發(fā)展,在每個(gè)階段所產(chǎn)生的信息都很多漩氨。在信息爆炸的當(dāng)今西壮,找到一份將信息梳理得井井有條的資料,是提升學(xué)習(xí)效率的最佳途徑叫惊。
今天推薦的這份資料款青,層次分明,分為原理篇霍狰、實(shí)踐篇和進(jìn)階篇抡草,適用于更廣泛的人群。理論篇對(duì)新手入門非常友好蔗坯,實(shí)踐篇非常適合在工作中解決實(shí)際問(wèn)題的開(kāi)發(fā)者康震,進(jìn)階篇?jiǎng)t面向響應(yīng)式編程和云原生架構(gòu),是高手的必備技能宾濒。
這份資料不僅適合初學(xué)者深入理解微服務(wù)架構(gòu)腿短,也可以作為團(tuán)隊(duì)管理者或者架構(gòu)師進(jìn)階微服務(wù)架構(gòu)的技術(shù)參考手冊(cè)。
原理篇
目前不僅各大互聯(lián)網(wǎng)公司已經(jīng)在大規(guī)模地應(yīng)用微服務(wù)架構(gòu),而且傳統(tǒng)行業(yè)也逐漸接受了這種架構(gòu)模式橘忱,紛紛開(kāi)始采用微服務(wù)架構(gòu)構(gòu)建業(yè)務(wù)系統(tǒng)赴魁。為什么微服務(wù)架構(gòu)會(huì)如此受歡迎?微服務(wù)架構(gòu)是設(shè)計(jì)而來(lái)還是演變而來(lái)的呢钝诚?要了解這些問(wèn)題颖御,我們需要從現(xiàn)代經(jīng)濟(jì)模式和企業(yè)組織架構(gòu)入手來(lái)了解微服務(wù)架構(gòu)崛起的時(shí)代背景。
有些公司對(duì)微服務(wù)架構(gòu)存在著“盲目崇拜”凝颇,大型企業(yè)在做微服務(wù)架構(gòu)上的成功更加增加了人們轉(zhuǎn)型微服務(wù)架構(gòu)的信心潘拱,但是大公司的技術(shù)實(shí)踐未必適用于你所在的公司,我們有必要重新審視微服務(wù)架構(gòu)祈噪,了解微服務(wù)的采用前提泽铛。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的軟件思想體系和方法論可以用于指導(dǎo)微服務(wù)建設(shè)模式、微服務(wù)劃分辑鲤、微服務(wù)架構(gòu)設(shè)計(jì)等相關(guān)工作盔腔,它可以促使技術(shù)人員與領(lǐng)域?qū)<疫_(dá)成共識(shí),構(gòu)建領(lǐng)域邊界合理月褥、具備明確界限上下文弛随、關(guān)系注點(diǎn)分離、獨(dú)立自治的微服務(wù)宁赤。
實(shí)踐篇
微服務(wù)本身是一種架構(gòu)風(fēng)格舀透,也是指導(dǎo)組織構(gòu)建軟件的一系列環(huán)節(jié)佳實(shí)踐集合。然而决左,業(yè)務(wù)團(tuán)隊(duì)在拆分應(yīng)用后愕够,會(huì)產(chǎn)生更多細(xì)粒度增幅務(wù),并面臨這些服務(wù)在分布式網(wǎng)絡(luò)環(huán)境中的復(fù)雜性佛猛。如何專心事業(yè)無(wú)邏輯而不陷入微服務(wù)架構(gòu)的技術(shù)細(xì)節(jié)惑芭,對(duì)開(kāi)發(fā)者來(lái)說(shuō)是一大難題。
在微服務(wù)架構(gòu)中继找,幫助開(kāi)發(fā)者快速構(gòu)建應(yīng)用的腳手架技術(shù)無(wú)疑是非常重要的遂跟。以Spring Boot為代表的基底技術(shù)在繼承了Spring框架思想的同時(shí)將簡(jiǎn)潔便利、約定優(yōu)于配置婴渡、開(kāi)箱即用等特性進(jìn)一步發(fā)揚(yáng)光大幻锁。然而僅僅依靠Spring Boot還不足以支撐微服務(wù)架構(gòu)應(yīng)對(duì)服務(wù)高可用、服務(wù)動(dòng)態(tài)配置边臼、服務(wù)高可擴(kuò)展哄尔、服務(wù)負(fù)載均衡、服務(wù)容錯(cuò)與隔離等非功能需求柠并,我們還需要相關(guān)基礎(chǔ)設(shè)施提供服務(wù)治理及管控能力究飞。
系統(tǒng)集成是相對(duì)拆分而言的置谦,當(dāng)巨石型應(yīng)用拆分為細(xì)粒度的微服務(wù)后,錯(cuò)綜復(fù)雜的代碼可以分解為獨(dú)立的模塊加以治理亿傅。然而媒峡,傳統(tǒng)應(yīng)用內(nèi)部原本基于方法的調(diào)用方式可能會(huì)轉(zhuǎn)變?yōu)榭邕M(jìn)程的分布式網(wǎng)絡(luò)調(diào)用方式,網(wǎng)絡(luò)的不可靠性給服務(wù)模塊之間的交互帶來(lái)了復(fù)雜性葵擎。所以谅阿,微服務(wù)系統(tǒng)的集成對(duì)微服務(wù)架構(gòu)能否成功落地至關(guān)重要。
在微服務(wù)架構(gòu)下酬滤,對(duì)于數(shù)據(jù)一致性的處理签餐,強(qiáng)調(diào)一致性的事務(wù)管理機(jī)制不一定是適合的解決方案,之前單體架構(gòu)下強(qiáng)一致性的事務(wù)模式在微服務(wù)架構(gòu)中可能會(huì)帶來(lái)一系列性能損失和數(shù)據(jù)一致性問(wèn)題與挑戰(zhàn)戰(zhàn)盯串。微服務(wù)架構(gòu)有很多不同的設(shè)計(jì)考量氯檐,它強(qiáng)調(diào)去中心化的數(shù)據(jù)治理理念,更強(qiáng)調(diào)每個(gè)微服務(wù)都擁有自己獨(dú)立的數(shù)據(jù)存儲(chǔ)体捏,而不同服務(wù)在數(shù)據(jù)共享方面需要采取一定的策略和補(bǔ)償方式來(lái)保證數(shù)據(jù)的一致性冠摄。通過(guò)對(duì)TCC、Saga等模式的介紹几缭,我們可以了解當(dāng)前微服務(wù)架構(gòu)數(shù)據(jù)的最種一致性解決方案河泳。
目前,越來(lái)越多開(kāi)發(fā)者采用微服務(wù)進(jìn)行軟件構(gòu)建和云原生架構(gòu)的開(kāi)發(fā)年栓,對(duì)自動(dòng)化運(yùn)維工具的需求也越來(lái)越大拆挥。微服務(wù)拆分后,細(xì)粒度的服務(wù)足夠小某抓,可以獨(dú)立部署纸兔,能做到對(duì)變化及時(shí)響應(yīng),持續(xù)集成和持續(xù)部署成為微服務(wù)規(guī)姆窀保化交付的基石汉矿。本章我們將介紹軟件交付的演進(jìn)歷史,同時(shí)會(huì)探討微服務(wù)采用什么工具保證持續(xù)集成與持續(xù)交付副编,最后介紹脫胎于微服務(wù)架構(gòu)思想的容器技術(shù)如何來(lái)幫助微服務(wù)持續(xù)集成和交付。
微服務(wù)的引入會(huì)帶來(lái)分布式下服務(wù)監(jiān)控和服務(wù)治理的技術(shù)挑戰(zhàn)流强,之前系統(tǒng)內(nèi)部的方法調(diào)用轉(zhuǎn)變成分布式網(wǎng)絡(luò)下的RPC痹届,對(duì)于服務(wù)之間的交互集成和架構(gòu)設(shè)計(jì)有更高的約束和要求。面對(duì)規(guī)拇蛟拢化的容器集群部署队腐、不同種類的監(jiān)控?cái)?shù)據(jù)類型、海量的微服務(wù)奏篙,服務(wù)監(jiān)控和服務(wù)治理成為微服務(wù)控制系統(tǒng)的關(guān)鍵組成部分柴淘。
進(jìn)階篇
響應(yīng)式編程(Reactive Programming)是相對(duì)于命令式編程的一種全新的編程模型迫淹,是基于數(shù)據(jù)流變化傳播的編程范式。響應(yīng)式編程具備快速響應(yīng)为严、不可變性敛熬、高并發(fā)、異步非阻塞第股、規(guī)模擴(kuò)展应民、代碼可讀性高等諸多優(yōu)勢(shì)。Java編程領(lǐng)域出現(xiàn)了眾多基于響應(yīng)式流規(guī)范的編程開(kāi)發(fā)框架夕吻。本章我們會(huì)從響應(yīng)式編程動(dòng)機(jī)诲锹、響應(yīng)式編程基本概念、響應(yīng)式宣言開(kāi)始介紹涉馅,引出響應(yīng)式編程的基本特性(數(shù)據(jù)流归园、背壓等)和核心概念。
Kubernetes作為分布式容器編排及管理系統(tǒng)稚矿,本身采用了微服務(wù)的架構(gòu)設(shè)計(jì)思想和理念庸诱。本章我們會(huì)簡(jiǎn)單介紹Kubernetes的基本概念和關(guān)鍵組件,同時(shí)講解Kubernetes與Spring Cloud的生態(tài)融合盐捷。
隨著Docker技術(shù)的普及和Kubernetes在互聯(lián)網(wǎng)公司的大量部署與使用偶翅,微服務(wù)架構(gòu)正在圍繞應(yīng)用如何易于開(kāi)發(fā)交付、減少資源消耗碉渡、無(wú)侵入治理等方面進(jìn)行變革和演進(jìn)聚谁。本章我們將講解云原生架構(gòu)、Service Mesh技術(shù)滞诺、無(wú)服務(wù)器架構(gòu)(Serverless)技術(shù)形导。
趨勢(shì)與未來(lái)
目前暗赶,微服務(wù)技術(shù)的發(fā)展趨勢(shì)是對(duì)基礎(chǔ)設(shè)施層的進(jìn)一步沉淀蹈丸,實(shí)現(xiàn)現(xiàn) 業(yè) 務(wù) 與 微 服 務(wù) 底 層 架 構(gòu) 運(yùn) 行 時(shí) 的 分 離 它改。 以 Service Mesh 县好、Serverless技術(shù)為代表的事件驅(qū)動(dòng)形式的微服務(wù)架構(gòu)末购,將成為下一階段微服務(wù)的發(fā)展趨勢(shì)和重點(diǎn)關(guān)注領(lǐng)域躏仇。隨著云原生平臺(tái)的重塑昙衅,微服務(wù)將進(jìn)一步演進(jìn)纵东,平臺(tái)將使開(kāi)發(fā)人員更加專注于業(yè)務(wù)邏輯實(shí)現(xiàn)煞檩,抽離的基礎(chǔ)服務(wù)將極大地提升開(kāi)發(fā)人員的生產(chǎn)力处嫌,圍繞著微服務(wù)、云原生基礎(chǔ)設(shè)施斟湃、演進(jìn)式架構(gòu)熏迹,這里既充滿挑戰(zhàn),也將會(huì)迸發(fā)出更多的生機(jī)與機(jī)遇凝赛。
專家引言
本書結(jié)構(gòu)清晰注暗,從原理坛缕、實(shí)踐、進(jìn)階三個(gè)方面對(duì)微服務(wù)架構(gòu)進(jìn)行深度解析捆昏。涵蓋內(nèi)容豐富赚楚,從領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)到微服務(wù)治理,從SpringCloud生態(tài)到響應(yīng)式微服務(wù)架構(gòu)體系建設(shè)屡立。如果你正在進(jìn)行Java微服務(wù)架構(gòu)設(shè)計(jì)直晨,或者正打算快速學(xué)習(xí)基于Spring Cloud的微服務(wù)架構(gòu),本書將為你節(jié)省許多寶貴的時(shí)間膨俐。
——黃勇 《架構(gòu)探險(xiǎn)》作者勇皇,阿里巴巴高級(jí)架構(gòu)師
需要的請(qǐng)移步主頁(yè)