• <xmp id="vhw13"></xmp>
      1. <bdo id="vhw13"></bdo>
        <track id="vhw13"></track>

        <menuitem id="vhw13"><strong id="vhw13"></strong></menuitem><tbody id="vhw13"><div id="vhw13"><address id="vhw13"></address></div></tbody>

        <menuitem id="vhw13"></menuitem>
      2. <track id="vhw13"></track>
      3. <track id="vhw13"><div id="vhw13"></div></track>

        熱門標簽:寫本科論文 寫作發表 工程師論文 寫一篇論文多少錢

        當前位置: 論文多少錢 > 計算機論文 > 基于Spring Cloud的微服務架構研發和性能提升

        基于Spring Cloud的微服務架構研發和性能提升

        時間:2021-09-01作者:廖梓洋 曾玉林
        本文導讀:這是一篇關于基于Spring Cloud的微服務架構研發和性能提升的文章,Spring Cloud微服務框架完成了在線視頻學習系統的開發。相較于傳統的單體服務架構的學習系統,該采用微服務架構的系統部署更靈活,響應更迅速,維運更方便,具有更穩定的性能。

          摘    要: 在當下互聯網在線學習越來越受人青睞的趨勢下,傳統式單體服務架構的在線視頻學習系統很難滿足日益增長的用戶需求。對于用戶來說,系統在高并發情況下出現的卡頓和延遲令人頭疼。對于后臺維護人員來說,隨著系統功能的完善與優化,系統代碼十分臃腫,耦合性大,不利于運行與維護,并且對服務器要求較高。因此,設計一種基于Spring Cloud的微服務在線視頻學習系統是十分必要的。它將傳統的單體服務架構拆分為微服務,可通過實現微服務集群部署等技術手段,來減緩用戶日益增長而帶來的系統壓力并提高系統性能,依靠微服務的高可用、分布式、水平擴展、業務簡單、耦合性低等優勢,來簡化系統的開發與運維,實現系統新服務的快速響應。

          關鍵詞 :     微服務; Spring Cloud;性能優化;系統設計;優化;

          隨著互聯網的飛速發展,數字經濟時代,大眾學習的個性化需求不斷增強,時間碎片化問題逐漸增多,為在線教育提供了廣闊的發展前景。特別是遭遇近些年的突發狀況,學校以及培訓機構無法進行線下教學,助推了教育行業的線上轉變。但也正是由于大量增長的用戶來使用在線學習服務,導致許多傳統的單體架構的學習系統無法承載突然增長的用戶數量,從而導致了服務器癱瘓。因此,隨著微服務的風靡,我們考慮設計一種微服務架構的在線學習系統。微服務架構具有獨立部署、動態擴展、快速迭代等優勢,可使開發者短時間內構建高可部署性,高可擴展性的應用。

          1. 微服務架構概述

          微服務是一個具有高并發、高擴展、獨立部署等特性的應用,它將復雜的應用系統按照業務劃分,以獨立業務模塊的形式拆解成多個服務單元。微服務架構的出現是互聯網飛速發展的必然結果,是將傳統的單服務架構垂直拆分為若干個微服務,每個微服務都是單獨的模塊,擁有單獨的數據庫與配置等等,并且由于spring Cloud能異構支持多種語言開發,所以能夠將系統不同的模塊分配交給最佳的技術團隊去完成,然后每個微服務通過Nacos的注冊中心進行協助,完成一個完整的功能,極大提高了系統完成的效率和質量。

          2. 系統的設計與實現

          2.1、 系統的總體框架

          在線視頻學習系統是采用Spring Cloud微服務框架,并且是前后端完全分離式進行開發。該學習系統前端采用Vue.js、Node.js、Element UI、Axios等技術進行開發環境搭建以及頁面的開發。而后端框架采用的是Spring Cloud、Spring Boot、Mybatis-plus、Swagger、Nacos等關鍵技術開發。

          存儲方面則是運用到了Mysql數據庫、Redis緩存、阿里云OSS以及系統日志等技術來完成,同時可采用Hystrix斷路器來解決服務響應超時的問題。使用阿里巴巴的Nacos技術來完成微服務注冊中心、配置中心持久化。隨著前后端都相繼完成開發,最后則是可通過Nginx反向代理以及Gate Away網關技術來完成交互。

          2.2、 系統的功能模塊設計

          2.2.1 、前臺用戶學習模塊

          在線視頻學習系統的前臺學習模塊是面向廣大用戶設計的瀏覽器客戶端,它提供在線視頻播放、相關文章查看、導師問答、留言互動、用戶中心、微信支付與登錄等等服務。同時在性能方面,考慮到瀏覽器客戶端的訪問次數可能會因為運營推廣而日益增加導致服務器壓力過大的情況,可以采取分布式集群部署的方式,引入緩存、負載均衡來解決。
         

        基于Spring Cloud的微服務架構研發和性能提升
         

          用戶通過微信或者手機號進行注冊,注冊后系統會默認為普通用戶,在使用該系統時會封鎖一些會員功能。當然,用戶可以通過多種途徑來進行升級,一是根據在線學習的時長,二是根據留言互動中正確解答問題的次數,三是直接通過在線充值進行快速升級,而當用戶成為會員時,就會解鎖一系列權限,從而得到更好的用戶體驗。

          2.2.2 、后臺運營管理模塊

          該系統的后端運營管理模塊則是為系統的后臺運營維護人員而設計的,它為運營維護人員提供了如下功能:用戶管理、權限設置、導師管理、數據統計、課程管理、視頻管理、文章資源、問答管理、幫助中心、短信服務、系統消息等等。

          后臺運營維護人員通過獲取權限的管理賬戶成功登錄進后臺管理系統后,可以根據數據統計中各個視頻、導師、課程的點擊率以及熱度來對前臺用戶頁面的相關內容進行優化,把最近熱度最高的視頻、導師、課程排版到最首頁,從而通過優質的資源來吸引更多的用戶。

          通過后臺系統的路由導航可以進入不同功能的管理模塊,可以查看各個模塊的具體內容,也可以通過精準查詢或者模糊匹配來完成相關目標的查找,從而進行相應的更改。

          2.3 、數據庫設計

          在線視頻學習系統使用目前較為流行的關系型數據庫My SQl進行存儲,采用多張表對相關的內容進行存儲,部分表之間存在一對多、多對多等關系,對部分關鍵的數據表設計如下。

          前臺用戶user表用來存儲用戶的相關信息,具體的字段名包括用戶id、電話mobileid、密碼password、昵稱name、性別(1女,0男)sex、用戶頭像photo、用戶簽名sign、用戶創建時間time_create、用戶更新時間time_modified。課程course表用來存儲前臺展示課程的相關視頻以及資料,具體的字段包括課程id、課程講師teacher_id、課程專業subject_id、課程標題title、課程總課時lessom_time、課程封面圖片路徑cover、瀏覽數量view_count、課程發布狀態course_status。視頻video表用來存儲學習視頻的資源地址、播放次數等等,具體的字段包括視頻id、課程course_id、節點名稱title、云端視頻資源video_sourse_id、播放字數play_count、是否可以免費聽(0收費,1免費)is_free、視頻時長video_time、視頻資源大小size。數據統計data_statistics表用來存儲每日的新增課程和視頻數,記錄登錄注冊的用戶數量,具體的字段包括數據統計主鍵id、統計日期data_time、注冊人數user_register、登錄人數user_login、每日視頻新增數video_add、每日視頻播放數video_view。訂單pay表存儲了訂單的金額數量以及支付狀態等等,具體的字段包括訂單號id、訂單支付完成時間pay_time、支付金額fee、支付狀態status、訂單創建時間pay_create、視頻更新時間pay_modified。

          3. 系統的性能優化構思

          3.1、 容器技術

          該系統采用的微服務框架技術,相對于傳統的單體服務架構系統的一臺機器完成部署,現在構想可以將眾多模塊的微服務分配到成百上千臺服務器完成部署,只是在進行部署時需要多節點有序發布,這時就需要容器技術(docker、k8s),用來瞬間完成對服務器的成百上千的節點擴容;這樣一來,假若明天是活動日需要容納更多用戶的高頻訪問,那么這些擴容的節點會自動接入我們的微服務集群,注冊到Nacos的注冊中心,那么注冊中心的注冊表也會及時地自動更新并同步到各個微服務的本地注冊表中,就能實現新增微服務之間的協助,從而瞬間完成對外提供高性能的服務;當活動日過去之后,可以將這些容器去掉,恢復到以前滿足日常訪問的性能即可。

          3.2、 分布式集群部署

          關于微服務架構、分布式架構、集群架構,通常認為微服務架構是分布式架構的實現方式,下面舉個系統實例來解釋分布式架構的概念。例如該系統的一個完整視頻播放服務是由視頻獲取、視頻播放、視頻時長統計等不同的微服務分開來共同通訊協作完成,這就構成了分布式部署。那么,如果將其中的某一個微服務例如視頻播放部署成多個相同的微服務,它們之間配置相同,但是互相不協助,這時假如突然出現大量的用戶進行視頻播放,那么就可以通過多層均衡負載,將這些微服務請求合理地分散到各個集群式部署的相關視頻播放微服務上去,這樣就能有效減緩單個服務器的壓力,那么每個分布式部署的微服務都采用這樣的集群式部署,系統的性能會得到提高,并且提高了系統的容錯率。

          3.3 、均衡負載

          均衡負載是指將工作按照一定的規則分配給多個處理單元共同完成整改任務的一種協同工作方式,根據實現的方式不同可以分為硬件負載均衡和軟件負載均衡。相較于類似F5等硬件均衡負載,反向代理Nginx、LVS等軟件均衡負載具備價格更優惠、部署更方便等等優點,因此大多還是采用軟件均衡負載。當然,我們為了性能更加優化,可以采取多層均衡負載的手段,例如可以在底層利用反向代理Nginx實現對Tomcat容器的均衡負載。利用LVS或F5實現對反向代理Nginx的負載均衡。DNS配置實現多機房均衡負載。這樣高可用的負載均衡可使系統在未來面對龐大的客戶端入口高并發時能選擇通過以上手段得到解決,從而到達到高并發情況下系統維持高性能的正常運轉。

          4. 系統的測試成果概述

          選取此系統的幾個核心功能進行測試。在啟動前后端的服務后,對視頻的上傳與下載能正常進行。并且通過前臺系統的視頻播放,發現后臺管理系統的數據統計中視頻播放數量正常增加,并且查看后端的日志顯示該功能的響應時間在500 ms內。至此說明了此系統無論是在協同前臺系統服務調用方面,還是服務響應時間上都成功完成測試。

          5. 結語

          復雜系統微服務化是各種系統提高性能的一種選擇發展方向。本文介紹了該系統的前后端部分功能服務的開發技術和操作步驟,概述了微服務對于系統性能提升的優點,同時基于Spring Cloud微服務框架完成了在線視頻學習系統的開發。相較于傳統的單體服務架構的學習系統,該采用微服務架構的系統部署更靈活,響應更迅速,維運更方便,具有更穩定的性能。但是,由于缺少更大用戶數量的高并發測試,系統還需更多資源來進一步完善性能以及功能業務的開發。

          參考文獻

          [1]黃鵬邊大成融合化在線教育大勢所趨[N].中國電子報,2020-07-21(003).
          [2]洪柏樺,這琪,瞿少成-種基于微服務架構的在線教育平臺設計與實現[J]電腦知識與技術,2021,17(04):10-12.
          [3]龍新征,彭- -明,李若淼基于微服務框架的信息服務平臺[J]東南大學學報(自然科學版),2017,47(S1):48-52.
          [4]龍新征,彭- -明,李若淼 基于微服務框架的信息服務平臺[J] .東南大學學報(自然科學版),2017 ,47(S1):48-52.
          [5]耿曉利,張芒,尹永宏高并發高可用的分布式電商平臺架構研究[J].計算機技術與發展2021 ,31(02)111-115+121.
          [6]方志朋深入理解Spring Cloud與微服務構建[M].北京:人民郵電出版社, 2008:4-20.
          [7]李慧斌基于Nginx的高并發服務模型的研究[D].杭州:浙江理工大學,2020.
          [8]黃龍達,莊衛金,徐攀,等電力市場技術支持系統高并發訪問技術研究[J]電網技術, 2020,44(09):3394-3400.

        關聯標簽:
        聯系我們
        • 寫作QQ:3008635931
        • 發表QQ:3008635930
        • 服務電話:13701839868
        • 售后電話:18930493766
        • 郵箱:shlunwen@163.com
        網站地圖 | 網站介紹 | 聯系我們 | 服務承諾| 服務報價| 論文要求 | 期刊發表 | 服務流程

        將微信二維碼保存到相冊

        打開微信掃一掃從相冊識別

        1.點擊下面按鈕復制QQ號

        3008546108

        2.打開QQ→添加好友/群

        粘貼QQ號,加我為好友

        男女肉粗暴进来120秒动态图