一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

微服務(wù)概述

 hewii 2022-11-03 發(fā)布于上海

開篇

剛開始進入軟件行業(yè)時還是單體應(yīng)用的時代,前后端分離的概念都還沒普及,開發(fā)的時候需要花大量的時間在“強大”的JSP上面,那時候SOA已經(jīng)算是新技術(shù)了?,F(xiàn)在,微服務(wù)已經(jīng)大行其道,有哪個互聯(lián)網(wǎng)產(chǎn)品不說自己是微服務(wù)架構(gòu)呢?

但是,對于微服務(wù)的理解每個人都不太一樣,這篇文章主要是聊一聊我對微服務(wù)的理解以及如何搭建經(jīng)典的微服務(wù)架構(gòu),目的是梳理一下自己的一些想法,如果存在不同看法的歡迎指正!

什么是微服務(wù)

首先,什么是微服務(wù)呢?

單體應(yīng)用

相對的,要理解什么是微服務(wù),那么可以先理解什么是單體應(yīng)用,在沒有提出微服務(wù)的概念的“遠古”年代,一個軟件應(yīng)用,往往會將應(yīng)用所有功能都開發(fā)和打包在一起,那時候的一個B/S應(yīng)用架構(gòu)往往是這樣的:

B/S

但是,當(dāng)用戶訪問量變大導(dǎo)致一臺服務(wù)器無法支撐時怎么辦呢?加服務(wù)器加負載均衡,架構(gòu)就變成這樣了:

B/S+負載均衡

后面發(fā)現(xiàn)把靜態(tài)文件獨立出來,通過CDN等手段進行加速,可以提升應(yīng)用的整體相應(yīng),單體應(yīng)用的架構(gòu)就變成:

B/S+前后端分離

上面3中架構(gòu)都還是單體應(yīng)用,只是在部署方面進行了優(yōu)化,所以避免不了單體應(yīng)用的根本的缺點:

  • 代碼臃腫,應(yīng)用啟動時間長;(代碼超過1G的項目都有?。?/p>

  • 回歸測試周期長,修復(fù)一個小小bug可能都需要對所有關(guān)鍵業(yè)務(wù)進行回歸測試。

  • 應(yīng)用容錯性差,某個小小功能的程序錯誤可能導(dǎo)致整個系統(tǒng)宕機;

  • 伸縮困難,單體應(yīng)用擴展性能時只能整個應(yīng)用進行擴展,造成計算資源浪費。

  • 開發(fā)協(xié)作困難,一個大型應(yīng)用系統(tǒng),可能幾十個甚至上百個開發(fā)人員,大家都在維護一套代碼的話,代碼merge復(fù)雜度急劇增加。

微服務(wù)

我認為任何技術(shù)的演進都是有跡可循的,任何新技術(shù)的出現(xiàn)都是為了解決原有技術(shù)無法解決的需求,所以,微服務(wù)的出現(xiàn)就是因為原來單體應(yīng)用架構(gòu)已經(jīng)無法滿足當(dāng)前互聯(lián)網(wǎng)產(chǎn)品的技術(shù)需求。

在微服務(wù)架構(gòu)之前還有一個概念:SOA(Service-Oriented Architecture)-面向服務(wù)的體系架構(gòu)。我認為的SOA只是一個架構(gòu)模型的方法論,并不是一個明確而嚴謹?shù)募軜?gòu)標準,只是后面很多人將SOA與The Open Group的SOA參考模型等同了,認為嚴格按照TOG-SOA標準的才算真正的SOA架構(gòu)。SOA就已經(jīng)提出的面向服務(wù)的架構(gòu)思想,所以微服務(wù)應(yīng)該算是SOA的一種演進吧。

撇開架構(gòu)先不說,什么樣的服務(wù)才算微服務(wù)呢?

  • 單一職責(zé)的。一個微服務(wù)應(yīng)該都是單一職責(zé)的,這才是“微”的體現(xiàn),一個微服務(wù)解決一個業(yè)務(wù)問題(注意是一個業(yè)務(wù)問題而不是一個接口)。

  • 面向服務(wù)的。將自己的業(yè)務(wù)能力封裝并對外提供服務(wù),這是繼承SOA的核心思想,一個微服務(wù)本身也可能使用到其它微服務(wù)的能力。 我覺得滿足以上兩點就可以認為典型的微服務(wù)。

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

微服務(wù)架構(gòu),核心是為了解決應(yīng)用微服務(wù)化之后的服務(wù)治理問題。

應(yīng)用微服務(wù)化之后,首先遇到的第一個問題就是服務(wù)發(fā)現(xiàn)問題,一個微服務(wù)如何發(fā)現(xiàn)其他微服務(wù)呢?最簡單的方式就是每個微服務(wù)里面配置其他微服務(wù)的地址,但是當(dāng)微服務(wù)數(shù)量眾多的時候,這樣做明顯不現(xiàn)實。所以需要使用到微服務(wù)架構(gòu)中的一個最重要的組件:服務(wù)注冊中心,所有服務(wù)都注冊到服務(wù)注冊中心,同時也可以從服務(wù)注冊中心獲取當(dāng)前可用的服務(wù)清單:

服務(wù)注冊中心

解決服務(wù)發(fā)現(xiàn)問題后,接著需要解決微服務(wù)分布式部署帶來的第二個問題:服務(wù)配置管理的問題。當(dāng)服務(wù)數(shù)量超過一定程度之后,如果需要在每個服務(wù)里面分別維護每一個服務(wù)的配置文件,運維人員估計要哭了。那么,就需要用到微服務(wù)架構(gòu)里面第二個重要的組件:配置中心,微服務(wù)架構(gòu)就變成下面這樣了:

配置中心

以上應(yīng)用內(nèi)部的服務(wù)治理,當(dāng)客戶端或外部應(yīng)用調(diào)用服務(wù)的時候怎么處理呢?服務(wù)A可能有多個節(jié)點,服務(wù)A、服務(wù)B和服務(wù)C的服務(wù)地址都不同,服務(wù)授權(quán)驗證在哪里做?這時,就需要使用到服務(wù)網(wǎng)關(guān)提供統(tǒng)一的服務(wù)入口,最終形成典型微服務(wù)架構(gòu):

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

上面是一個典型的微服務(wù)架構(gòu),當(dāng)然微服務(wù)的服務(wù)治理還涉及很多內(nèi)容,比如:

  • 通過熔斷、限流等機制保證高可用;

  • 微服務(wù)之間調(diào)用的負載均衡;

  • 分布式事務(wù)(2PC、3PC、TCC、LCN等);

  • 服務(wù)調(diào)用鏈跟蹤等等。

微服務(wù)框架

目前國內(nèi)企業(yè)使用的微服務(wù)框架主要是Spring Cloud和Dubbo(或者DubboX),但是Dubbo那兩年的停更嚴重打擊了開發(fā)人員對它的信心,Spring Cloud已經(jīng)逐漸成為主流,比較兩個框架的優(yōu)劣勢的文章在網(wǎng)上有很多,這里就不重復(fù)了,選擇什么框架還是按業(yè)務(wù)需求來吧,業(yè)務(wù)框架

決定技術(shù)框架。Spring Cloud全家桶提供了各種各樣的組件,基本可以覆蓋微服務(wù)的服務(wù)治理的方方面面,以下列出了Spring Cloud一些常用組件:

Spring Cloud常用組件

下一代微服務(wù)

目前網(wǎng)上很多說是下一代微服務(wù)架構(gòu)就是Service Mesh,Service Mesh主流框架有Linkerd和Istio,其中Istio有大廠加持所以呼聲更高。Service Mesh我接觸還不多,但是個人感覺并不一定能稱為下一代微服務(wù)架構(gòu),可能認為是服務(wù)治理的另外一種解決方案更合適,是否能夠取代當(dāng)前的微服務(wù)架構(gòu)還需要持續(xù)觀察。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    一区中文字幕人妻少妇 | 国产传媒中文字幕东京热| 欧美日韩一级黄片免费观看| 国产成人av在线免播放观看av| 日本和亚洲的香蕉视频| 亚洲另类女同一二三区| 国产精品欧美日韩中文字幕| 一区二区三区四区亚洲另类| 国产精品第一香蕉视频| 成人精品欧美一级乱黄| 午夜精品一区二区三区国产| 丝袜美女诱惑在线观看| 五月婷婷缴情七月丁香| 日本精品理论在线观看| 亚洲中文字幕视频在线观看| 亚洲第一区欧美日韩在线| 欧美一区二区口爆吞精| 亚洲男女性生活免费视频| 久久大香蕉一区二区三区| 国产一区二区三区av在线| 麻豆精品在线一区二区三区| 嫩呦国产一区二区三区av| 不卡中文字幕在线免费看| 欧美日韩国产免费看黄片| 这里只有九九热精品视频| 亚洲清纯一区二区三区| 1024你懂的在线视频| 午夜国产福利在线播放| 亚洲妇女黄色三级视频| 视频在线播放你懂的一区| 婷婷色网视频在线播放| 亚洲欧洲成人精品香蕉网| 在线观看那种视频你懂的| 国产色偷丝袜麻豆亚洲| 国产成人精品久久二区二区| 欧洲亚洲精品自拍偷拍| 国产一区二区三区草莓av| 青青操成人免费在线视频| 中文字幕一区二区免费| 日本熟女中文字幕一区| 国产激情国产精品久久源|