微服務(wù)架構(gòu) | 1. 微服務(wù)相關(guān)基礎(chǔ)知識(shí)

前言

參考資料
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服務(wù)原理與實(shí)戰(zhàn)》
《B站 尚硅谷 SpringCloud 框架開(kāi)發(fā)教程 周陽(yáng)》

本篇主要介紹一些通用概念概述、組件對(duì)比與系列筆記的目錄結(jié)構(gòu)說(shuō)明踪少;


1. 分布式相關(guān)理論

1.1 分布式計(jì)算系統(tǒng)的 CAP 理論

https://www.runoob.com/w3cnote/zookeeper-tutorial.html

1.2 BASE 理論

https://www.runoob.com/w3cnote/zookeeper-tutorial.html


2. 微服務(wù)架構(gòu)發(fā)展歷程

2.1 單體架構(gòu)

  • 通常來(lái)說(shuō)抓韩,如果一個(gè) war 包或者 jar 包里包含一個(gè)應(yīng)用的所有功能,則稱為單體架構(gòu)唉铜;
  • 優(yōu)點(diǎn):架構(gòu)簡(jiǎn)單摊聋、能快速開(kāi)發(fā)與上線锯梁;
  • 缺點(diǎn):后端服務(wù)器負(fù)載越來(lái)越高戳稽、業(yè)務(wù)場(chǎng)景復(fù)雜;
商城系統(tǒng)單體架構(gòu).png

2.2 集群與垂直化

  • 當(dāng)業(yè)務(wù)量擴(kuò)大時(shí)痹仙,服務(wù)負(fù)載過(guò)高是尔,維護(hù)和部署成本增加,可以從兩個(gè)方面優(yōu)化:
    • 橫向增加服務(wù)器开仰,把單臺(tái)機(jī)器變成多機(jī)集群拟枚;
    • 按照業(yè)務(wù)的垂直領(lǐng)域進(jìn)行拆分,減少業(yè)務(wù)的耦合度众弓,以及降低單個(gè) war 包帶來(lái)的伸縮性困難問(wèn)題恩溅;
商城系統(tǒng) SOA 架構(gòu).png

2.3 SOA(面向服務(wù)架構(gòu))

  • SOA 核心目標(biāo)是把一些通用的、會(huì)被多個(gè)上層服務(wù)調(diào)用的共享業(yè)務(wù)提取成獨(dú)立的基礎(chǔ)服務(wù)谓娃,這些被提取出來(lái)的共享服務(wù)相對(duì)來(lái)說(shuō)比較獨(dú)立脚乡,并且可以重用;
  • SOA 架構(gòu)主要解決了兩個(gè)問(wèn)題:信息孤島滨达、共享業(yè)務(wù)的重用奶稠;
商城系統(tǒng) SOA 架構(gòu).png

2.4 微服務(wù)架構(gòu)

  • 面向服務(wù)(SOA)和微服務(wù)本質(zhì)上都是服務(wù)化思想的一種體現(xiàn);
  • 如果 SOA 是面向服務(wù)開(kāi)發(fā)思想的雛形捡遍,那么微服務(wù)就是針對(duì)可重用業(yè)務(wù)服務(wù)的更進(jìn)一步優(yōu)化锌订;
  • 可以把 SOA 看成微服務(wù)的超集,也就是多個(gè)微服務(wù)可以組成一個(gè)SOA服務(wù)画株;
  • 實(shí)施微服務(wù)的前提是軟件交付鏈路及基礎(chǔ)設(shè)施的成熟化辆飘;
  • 因此微服務(wù)本質(zhì)上是服務(wù)化思想的最佳實(shí)踐方向;


    商城系統(tǒng)微服務(wù)架構(gòu).png

2.4.1 SOA 與微服務(wù)架構(gòu)的關(guān)注點(diǎn)

  • SOA:服務(wù)的重用性及解決信息孤島問(wèn)題谓传;
  • 微服務(wù)架構(gòu):解耦蜈项,降低業(yè)務(wù)之間的耦合度。微服務(wù)會(huì)更多地關(guān)注在 DevOps 的持續(xù)交付上续挟,微服務(wù)與容器化技術(shù)的結(jié)合更加緊密紧卒;


3. 云計(jì)算概述

3.1 云計(jì)算的幾種模式

三種核心基本模式

  • 基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service, IaaS);
  • 平臺(tái)即服務(wù)(Platform as a Service, PaaS)庸推;
  • 軟件即服務(wù)(Software as a Service, SaaS)常侦;
    • Spring Cloud 討論的是基于 IaaS 的微服務(wù);

兩種新興模式

  • 函數(shù)即服務(wù)(Functions as a Service, FaaS)贬媒;
  • 容器即服務(wù)(Container as a Service, CaaS)


4. 微服務(wù)架構(gòu)概述

4.1 一個(gè)簡(jiǎn)單的微服務(wù)架構(gòu)圖

一個(gè)簡(jiǎn)單的微服務(wù)架構(gòu)圖.png

4.2 微服務(wù)架構(gòu)的五大特性

微服務(wù)架構(gòu)的五大特性.png
  • 位置透明聋亡;
  • 大小適當(dāng);
  • 可伸縮际乘;
  • 可重復(fù)坡倔;
  • 有彈性;

4.3 微服務(wù)架構(gòu)討論了什么

微服務(wù)架構(gòu)討論了什么.png
  • 服務(wù)粒度;
  • 通信協(xié)議罪塔;
  • 接口設(shè)計(jì)投蝉;
  • 配置管理;
  • 事件處理征堪;

4.4 按模式分的微服務(wù)組件

按模式分的微服務(wù)組件.png
按模式分的微服務(wù)組件2.png

4.5 微服務(wù)架構(gòu)的優(yōu)點(diǎn)與挑戰(zhàn)

微服務(wù)架構(gòu)的優(yōu)點(diǎn)讓我們選擇微服務(wù)作為企業(yè)級(jí)架構(gòu)方案瘩缆,微服務(wù)的技術(shù)挑戰(zhàn)則要通過(guò)學(xué)習(xí)、設(shè)計(jì)甚至開(kāi)發(fā)一些組件去解決佃蚜;

  • 架構(gòu)優(yōu)點(diǎn)
    • 復(fù)雜度可控庸娱;
    • 技術(shù)選型更靈活;
    • 獨(dú)立部署谐算;
    • 容錯(cuò)性熟尉;
  • 架構(gòu)挑戰(zhàn)
    • 故障排查;
    • 分布式架構(gòu)的復(fù)雜性洲脂;
    • 服務(wù)依賴斤儿;
    • 運(yùn)維成本;
  • 技術(shù)挑戰(zhàn)
    • 分布式配置中心恐锦;
    • 服務(wù)路由往果;
    • 負(fù)載均衡;
    • 熔斷限流一铅;
    • 鏈路監(jiān)控棚放;

4.6 本系列筆記將討論什么

本系列筆記將在介紹微服務(wù)架構(gòu)需要什么功能同時(shí)給出市面上常見(jiàn)的幾種解決方案,他們通常被稱為組件馅闽;

五大核心功能及其組件

  • 配置中心;
  • 注冊(cè)中心馍迄;
  • 服務(wù)調(diào)用福也;
  • 服務(wù)容災(zāi)與降級(jí);
  • 網(wǎng)關(guān)路由攀圈;

其他特色擴(kuò)展功能及其組件

  • 安全保護(hù)暴凑;
  • 事件驅(qū)動(dòng);
  • 服務(wù)總線赘来;
  • 分布式追蹤现喳;
  • 分布式事務(wù);
  • RPC 通信犬辰;
  • 等...


5. 主流 Spring Cloud 組件

  • Spring Cloud 不是一個(gè)框架嗦篱,而是一套規(guī)范。其對(duì) Spring Boot 在次封裝后屏蔽復(fù)雜的配置幌缝,給開(kāi)發(fā)者提供了良好的開(kāi)箱即用的微服務(wù)規(guī)范灸促;
  • Spring Cloud Netflix、Spring Cloud Condul、Spring Cloud Alibaba 才是 Spring Cloud 規(guī)范的實(shí)現(xiàn)浴栽;
  • 目前主流的 Spring Cloud 治理方案主要由 Spring Cloud Netflix 和 Spring Cloud Alibaba 提供荒叼;
  • 相比 Spring Cloud Netflix,Spring Cloud Alibaba 在服務(wù)治理方面更適用于國(guó)內(nèi)技術(shù)場(chǎng)景典鸡;

5.1 組件對(duì)比圖

大致為 Netflix 版與 Alibaba 版的對(duì)比被廓;

組件對(duì)比圖.png

5.2 Spring Cloud五大組件:

  • 注冊(cè)中心 Netflix Eureka;
  • 客服端負(fù)載均衡 Netflix Ribbon萝玷;
  • 斷路器 Netflix Hystrix嫁乘;
  • 服務(wù)網(wǎng)關(guān) Netflix Zuul;
  • 布式配置 Config间护;

5.3 Spring Cloud Alibaba 技術(shù)架構(gòu)圖

Spring Cloud Alibaba 技術(shù)架構(gòu)圖.png

5.4 各廠商 Spring Cloud 技術(shù)架構(gòu)圖

各廠商 Spring Cloud 技術(shù)架構(gòu)圖.png


6. 一些資源鏈接

7. 本系列筆記的編寫思想

7.1 目錄結(jié)構(gòu)

  • 主要分有一級(jí)標(biāo)題和二級(jí)標(biāo)題,一二級(jí)標(biāo)題都是一篇文章痴突;
    • 為方便說(shuō)明搂蜓,下面用 XXX 代表:配置中心、注冊(cè)中心辽装、服務(wù)調(diào)用等功能帮碰;
    • 用 YYY 代表:Eureka、Spring Cloud Config拾积、Zuul 等細(xì)分組件殉挽;
  • 其中一級(jí)標(biāo)題表示概述,目錄結(jié)構(gòu)如下:
    • XXX 基礎(chǔ)知識(shí):對(duì)微服務(wù)(注冊(cè)中心拓巧、配置斯碌、網(wǎng)關(guān)等)做系統(tǒng)的概述;
    • YYY 組件分析:里面有個(gè)鏈接肛度,可以跳轉(zhuǎn)至對(duì)應(yīng)細(xì)分文章傻唾;
  • 二級(jí)標(biāo)題為組件實(shí)戰(zhàn),目錄結(jié)構(gòu)如下:
    • YYY 基礎(chǔ)知識(shí):介紹一些 YYY 組件的理論知識(shí)與面試考點(diǎn)承耿;
    • 使用 YYY 組件構(gòu)建服務(wù):實(shí)戰(zhàn)部分冠骄;
  • 其中 YYY 組件實(shí)戰(zhàn)部分又可大致總結(jié)為:
    • 引入 pom.xml 依賴文件;
    • 修改 .yml 配置文件加袋;
    • 在主程序類上添加注解凛辣;
    • 編寫業(yè)務(wù)類(Config、Service锁荔、Controller 等)蟀给;



最后

\color{blue}{\rm\small{新人制作蝙砌,如有錯(cuò)誤,歡迎指出跋理,感激不盡择克!}}

\color{blue}{\rm\small{歡迎關(guān)注我,并與我交流前普!}}

\color{blue}{\rm\small{如需轉(zhuǎn)載肚邢,請(qǐng)標(biāo)注出處!}}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拭卿,一起剝皮案震驚了整個(gè)濱河市骡湖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌峻厚,老刑警劉巖响蕴,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異惠桃,居然都是意外死亡浦夷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門辜王,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)劈狐,“玉大人,你說(shuō)我怎么就攤上這事呐馆》实蓿” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵汹来,是天一觀的道長(zhǎng)续膳。 經(jīng)常有香客問(wèn)我,道長(zhǎng)收班,這世上最難降的妖魔是什么姑宽? 我笑而不...
    開(kāi)封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮闺阱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舵变。我一直安慰自己酣溃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布纪隙。 她就那樣靜靜地躺著赊豌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绵咱。 梳的紋絲不亂的頭發(fā)上碘饼,一...
    開(kāi)封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼艾恼。 笑死住涉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钠绍。 我是一名探鬼主播舆声,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼柳爽!你這毒婦竟也來(lái)了媳握?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤磷脯,失蹤者是張志新(化名)和其女友劉穎蛾找,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體赵誓,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡打毛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了架曹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隘冲。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绑雄,靈堂內(nèi)的尸體忽然破棺而出展辞,到底是詐尸還是另有隱情,我是刑警寧澤万牺,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布罗珍,位于F島的核電站,受9級(jí)特大地震影響脚粟,放射性物質(zhì)發(fā)生泄漏覆旱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一核无、第九天 我趴在偏房一處隱蔽的房頂上張望扣唱。 院中可真熱鬧,春花似錦团南、人聲如沸噪沙。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)正歼。三九已至,卻和暖如春拷橘,著一層夾襖步出監(jiān)牢的瞬間局义,已是汗流浹背喜爷。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萄唇,地道東北人檩帐。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像穷绵,于是被迫代替她去往敵國(guó)和親轿塔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容