1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        SpringCloud微服務架構實戰(zhàn):高并發(fā)微服務架構設計

        共 3275字,需瀏覽 7分鐘

         ·

        2022-04-17 09:21


        高并發(fā)微服務架構設計

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

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

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

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

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

        • 怎樣才能更好地適應系統(tǒng)規(guī)?;臄U張。

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

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

        微服務總體架構設計

        一個使用了微服務的電商平臺的總體架構設計如圖 2-1 所示。


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

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

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

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

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

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

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

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

        • 自然的壓力分解。

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

        • ?高度的獨立性設計。

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

        • 高可用的基礎資源支持。

        • 快速響應的自動化基礎設施。

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

        • 微服務的安全保障。

        自然的壓力分解

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

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

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

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


        高度的獨立性設計

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

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

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

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

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

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

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


        高可用的基礎資源支持

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

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

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

        快速晌應的自動化基礎設施

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

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

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

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

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

        微服務的安全保障

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

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


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

        小結

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

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

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

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

        3. 感謝大家的支持!

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


        瀏覽 71
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            一品道成人免费视频 | 日韩九九九 | 奇米av | 色妞色视频一区二区三区四区 | 七仙女h粗大紫黑快啊 | 久久久久99精品国产片 | 国产伦子伦一级A片免费看老牛 | 老鸭窝黄片 | 国产第一页在线 | a片無限資源 |