小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

架構(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ù)更簡單、職責單一、更易于擴展。但無論是Web Service 還是ESB,都有時代遺留下的問題。

  Web Service

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

   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)部的復雜性仍然存在。ESB試圖通過總線來掩蓋系統(tǒng)內(nèi)部的復雜性

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

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

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

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

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

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

 

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

從上圖可以得到:

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

  2)  每個服務(wù)運行在一個單獨的進程中

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

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

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

 

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

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

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

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

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

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

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

  微服務(wù)架構(gòu)的一些特點與 SOA 服務(wù)化架構(gòu)相似, 事實上微服務(wù)架構(gòu)與 SOA 服務(wù)化架構(gòu)并不沖突,它們一脈相承,微服務(wù)架構(gòu)是服務(wù)化架構(gòu)響應(yīng)特定歷史時期的使用場景的延續(xù),是服務(wù)化進行升華井落地的一種實現(xiàn)方式。 SOA 服務(wù)化的理念在微服務(wù)架構(gòu)中仍然有效,微服務(wù)在 SOA 服務(wù)化的基礎(chǔ)上進行了演進和疊加,形成了適合現(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ù)化涉及的范圍更廣一些,強調(diào)不同的異構(gòu)服務(wù)之間的協(xié)作和契約 ,并強調(diào)有效集成、業(yè)務(wù)流程編排、歷史應(yīng)用集成等,典型代表為 Web Service 和 ESB

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

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

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

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

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

總結(jié)

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

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

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

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

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

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

 說明:

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

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多