基于lifebench的在線教育系統(tǒng)設(shè)計與實現(xiàn)_第1頁
基于lifebench的在線教育系統(tǒng)設(shè)計與實現(xiàn)_第2頁
基于lifebench的在線教育系統(tǒng)設(shè)計與實現(xiàn)_第3頁
基于lifebench的在線教育系統(tǒng)設(shè)計與實現(xiàn)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于lifebench的在線教育系統(tǒng)設(shè)計與實現(xiàn)

隨著互聯(lián)網(wǎng)通信技術(shù)的快速發(fā)展和當(dāng)前疫情的背景下,中國的教育形式并不局限于傳統(tǒng)的在線教育形式。線上教育開始成為人們學(xué)習(xí)提高的重要形式,但是傳統(tǒng)的系統(tǒng)架構(gòu)應(yīng)對爆發(fā)式的在線學(xué)習(xí)顯然無法滿足大規(guī)模的用戶訪問需求。因此提出了基于SpringCloud微服務(wù)的在線視頻教育系統(tǒng)。本系統(tǒng)通過需求分析和設(shè)計按照功能將系統(tǒng)劃分為教育管理、視頻管理、用戶管理、支付管理微服務(wù)模塊。最后對系統(tǒng)的關(guān)鍵功能模塊和部分復(fù)雜技術(shù)的實現(xiàn)進(jìn)行了詳細(xì)的介紹。此系統(tǒng)為大用戶量的訪問提供了可靠保障。同時采用微服務(wù)的形式也為系統(tǒng)后期的擴(kuò)展性提供了可能。0基于微服務(wù)架構(gòu)的學(xué)習(xí)效率傳統(tǒng)授課受限于地點(diǎn)和人數(shù)的限制,在線教育已經(jīng)成為人們學(xué)習(xí)的新的學(xué)習(xí)方式,相對于傳統(tǒng)教育在線教育不受制于空間和人數(shù)。通過在線學(xué)習(xí)可以讓人們隨時隨地的進(jìn)行學(xué)習(xí),可以節(jié)約學(xué)習(xí)的時間提高人們的學(xué)習(xí)效率。目前雖然許多學(xué)校都有自己的在線教育系統(tǒng)但這些系統(tǒng)由于大多采用的是傳統(tǒng)的單體技術(shù)架構(gòu)。前后端不能分離,前后端耦合系統(tǒng)的擴(kuò)展性不強(qiáng),不能對系統(tǒng)的模塊根據(jù)用戶的使用頻率進(jìn)行靈活的部署。此時用戶量多的情況下很容易出現(xiàn)卡頓甚至崩潰死機(jī)的情況。因此采用微服務(wù)架構(gòu)可以很好的解決上述問題。在微服務(wù)架構(gòu)下通過將系統(tǒng)按照功能模塊進(jìn)行拆分成不同的微服務(wù),每個微服務(wù)可以單獨(dú)部署。服務(wù)之間可以通過Feign等技術(shù)實現(xiàn)調(diào)用。本系統(tǒng)通過使用基于SpringCloud的微服務(wù)框架,可以有效的解決代碼耦合度高、后期系統(tǒng)可擴(kuò)展性差、系統(tǒng)并發(fā)度不高、不能靈活部署等問題1微服務(wù)架構(gòu)下的部署微服務(wù)架構(gòu)是相對于傳統(tǒng)的單體結(jié)構(gòu)而說的,傳統(tǒng)單體架構(gòu)主要是以單體框架為主。傳統(tǒng)的單體架構(gòu)所有的功能模塊都集中在一個程序中,前臺和后臺之間以及后臺各個功能模塊之間的耦合度高。往往一處修改需要級聯(lián)修改多處。導(dǎo)致代碼維護(hù)難度成幾何倍數(shù)增加。同時這種架構(gòu)不能按照功能模塊的使用頻率進(jìn)行靈活部署。微服務(wù)架構(gòu)正是在此背景下產(chǎn)生的,微服務(wù)可以將一個程序安裝功能劃分為不同的模塊。各個功能模塊可以根據(jù)實際的業(yè)務(wù)環(huán)境動態(tài)的部署,訪問量大的就多部署而訪問量少的功能模塊可以少部署。這些模塊之間相互的調(diào)用可以通過插件從而實現(xiàn)了模塊之間的松耦合度。2sentinl組件本系統(tǒng)采用前后端分離的架構(gòu)模式。該架構(gòu)主要目的是讓前端和后端開發(fā)可以同步進(jìn)行最后部署可以分開部署。前端選用的框架主要是Vue等主流的前端框架。后端選用SpringCloud框架,該框架下包括不同功能的組件。按照功能劃分選用的組件如下(1)網(wǎng)關(guān)選擇的是Zuul,網(wǎng)關(guān)主要負(fù)責(zé)對前臺頁面進(jìn)行身份驗證、路由管理、負(fù)載分配。前臺的所有訪問后臺的所有路徑都通過網(wǎng)關(guān)按照路徑分發(fā)到后臺的不同微服務(wù)模塊。(2)注冊中心選擇的是Eureka,各個微服務(wù)模塊都將自己注冊到EurekaServer。(3)服務(wù)間調(diào)用使用組件OpenFeign,通過此組件實現(xiàn)不同的微服務(wù)之間可以通過發(fā)送Http請求進(jìn)行彼此之間的訪問。(4)由于服務(wù)之間存在依賴關(guān)系因此如果一個服務(wù)出現(xiàn)了問題容易引起其他服務(wù)出現(xiàn)問題從而引起雪崩。因此需要Sentinal組件,通過他保障調(diào)用其他服務(wù)出現(xiàn)問題時候有錯誤處理。從而提高整個系統(tǒng)的可靠性。系統(tǒng)的總體結(jié)構(gòu)設(shè)計如圖1所示。3不同功能模塊的設(shè)計3.1后臺管理功能(1)前臺用戶進(jìn)入登錄模塊點(diǎn)擊掃碼登錄進(jìn)入支付寶掃碼登錄用戶掃碼后返回到在線視頻教育系統(tǒng)的登錄處理中,后臺審核用戶信息如果成功將用戶信息保存到后臺數(shù)據(jù)庫再返回到主界面,失敗就返回失敗信息(2)后臺管理員輸入用戶名、密碼注冊,后臺將相關(guān)管理員信息保存到后臺數(shù)據(jù)庫。3.2課程登錄的審核(1)前臺用戶點(diǎn)擊講師向后臺請求講師信息,后臺從數(shù)據(jù)庫查詢講師信息返回前臺。前臺用戶點(diǎn)擊課程向后臺請求課程信息返回前臺。前臺用戶選擇某一課程跳轉(zhuǎn)到課程詳情頁如果課程是免費(fèi)的可以點(diǎn)擊觀看跳轉(zhuǎn)到播放頁播放課程。如果課程是收費(fèi)的先審核用戶是否登錄如果已經(jīng)登錄跳轉(zhuǎn)到支付界面,如果未登錄則跳轉(zhuǎn)到登錄界面。前臺用戶點(diǎn)擊課程收藏,判斷其是否登錄如果未登錄跳轉(zhuǎn)到登錄頁面。如果已經(jīng)登錄則將課程信息和用戶信息保存到課程收藏表中。(2)后臺用戶點(diǎn)擊添加講師輸入講師信息向后臺發(fā)送請求后臺將講師信息保存。點(diǎn)擊查看講師將發(fā)送查詢請求后臺,后臺從數(shù)據(jù)庫查詢講師信息分頁返回前臺。后臺用戶點(diǎn)擊發(fā)布課程輸入課程信息已經(jīng)添加課程章節(jié)和課程文件后將課程信息保存數(shù)據(jù)庫將課程文件保存到服務(wù)器。點(diǎn)擊查詢課程則后臺查詢課程并分頁后返回前臺。點(diǎn)擊導(dǎo)入,按指定格式導(dǎo)入分類信息。后臺將分類信息批量保存。前臺點(diǎn)擊查詢分類,后臺將分類信息從數(shù)據(jù)庫查詢出來返回前臺。3.3視頻觀看模塊(1)前臺用戶在課程詳情頁通過點(diǎn)擊立即播放將視頻路徑傳遞到播放頁,視頻播放頁發(fā)送請求獲取到真實路徑進(jìn)行播放視頻課程。(2)后臺用戶添加課程時選擇某個小節(jié)點(diǎn)擊上傳視頻調(diào)用后臺程序?qū)⒁曨l保存到服務(wù)器,點(diǎn)擊確定將小節(jié)里的視頻地址保存到數(shù)據(jù)庫,后臺用戶選擇視頻點(diǎn)刪除則調(diào)用后臺刪除方法將視頻從服務(wù)器刪除,點(diǎn)擊確定將小節(jié)中的視頻信息從數(shù)據(jù)庫刪除。3.4支付成功之后前臺用戶選擇收費(fèi)課程點(diǎn)擊立即購買如果用戶沒有登錄則跳轉(zhuǎn)到登錄頁面,如果已經(jīng)登錄則跳轉(zhuǎn)到訂單確認(rèn)頁面點(diǎn)擊支付后向后臺發(fā)送支付請求后臺將支付信息發(fā)送給支付寶接口,支付成功后跳轉(zhuǎn)到在線視頻教育系統(tǒng)后臺,后臺更新訂單的支付信息后跳轉(zhuǎn)到購買過的課程詳情頁。4復(fù)雜的系統(tǒng)模塊4.1用戶掃碼登錄后登錄首先前臺用戶點(diǎn)擊掃碼登錄按鈕通過向后臺發(fā)送異步請求到用戶中心微服務(wù)模塊的登錄方法該方法首先到配置文件獲取應(yīng)用標(biāo)識號以及重定向的地址,然后進(jìn)行字符串拼接后跳轉(zhuǎn)到支付寶授權(quán)登錄界面,用戶掃碼登錄后跳轉(zhuǎn)到在線視頻教育系統(tǒng)的回調(diào)方法中,該方法接受支付寶服務(wù)返回的授權(quán)碼,接受到授權(quán)碼后該方法向支付寶服務(wù)發(fā)送請求獲取授權(quán)Token信息,通過該參數(shù)獲取用戶的用戶標(biāo)識、昵稱、電話、頭像等信息。獲取該信息后再本地數(shù)據(jù)庫查找該用戶是否之前已登錄如果登錄了就不用再保存這些用戶信息,如果之前未登錄則在本地數(shù)據(jù)庫保存用戶信息,接著通過JWT生成Token信息返回前臺頁面。前臺獲取Token后將Token放到Cookie中,保證用戶在一段時間內(nèi)可以保持登錄狀態(tài)。接著刷新頁面后,前臺向后臺請求并根據(jù)Token獲取會員信息返回到前臺頁面4.2后臺管理功能當(dāng)添加課程選擇課程封面并添加的時候?qū)D片發(fā)到后臺,后臺方法將圖片進(jìn)行Base64轉(zhuǎn)碼后返回前臺。前臺點(diǎn)擊保存后向后臺發(fā)送請求將轉(zhuǎn)碼后的圖片保存到后臺數(shù)據(jù)庫。采用這樣可以減少向后臺發(fā)送。避免圖片信息泄露。4.3視頻監(jiān)控系統(tǒng)的后臺服務(wù)器前臺用戶點(diǎn)擊觀看的視頻教程,此時向后臺發(fā)送請求,后臺會接受前臺的地址路徑,但這種路徑后臺服務(wù)器是無法識別的需要轉(zhuǎn)換為具體的磁盤位置,我們這個時候就需要把本地的路徑和網(wǎng)絡(luò)地址路徑做映射處理從而實現(xiàn)對本地視頻課程的訪問和播放4.4轉(zhuǎn)臺后登錄頁前臺用戶選擇課程后點(diǎn)擊購買按鈕觸發(fā)下訂單方法該方法向后臺發(fā)送創(chuàng)建訂單請求,網(wǎng)關(guān)服務(wù)判斷用戶是否登錄如已經(jīng)登錄創(chuàng)建訂單返回前臺后跳轉(zhuǎn)到下訂單頁面,如果沒有登錄則跳轉(zhuǎn)到登錄頁。用戶點(diǎn)擊去支付后通過向后臺發(fā)送支付請求后臺方法依據(jù)獲取的訂單號查詢訂單后在配置文件中獲取支付網(wǎng)關(guān)、應(yīng)用標(biāo)識、編碼格式、簽名算法類型等參數(shù)后向支付寶發(fā)送支付請求,支付寶效驗信息后跳轉(zhuǎn)到支付頁面,用戶掃碼支付后,支付寶跳轉(zhuǎn)到支付成功方法,此方法效驗成功后更新數(shù)據(jù)庫訂單信息為已經(jīng)支付,最后跳轉(zhuǎn)到前臺已經(jīng)購買的課程頁面。4.5前端用戶登錄創(chuàng)建網(wǎng)關(guān)鑒權(quán)類后繼承網(wǎng)關(guān)過濾器類后重寫過濾器方法,此方法添加我們需要過濾鑒權(quán)的路徑,然后重寫運(yùn)行方法我們根據(jù)是否能獲取到Token信息判斷前臺用戶是否登錄。如果鑒權(quán)失敗返回對應(yīng)錯誤編號,前臺依據(jù)編號重定向到登錄頁面。如果鑒權(quán)成功則到對應(yīng)的微服務(wù)模塊的方法進(jìn)行對應(yīng)的業(yè)務(wù)邏輯處理。4.6功能模塊的使用通用功能模塊主要是將后臺返回前臺消息的通用方法和異常處理以及通用的一些工具類文件放在此模塊。5微服務(wù)系統(tǒng)架構(gòu)系統(tǒng)逐漸由單體架構(gòu)到微服務(wù)架構(gòu)開發(fā)已經(jīng)是不可避免的趨勢。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論