日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

架構(gòu)雜談《二》

 python_lover 2020-06-30

服務(wù)化到微服務(wù)

1、微服務(wù)的產(chǎn)生

  隨著互聯(lián)網(wǎng)企業(yè)的不斷發(fā)展,海量用戶發(fā)起的大規(guī)模、高并發(fā)請求是企業(yè)不得不面對的,上一篇 架構(gòu)雜談《一》雜談的SOA服務(wù)化系統(tǒng)能夠分解任務(wù),讓每個服務(wù)更簡單、職責(zé)單一、更易于擴(kuò)展。但無論是Web Service 還是ESB,都有時代遺留下的問題。

  Web Service

   1)依賴中心化的服務(wù)發(fā)現(xiàn)機(jī)制

   2)使用SOAP通訊協(xié)議,通常使用XML格式來序列化通信數(shù)據(jù),XML格式的數(shù)據(jù)冗余太大,協(xié)議太重

   3)服務(wù)化管理和治理設(shè)施并不完善

  ESB

   1)ESB 雖然是SOA實現(xiàn)的一種方式,卻更多地體現(xiàn)了系統(tǒng)集成的便利性,通過統(tǒng)一的服務(wù)總線將各個服務(wù)組合在一起

        2)組合在ESB上的服務(wù)本身有可能是一個臃腫的服務(wù)

   3)系統(tǒng)內(nèi)部的復(fù)雜性仍然存在。ESB試圖通過總線來掩蓋系統(tǒng)內(nèi)部的復(fù)雜性

        4)對于總線本身中心化的管道模型,系統(tǒng)變更時影響的范圍會隨之?dāng)U大

出現(xiàn)問題解決問題是人類進(jìn)步的階梯,對于軟件架構(gòu)也是一樣,近年來服務(wù)架構(gòu)設(shè)計得到了進(jìn)一步的演化和發(fā)展,微服務(wù)架構(gòu)已經(jīng)出現(xiàn)在不同公司的討論、設(shè)計和實踐中,經(jīng)過市場檢驗的東西肯定會被大家所接受。

  微服務(wù)架構(gòu)提倡將軟件應(yīng)用設(shè)計成多個可獨(dú)立開發(fā)、配置、運(yùn)行和維護(hù)的子服務(wù),子服務(wù)之間通過良好的接口定義通信機(jī)制,通常使用RESTful風(fēng)格的API形式來通信。因為RESTful 風(fēng)格的 API 通常是在 HTTP 或者 HTTPS 通道上傳輸 JSON 格式的數(shù)據(jù)來實現(xiàn)的, HTTP協(xié)議有跨語言、跨異構(gòu)系統(tǒng)的優(yōu)點(diǎn), 當(dāng)然也可通過底層的二進(jìn)制協(xié)議、消息隊列協(xié)議等進(jìn)行交互。這些服務(wù)不需要中心化的統(tǒng)一管理,每個服務(wù)的功能可自治,并且可由不同的語言、系統(tǒng)和平臺實現(xiàn) 。 

  微服務(wù)架構(gòu)致力于松耦合和高內(nèi)聚的效果,與SOA和ESB相比,不再強(qiáng)調(diào)服務(wù)總線和通信機(jī)制的多樣性,通常通過RESTful 風(fēng)格的API和輕量級的消息通信協(xié)議來完成。

微服務(wù)架構(gòu)并不是為了拆分而拆分,真正的目的是通過對微服務(wù)進(jìn)行水平擴(kuò)展解決傳統(tǒng)的單體應(yīng)用在業(yè)務(wù)急劇增長時遇到的問題,而且由于拆分的微服務(wù)系統(tǒng)中專業(yè)的人做 專業(yè)的事,人員和項目的職責(zé)單一、低藕合、高內(nèi)聚,所以產(chǎn)生問題的概率就會降到最小。

2、微服務(wù)與單體的對比

 

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

從上圖可以得到:

  1)  微服務(wù)把每一個職責(zé)單一的功能放在一個獨(dú)立的服務(wù)中

  2)  每個服務(wù)運(yùn)行在一個單獨(dú)的進(jìn)程中

  3)  每個服務(wù)有多個實例在運(yùn)行,每個實例可以運(yùn)行在容器化平臺內(nèi)

  4)  每個服務(wù)有自己的數(shù)據(jù)存儲,實際上,每個服務(wù)應(yīng)該有自己獨(dú)享的數(shù)據(jù)庫、緩存、消息隊列等

  5)  每個服務(wù)都可根據(jù)性能需求獨(dú)立地水平伸縮

 

(單體架構(gòu)圖)

通過對比,可以得到傳統(tǒng)單體架構(gòu)的特點(diǎn):

  1)  傳統(tǒng)單體架構(gòu)將所有模塊化組件糅合后運(yùn)行在同一個服務(wù)的進(jìn)程中

  2)  某個模塊發(fā)生變更時,需要將所有的模塊編譯、打包上線

  3)  久而久之,模塊間的依賴將會不清晰,互相耦合,互相依賴成為常態(tài)

通過將兩種架構(gòu)對比來看,微服務(wù)架構(gòu)更加的靈活并且可水平伸縮,可以讓專業(yè)的人干專業(yè)的事。

3、微服務(wù)與SOA服務(wù)的對比

  微服務(wù)架構(gòu)的一些特點(diǎn)與 SOA 服務(wù)化架構(gòu)相似, 事實上微服務(wù)架構(gòu)與 SOA 服務(wù)化架構(gòu)并不沖突,它們一脈相承,微服務(wù)架構(gòu)是服務(wù)化架構(gòu)響應(yīng)特定歷史時期的使用場景的延續(xù),是服務(wù)化進(jìn)行升華井落地的一種實現(xiàn)方式。 SOA 服務(wù)化的理念在微服務(wù)架構(gòu)中仍然有效,微服務(wù)在 SOA 服務(wù)化的基礎(chǔ)上進(jìn)行了演進(jìn)和疊加,形成了適合現(xiàn)代化應(yīng)用場景的一個方法論。

經(jīng)過幾十年互聯(lián)網(wǎng)的高速發(fā)展,以及敏捷、持續(xù)集成、持續(xù)交付、DevOps、云技術(shù)等的深入人心,服務(wù)架構(gòu)的開發(fā)、測試、部署以及監(jiān)控等,相比SOA已經(jīng)發(fā)生大的變化。

  1)  SOA 服務(wù)化涉及的范圍更廣一些,強(qiáng)調(diào)不同的異構(gòu)服務(wù)之間的協(xié)作和契約 ,并強(qiáng)調(diào)有效集成、業(yè)務(wù)流程編排、歷史應(yīng)用集成等,典型代表為 Web Service 和 ESB

  2)  微服務(wù)使用一系列的微小服務(wù)來實現(xiàn)整體的業(yè)務(wù)流程,目的是有效地拆分應(yīng)用,實現(xiàn)敏捷開發(fā)和部署,在每個微小服務(wù)的團(tuán)隊里,減少了跨團(tuán)隊的溝通,讓專業(yè)的人做專業(yè)的事,縮小變更和法代影響的范圍,并達(dá)到單一微服務(wù)更容易水平擴(kuò)展的目的

  3)  微服務(wù)將完整的應(yīng)用拆分成多個細(xì)小的服務(wù),通常使用敏捷擴(kuò)容、縮容的 Docker 技術(shù)來實現(xiàn)自動化的容器管理 , 每個微服務(wù)運(yùn)行在單一的進(jìn)程內(nèi),微服務(wù)中的部署互相獨(dú)立 、 互不影響。

  4)  SOA 服務(wù)化通常將多個業(yè)務(wù)服務(wù)通過組件化模塊方式打在一個包里,然后統(tǒng)一部署在一個應(yīng)用服務(wù)器上。

  6)  SOA 對粒度沒有要求 , 在實踐中服務(wù)通常是粗粒度的,強(qiáng)調(diào)接口契約的規(guī)范化,內(nèi)部實現(xiàn)可以更粗粒度。

相比SOA的服務(wù)實現(xiàn)方式,微服務(wù)更具靈活性、可實施性以及可擴(kuò)展性,其強(qiáng)調(diào)的是一種獨(dú)立測試、獨(dú)立部署、獨(dú)立運(yùn)行的軟件架構(gòu)模式。對于微服務(wù)的概念而言,它是SOA的一個子集,而對于其實現(xiàn)方式而言,它是一種更符合現(xiàn)代化互聯(lián)網(wǎng)發(fā)展趨勢的實踐,是一種更容易幫助企業(yè)或組織有效并成功實施的服務(wù)架構(gòu)。

總結(jié)

最后讓我來總結(jié)下微服務(wù)架構(gòu)的主要特點(diǎn)

  • 將傳統(tǒng)單體應(yīng)用拆分成網(wǎng)絡(luò)服務(wù),來實現(xiàn)模塊化組件 。

  • 根據(jù)微服務(wù)架構(gòu)的服務(wù)劃分來分組職能團(tuán)隊,減少跨團(tuán)隊的溝通 。

  • 每個服務(wù)對應(yīng)一個團(tuán)隊,團(tuán)隊成員負(fù)責(zé)開發(fā)、測試、運(yùn)維和運(yùn)營 ,開發(fā)后在團(tuán)隊內(nèi)運(yùn)維和運(yùn)營,不需要交付給其他團(tuán)隊。

  • 去中 心化、 去 SOA 服務(wù)化的中 心服務(wù)治理和去企業(yè)服務(wù)總線 。

  • 微服務(wù)重視服務(wù)的合理拆分、分層和構(gòu)造,可建設(shè)自動化持續(xù)發(fā)布平臺,井進(jìn)行敏捷開發(fā)和部署。

 說明:

  1、文中的圖都來自于百度圖片

  2、參考書籍:《分布式服務(wù)架構(gòu):原理、設(shè)計與實戰(zhàn)》

  3、如有不合適的地方請反饋。綜合后更改。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多