<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringCloud微服務(wù)架構(gòu)實戰(zhàn):高并發(fā)微服務(wù)架構(gòu)設(shè)計

          共 3275字,需瀏覽 7分鐘

           ·

          2022-04-17 09:21


          高并發(fā)微服務(wù)架構(gòu)設(shè)計

          作為一個 IT 從業(yè)人員,我們經(jīng)常會碰到類似于下面的一些問題:

          • 單個項目巨大而沉重,難以維護(hù)。

          • 系統(tǒng)穩(wěn)定性得不到更有效的保證。

          • 怎樣才能持續(xù)地提升系統(tǒng)的性能。

          • 怎樣才能快速地響應(yīng)需求的變更,并且系統(tǒng)更新不會引起任何抖動。

          • 怎樣才能更好地適應(yīng)系統(tǒng)規(guī)模化的擴(kuò)張。

          針對上面這些問題,我們無時無刻不在努力地進(jìn)行各種各樣的嘗試和探索,尋求更好的解決方案,或者使用更先進(jìn)的技術(shù)。

          目前來看,在互聯(lián)網(wǎng)環(huán)境之中產(chǎn)生的微服務(wù)架構(gòu)設(shè)計是一個比較理想的解決方案。

          微服務(wù)總體架構(gòu)設(shè)計

          一個使用了微服務(wù)的電商平臺的總體架構(gòu)設(shè)計如圖 2-1 所示。


          這是一個典型的微服務(wù)總體架構(gòu)設(shè)計圖,自上往下看,可以分為前臺應(yīng)用層、 API 接入層、業(yè)務(wù)應(yīng)用層、服務(wù)中心和基礎(chǔ)資源層結(jié)構(gòu),每層結(jié)構(gòu)都有其自身的功能和特別的設(shè)計。

          前臺應(yīng)用層可支持任何應(yīng)用的客戶端,如物聯(lián)網(wǎng)、微信小程序、移動 App API 開放平臺等。

          API 接入層可以使用 Spring Cloud Zuul Gateway 設(shè)計網(wǎng)關(guān),起到一個承上啟下的作用,并且具備鑒權(quán)、路由和流控等功能。

          業(yè)務(wù)應(yīng)用層是微服務(wù) 基本應(yīng)用 ,它本身也是一個微服務(wù)。這里主要是電商平臺的一些后臺管理功能

          服務(wù)中 就是使用微服務(wù)設(shè)計的各種 AP 接口服務(wù),這些服務(wù)一般使用基于 ST削風(fēng)格的設(shè)計,對外提供輕量 API 接口服務(wù)。另外,在基礎(chǔ)服務(wù)中間件中,提供服務(wù)治理、消息隊列、監(jiān)控告警、配置管理等服務(wù)。

          基礎(chǔ)資源是我們組建的私有云或者租用的公有云,為微服務(wù)搭建容器平臺,提供數(shù)據(jù)存儲、 DevOps 鏡像倉庫等服務(wù)。

          在這個架構(gòu)設(shè)計圖中,除了上面這些,在水平方向上,還可以看到負(fù)載均衡、日志記錄、鏈路跟蹤,以及基于大型電商平臺的運(yùn)營平臺等服務(wù)。

          下面介紹微服務(wù)架構(gòu)設(shè)計的優(yōu)勢,以及它所表現(xiàn)出來的高并發(fā)、高性能的特點(diǎn)。

          • 自然的壓力分解。

          • 可彈性伸縮的集群環(huán)境。

          • ?高度的獨(dú)立性設(shè)計。

          • API 的分層調(diào)用關(guān)系。

          • 高可用的基礎(chǔ)資源支持。

          • 快速響應(yīng)的自動化基礎(chǔ)設(shè)施。

          • 完善的監(jiān)控體系。

          • 微服務(wù)的安全保障。

          自然的壓力分解

          對于一個大型系統(tǒng)來說,在使用微服務(wù)架構(gòu)設(shè)計之后,原來針對單獨(dú)一個應(yīng)用所承受的壓力,就自然而然地分散到眾多微服務(wù)中。各個微服務(wù)可以使用不同的數(shù)據(jù)庫,并且可以分開部署在不同的服務(wù)器上,所有這些,都是一種壓力分流的方法。

          可彈性伸縮的集群環(huán)境

          微服務(wù)的部署和發(fā)布,最終都將納入微服務(wù)的治理環(huán)境之中。這種治理環(huán)境是一個分布式的集群管理體系,對于每一個微服務(wù)來說,都能對其實行動態(tài)路由、負(fù)載均衡、服務(wù)降級等一系列的管控措施。同時,允許每個微服務(wù)根據(jù)其所承受的壓力情況,進(jìn)行自由的擴(kuò)展和收縮,即具備可彈性伸縮的特性。

          圖2-2 是微服務(wù)的一個運(yùn)行環(huán)境示意圖,不管是作為提供接口服務(wù)的阻STAPI 微服務(wù),還是提供操作界面的 WebUI 微服務(wù),都可以根據(jù)需要在云端服務(wù)器上很方便地增加其運(yùn)行副本,從而擴(kuò)展它的負(fù)載能力。而且,這種擴(kuò)展并不局限于在一個虛擬環(huán)境中,它可以跨機(jī)房、跨地區(qū),甚至跨國界。當(dāng)然,微服務(wù)所使用的基礎(chǔ)資源,同樣具備自由擴(kuò)展的能力。這樣才能保證在整個系統(tǒng)平臺中可以應(yīng)對任何高并發(fā)的調(diào)用,而不存在性能瓶頸。


          高度的獨(dú)立性設(shè)計

          微服務(wù)架構(gòu)的去中心化的設(shè)計特點(diǎn),為每個微服務(wù)的設(shè)計提供了高度的獨(dú)立性。這樣,我們就可以根據(jù)每個微服務(wù)的特點(diǎn),選擇數(shù)據(jù)庫或者通信方式,以發(fā)揮其獨(dú)特的效能。

          比如,對于數(shù)據(jù)量不是很大,關(guān)聯(lián)性不是很復(fù)雜的數(shù)據(jù),可以使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫,如MySQL 或者 Oracle 。對于數(shù)據(jù)量較大,更新不是很頻繁的數(shù)據(jù),可以使用 MongoDB NoSQL數(shù)據(jù)庫。對于一些關(guān)系復(fù)雜,關(guān)聯(lián)比較多的數(shù)據(jù),則可以使用圖數(shù)據(jù)庫,如 Neo4j 等。這樣針對不同的業(yè)務(wù)特性,使用合適的數(shù)據(jù)庫,就可以充分發(fā)揮應(yīng)用程序的性能。

          對于通信方式來說,有些程序?qū)崟r數(shù)據(jù)很敏感,只能使用接口的方式進(jìn)行實時調(diào)用:而有的程序?qū)崟r數(shù)據(jù)并沒有太多要求,但是通信量很大,這時就可以使用異步消息進(jìn)行調(diào)用。

          這樣,通過有針對性的獨(dú)立設(shè)計,可以最大限度地發(fā)揮應(yīng)用程序的效能。

          API 的分層調(diào)用關(guān)系

          微服務(wù)使用 GateWay 網(wǎng)關(guān)接口方式對外部環(huán)境提供服務(wù)。這種方式使用分層結(jié)構(gòu)設(shè)計,在Gate Way 層既可以直接調(diào)用 RESTAPI 微服務(wù)接口服務(wù),也可以再經(jīng)過一層設(shè)計,即使用 Backendfor Frontend 層對復(fù)雜的調(diào)用進(jìn)行一次包裝設(shè)計。例如,當(dāng)需要對多個微服務(wù)進(jìn)行調(diào)用時,可以將多個調(diào)用組裝成一個單一接口服務(wù),從而避免微服務(wù)內(nèi)部環(huán)境與外部環(huán)境的多重通信。另外,有的通信可以使用 MQ (Message Queue )方式以異步方式進(jìn)行。

          圖2-3 是一個 GateWay 多層次調(diào)用關(guān)系示意圖,在這個圖中,每個層次都可以進(jìn)行負(fù)載均衡設(shè)計,從而能夠非常有效地提高這種調(diào)用關(guān)系的并發(fā)性。其中,微服務(wù)內(nèi)部環(huán)境的負(fù)載均衡設(shè)計可以由服務(wù)治理進(jìn)行處理,而處在外部環(huán)境中的 GateWay 的負(fù)載均衡設(shè)計則可以使用 Nginx等工具進(jìn)行實施。


          高可用的基礎(chǔ)資源支持

          在微服務(wù)架構(gòu)設(shè)計中,通常是使用云服務(wù)來組建基礎(chǔ)資源的。其中,云服務(wù)既可以租用云服務(wù)提供商的服務(wù)器,也可以自己組建私有云,或者兩者兼而有之。

          基于云端組建的基礎(chǔ)資源,包括數(shù)據(jù)庫、緩存和文件系統(tǒng)等,這些資源既可以使用云服務(wù)提供商提供的優(yōu)質(zhì) RDBS 、分布式數(shù)據(jù)庫和對象存儲等服務(wù),也可以自己搭建各種集群體系。

          這樣,就可以保證每一種基礎(chǔ)資源的使用都不會成為另外一個系統(tǒng)的瓶頸,這是對高并發(fā)微服務(wù)架構(gòu)設(shè)計的有力補(bǔ)充和支持。

          快速晌應(yīng)的自動化基礎(chǔ)設(shè)施

          自動化基礎(chǔ)設(shè)施建設(shè)是微服務(wù)架構(gòu)設(shè)計中的一項基本要求,涉及代碼管理、代碼檢查、集成測試、自動化測試、持續(xù)交付、自動化部署等一系列問題。

          不管是持續(xù)集成、持續(xù)交付,還是敏捷開發(fā)等,這些都是 DevOps 的一種管理機(jī)制。這種管理機(jī)制可以提高微服務(wù)架構(gòu)設(shè)計中各個微服務(wù)應(yīng)用的應(yīng)變能力,可以快速響應(yīng)整個系統(tǒng)的變更和更新,從而充分提升整個微服務(wù)架構(gòu)的總體效能。

          完善的監(jiān)控體系

          通過使用 Sp Cloud 工具套件并結(jié)合第三方工具,我們可以為微服務(wù)的運(yùn)行環(huán)境構(gòu)建一個完善的監(jiān)控體系,從而有效保證微服務(wù)的穩(wěn)定性和健壯性。

          這一監(jiān)控體系包括健康檢查、告警系統(tǒng)、鏈路跟蹤、日志記錄和查詢等內(nèi)容。通過健康檢查和告警系統(tǒng),可以及時發(fā)現(xiàn)系統(tǒng)中可能存在的問題和隱患,從而減少事故的發(fā)生。鏈路跟蹤和日志記錄可以提供非常詳細(xì)的服務(wù)調(diào)用軌跡,非常適合用來檢驗和查找復(fù)雜的系統(tǒng)內(nèi)部問題,或者某些可能存在的隱藏錯誤。

          微服務(wù)的安全保障

          越大型的系統(tǒng),系統(tǒng)的并發(fā)性越高,危險性越大,其安全保障也越重要。系統(tǒng)的安全設(shè)計包括防火墻設(shè)計、防攻擊設(shè)計、訪問控制設(shè)計、數(shù)據(jù)保密設(shè)計、數(shù)據(jù)備份及災(zāi)備等各個方面的內(nèi)容。而安全防護(hù)是系統(tǒng)安全的第一道屏障,我們將使用防火墻及動態(tài)感知等設(shè)備,為微服務(wù)的服務(wù)器組建,提供一個安全可靠的分布式環(huán)境。

          如圖 2-4 所示,是根據(jù)阿里云設(shè)計的一個安全管理架構(gòu),通過安全防護(hù)和安全預(yù)警 對不安全的訪問或可能存在的攻擊進(jìn)行有效隔離,從而保證系統(tǒng)的安全和穩(wěn)定。


          如果需要進(jìn)行跨機(jī)房或跨地區(qū)的微服務(wù)互聯(lián),則必須在保證安全的前提下,通過 VPC 專網(wǎng)使用專用通道進(jìn)行通信。

          小結(jié)

          微服務(wù)架構(gòu)設(shè)計風(fēng)格本身就是一種高并發(fā)的機(jī)制。依靠云服務(wù)環(huán)境,我們可以把微服務(wù)使用的基礎(chǔ)資源,通過自動化基礎(chǔ)設(shè)施建設(shè),提供成一種可伸縮、高并發(fā)、高可用的環(huán)境。同時,通過使用 Spring Cloud 工具套件和第三方庫,充分保證微服務(wù)的高度可擴(kuò)展性。不管是哪一種架構(gòu)設(shè)計,系統(tǒng)的穩(wěn)定性、健壯性和可靠性都缺一不可。

          本文給大家講解的內(nèi)容是SpringCloud微服務(wù)架構(gòu)實戰(zhàn):高并發(fā)微服務(wù)架構(gòu)設(shè)計!

          1. 下篇文章給大家講解的是大型電商平臺設(shè)計實例;

          2. 覺得文章不錯的朋友可以轉(zhuǎn)發(fā)此文關(guān)注小編;

          3. 感謝大家的支持!

          本文就是愿天堂沒有BUG給大家分享的內(nèi)容,大家有收獲的話可以分享下,想學(xué)習(xí)更多的話可以到微信公眾號里找我,我等你哦。


          瀏覽 71
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线波多野结衣 | 蜜逃视频观看 | 思思99热 | 一区二区三区性爱视频 | 欧美日韩免费观看一区=区三区 |