本發(fā)明實施例涉及計算機網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種在線課程報名的處理方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)+教育時代的興起以及數(shù)字化教育的高速發(fā)展,越來越多的用戶通過在線學(xué)習(xí)平臺報名進行網(wǎng)絡(luò)課程學(xué)習(xí),導(dǎo)致高并發(fā)場景越來越多,而報名與選課就是在線課程學(xué)習(xí)平臺中比較典型的高并發(fā)場景。
目前在線課程報名基本上都是采用傳統(tǒng)的三層軟件設(shè)計架構(gòu),即用戶界面表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,其中,表示層為用戶提供交互式的界面,業(yè)務(wù)邏輯層負責(zé)數(shù)據(jù)的處理與傳遞,數(shù)據(jù)訪問層對數(shù)據(jù)進行保存、讀取和更新。使用三層軟件設(shè)計架構(gòu)能使項目結(jié)構(gòu)清楚明確,有利于各層邏輯的復(fù)用,但傳統(tǒng)三層軟件架構(gòu)仍存在以下缺點:
傳統(tǒng)三層軟件構(gòu)建必須通過業(yè)務(wù)邏輯層獲取相應(yīng)的數(shù)據(jù),大大降低了數(shù)據(jù)的訪問速度,甚至導(dǎo)致數(shù)據(jù)庫沒有響應(yīng),在高并發(fā)、大數(shù)據(jù)的情況下,這種缺陷更是會被放大化,導(dǎo)致工作量與代碼量呈數(shù)量級增長,嚴重影響在線課程報名系統(tǒng)的穩(wěn)定與安全。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種在線課程報名的處理方法及系統(tǒng),以實現(xiàn)高并發(fā)、大數(shù)據(jù)情況下在線課程報名系統(tǒng)的穩(wěn)定與安全。
第一方面,本發(fā)明實施例提供了一種在線課程報名的處理方法,包括:
對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示;
接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理;
根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理。
進一步地,所述對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示包括:
將所述課程處理界面中的圖片進行壓縮,以形成靜態(tài)化處理界面,并向用戶進行顯示。
進一步地,所述對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示之前,還包括至少一種:
按照課程的無效處理時間范圍,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示;
按照當(dāng)前用戶的處理狀態(tài),將所述課程處理界面中禁止用戶權(quán)限的按鈕置為無效,并向用戶進行顯示;
如果發(fā)起處理請求的當(dāng)前用戶數(shù)量超出課程操作人數(shù)上限,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示。
進一步地,所述接收到用戶通過所述課程處理界面反饋的處理請求之后,還包括:
根據(jù)用戶處理請求數(shù)量門限值,對每個用戶發(fā)送的處理請求進行篩選。
進一步地,所述接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理包括:
接收到用戶通過所述課程處理界面反饋的處理請求時,查找與所述處理請求所攜帶版本號對應(yīng)的服務(wù)器版本號,將所述處理請求發(fā)送至版本號對應(yīng)的服務(wù)器進行處理;或
接收到用戶通過所述課程處理界面反饋的處理請求時,按照處理請求的發(fā)起時間順序?qū)⑻幚碚埱蠓湃胍粋€隊列,按照所述隊列中處理請求的順序,將處理請求依次分發(fā)給至少兩個服務(wù)器進行處理。
進一步地,所述根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理包括:
根據(jù)至少兩個所述處理請求中的報名信息,在內(nèi)存中進行查找;
如果所述內(nèi)存中存在包括所述報名信息的待處理數(shù)據(jù),則對相應(yīng)的處理請求進行響應(yīng)處理,直至全部處理請求的報名信息查找完畢;
如果所述內(nèi)存中不存在包括所述報名信息的待處理數(shù)據(jù)時,則從數(shù)據(jù)庫中將待處理數(shù)據(jù)讀取至內(nèi)存中進行響應(yīng)處理。
另一方面,本發(fā)明實施例提供了一種在線課程報名的處理系統(tǒng),包括:
界面靜態(tài)化模塊,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示;
負載均衡模塊,用于接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理;
請求響應(yīng)模塊,用于根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理。
進一步地,所述界面靜態(tài)化模塊具體用于:
將所述課程處理界面中的圖片進行壓縮,以形成靜態(tài)化處理界面,并向用戶進行顯示。
進一步地,在上述系統(tǒng)的基礎(chǔ)上,還包括下述模塊中的至少一個:
時間控制按鈕模塊,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示之前,按照課程的無效處理時間范圍,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示;
狀態(tài)控制按鈕模塊,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示之前,按照當(dāng)前用戶的處理狀態(tài),將所述課程處理界面中禁止用戶權(quán)限的按鈕置為無效,并向用戶進行顯示;
上限控制按鈕模塊,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示之前,如果發(fā)起處理請求的當(dāng)前用戶數(shù)量超出課程操作人數(shù)上限,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示。
進一步地,在上述系統(tǒng)的基礎(chǔ)上,還包括:
請求篩選模塊,用于接收到用戶通過所述課程處理界面反饋的處理請求之后,根據(jù)用戶處理請求數(shù)量門限值,對每個用戶發(fā)送的處理請求進行篩選。
進一步地,所述負載均衡模塊包括:
版本號控制單元,用于查找與所述處理請求所攜帶版本號對應(yīng)的服務(wù)器版本號,將所述處理請求發(fā)送至版本號對應(yīng)的服務(wù)器進行處理;或
隊列控制單元,用于接收到用戶通過所述課程處理界面反饋的處理請求時,按照處理請求的發(fā)起時間順序?qū)⑻幚碚埱蠓湃胍粋€隊列,按照所述隊列中處理請求的順序,將處理請求依次分發(fā)給至少兩個服務(wù)器進行處理。
進一步地,所述請求響應(yīng)模塊具體用于:
根據(jù)至少兩個所述處理請求中的報名信息,在內(nèi)存中進行查找;
如果內(nèi)存中存在包括所述報名信息的待處理數(shù)據(jù),則對相應(yīng)的處理請求進行響應(yīng)處理,直至全部處理請求的報名信息查找完畢;
如果所述內(nèi)存中不存在包括所述報名信息的待處理數(shù)據(jù)時,則從數(shù)據(jù)庫中將待處理數(shù)據(jù)讀取至內(nèi)存中進行響應(yīng)處理。
本發(fā)明實施例通過對課程處理界面進行靜態(tài)化處理,使用反向代理負載均衡技術(shù)將不同用戶反饋的處理請求分發(fā)到至少兩個服務(wù)器進行處理,同時根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理,解決了大并發(fā)情況下在線課程報名業(yè)務(wù)不流暢、穩(wěn)定性差的問題,保證了高并發(fā)、大數(shù)據(jù)情況下在線課程報名系統(tǒng)的安全,大大提高了在線課程報名系統(tǒng)的穩(wěn)定性,為學(xué)生在線學(xué)習(xí)提供良好的用戶體驗。
附圖說明
圖1是本發(fā)明實施例一提供的一種在線課程報名的處理方法的流程圖;
圖2是本發(fā)明實施例二提供的一種在線課程報名的處理方法的流程圖;
圖3是本發(fā)明實施例三提供的一種在線課程報名的處理方法的流程圖;
圖4是本發(fā)明實施例四提供的一種在線課程報名的處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實施例一
圖1為本發(fā)明實施例一提供的一種在線課程報名的處理方法的流程圖,本實施例的技術(shù)方案可以應(yīng)用在需要對用戶的在線報名請求進行處理的場景,可以由本發(fā)明實施例所提供的在線課程報名系統(tǒng)來執(zhí)行,該系統(tǒng)可以采用軟件和/或硬件的方式來實現(xiàn),該系統(tǒng)可以集成于能夠?qū)τ脩舻脑诰€報名請求進行處理的后臺服務(wù)器或服務(wù)器集群內(nèi)。該方法包括:
S110,對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示。
在處理報名請求前,通常服務(wù)器需提供課程處理的網(wǎng)站,將各種功能的課程處理界面通過瀏覽器或客戶端顯示給用戶,從而接收用戶在課程處理界面上進行操作而反饋的處理請求。其中,對課程處理界面進行靜態(tài)化處理,例如可以是使用壓縮算法對所述課程處理界面中的圖片進行壓縮,以形成靜態(tài)化處理界面,增加用戶對在線課程報名頁面的訪問速度,優(yōu)選的,使用的壓縮算法可以是js壓縮算法。向用戶進行顯示是指將靜態(tài)化處理過的課程處理界面通過顯示設(shè)備呈現(xiàn)給進行在線課程報名的用戶,優(yōu)選地,顯示設(shè)備可以是計算機、平板電腦或手機等。
S120,接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理。
其中,用戶通過所述課程處理界面反饋處理請求可以通過用戶點擊交互界面中的報名按鈕實現(xiàn)。反向代理負載均衡技術(shù)是指反向代理服務(wù)器接收用戶通過課程處理界面反饋的處理請求,然后將所有的處理請求轉(zhuǎn)發(fā)到至少兩個應(yīng)用服務(wù)器上進行處理,并將從應(yīng)用服務(wù)器上得到的處理結(jié)果返回至交互界面請求連接的客戶端,優(yōu)選的,反向代理服務(wù)器可以是Nginx反向代理服務(wù)器,應(yīng)用服務(wù)器可以是網(wǎng)站服務(wù)器。本實施例使用反向代理負載均衡技術(shù),有效緩解了大并發(fā)情況下各個應(yīng)用服務(wù)器的承載壓力。
優(yōu)選的,接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理可以通過樂觀鎖算法來實現(xiàn),具體的,當(dāng)服務(wù)器接收到用戶通過所述課程處理界面反饋的處理請求時,查找服務(wù)器中是否存在與處理請求所攜帶版本號對應(yīng)的服務(wù)器版本號,如果有,則將處理請求發(fā)送到對應(yīng)的服務(wù)器進行處理。這種做法使用版本號對用戶發(fā)出的處理請求進行控制,確保一個服務(wù)器針對一個用戶每次只接收一個處理請求,保證了在線課程報名體統(tǒng)的安全性,對惡意IP同時發(fā)送多個處理請求的情況進行了限制。
優(yōu)選的,接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理還可以通過隊列實現(xiàn),具體的,當(dāng)服務(wù)器接收到用戶通過所述課程處理界面反饋的處理請求時,按照處理請求的發(fā)起時間順序?qū)⑻幚碚埱笠来畏湃胍粋€隊列,按照隊列中處理請求的順序,將處理請求依次分發(fā)給至少兩個服務(wù)器進行處理。這種方法實現(xiàn)了大并發(fā)情況下,服務(wù)器每次只接收一個處理請求,防止大量處理請求并發(fā)導(dǎo)致在線課程報名系統(tǒng)崩潰。
S130,根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理。
其中,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理是指首先在內(nèi)存中查找是否存在包括相應(yīng)報名信息的待處理數(shù)據(jù),如果存在,則對相應(yīng)的處理請求進行響應(yīng)處理,直至查找到全部處理請求的報名信息;如果不存在,則從數(shù)據(jù)庫中將待處理數(shù)據(jù)讀取至內(nèi)存中進行響應(yīng)處理,優(yōu)選地,數(shù)據(jù)庫內(nèi)存可以是Redis內(nèi)存緩存服務(wù)器。這里使用數(shù)據(jù)庫結(jié)合內(nèi)存緩存的方式大大加快了處理數(shù)據(jù)庫中包括報名信息待處理數(shù)據(jù)的速度,采用內(nèi)存緩存的方式提高了了大并發(fā)情況下系統(tǒng)的穩(wěn)定性與安全性。
本實施例的技術(shù)方案,針對大并發(fā)情況下在線課程報名業(yè)務(wù)不穩(wěn)定、系統(tǒng)容易崩潰的問題,通過對課程處理界面進行靜態(tài)化處理,使用反向代理負載均衡技術(shù)實現(xiàn)了對海量報名請求的攔截與篩選,保證了在線課程報名系統(tǒng)的安全性,同時在數(shù)據(jù)庫對包括報名請求的待處理數(shù)據(jù)進行處理時,采用數(shù)據(jù)庫結(jié)合內(nèi)存緩存的方法,保證了處理海量數(shù)據(jù)時數(shù)據(jù)庫的穩(wěn)定性。
實施例二
圖2是本發(fā)明實施例二提供的一種在線課程報名的處理方法的流程圖,該方法以前述實施例為基礎(chǔ),增加了按照課程的無效處理時間范圍,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示這一步驟。
相應(yīng)的,本實施例的方法包括:
S210,按照課程的無效處理時間范圍,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示。
S220,對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示。
S230,接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理。
S240,根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理。
具體的,按照課程的無效處理時間范圍,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示是指對報名按鈕進行時間限定,只允許用戶在規(guī)定時間內(nèi)進行報名,而對于規(guī)定時間外報名的用戶,將課程處理界面中的按鈕置為無效,并在交互界面上向用戶進行顯示,優(yōu)選的,將按鈕置為無效的方式可以是將按鈕置灰,無效處理時間的范圍可以采用客戶端與服務(wù)器的同步時間范圍。
本實施例增加了按照課程的無效處理時間范圍,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示這一步驟,依據(jù)無效處理時間范圍對課程處理界面中的按鈕進行控制,規(guī)定了用戶提交處理請求的時間,限制了用戶提交處理請求的頻率,在交互界面層面上解決了大并發(fā)情況容易導(dǎo)致系統(tǒng)不穩(wěn)定的問題。
可選的,增加的步驟還可以是按照當(dāng)前用戶的處理狀態(tài),將所述課程處理界面中禁止用戶權(quán)限的按鈕置為無效,并向用戶進行顯示。具體地,如果當(dāng)前用戶還未在課程處理界面上發(fā)出過報名請求,將課程處理界面中禁止用戶權(quán)限的按鈕置為無效,允許還未報名的用戶進行報名,保證在線課程報名系統(tǒng)對未報名用戶開放。如果當(dāng)前用戶的處理狀態(tài)是已經(jīng)發(fā)起過多次報名,則禁止其報名權(quán)限,將相應(yīng)的按鈕置為無效。
可選的,增加的步驟還可以是如果發(fā)起處理請求的當(dāng)前用戶數(shù)量超出課程操作人數(shù)上限,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示。具體的,如果發(fā)起處理請求的用戶數(shù)量超出了課程設(shè)置的報名人數(shù)上限,則將按鈕置為無效,此時不再接收任何用戶發(fā)出的處理請求,保證在線課程報名系統(tǒng)穩(wěn)定運行。
可選的,增加的步驟可以是上述三個步驟中的至少一個。
實施例三
圖3是本發(fā)明實施例三提供的一種在線課程報名的處理方法的流程圖,該方法以前述實施例為基礎(chǔ),增加了根據(jù)用戶處理請求數(shù)量門限值,對每個用戶發(fā)送的處理請求進行篩選這一步驟。
相應(yīng)的,本實施例的方法包括:
S310,對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示。
S320,接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理。
S330,根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理。
S340,根據(jù)用戶處理請求數(shù)量門限值,對每個用戶發(fā)送的處理請求進行篩選。
具體的,根據(jù)用戶處理請求數(shù)量門限值,對每個用戶發(fā)送的處理請求進行篩選是指當(dāng)服務(wù)器接收到用戶發(fā)出的處理請求時,判斷是否還有報名余額,如果有,則使用反向代理負載均衡技術(shù),將報名請求分發(fā)到不同服務(wù)器進行處理;如果已經(jīng)沒有報名余額,則拒絕接收該報名請求。
本實施例增加了根據(jù)用戶處理請求數(shù)量門限值,對每個用戶發(fā)送的處理請求進行篩選這一步驟,通過用戶請求數(shù)量門限值限定了服務(wù)器接收報名處理請求的上限,解決了大并發(fā)情況下大量處理請求并行發(fā)生容易導(dǎo)致系統(tǒng)崩潰的問題,提高了在線課程報名系統(tǒng)的穩(wěn)定性與安全性。
實施例四
圖4為本發(fā)明實施例四提供的一種在線課程報名處理系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)包括:界面靜態(tài)化模塊410,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示;負載均衡模塊420,用于接收到用戶通過所述課程處理界面反饋的處理請求時,使用反向代理負載均衡技術(shù),將不同用戶的處理請求分發(fā)到至少兩個服務(wù)器進行處理;請求響應(yīng)模塊430,用于根據(jù)當(dāng)前獲取的至少兩個處理請求,優(yōu)先調(diào)用內(nèi)存數(shù)據(jù)進行響應(yīng)處理。
優(yōu)選的,所述界面靜態(tài)化模塊410具體可以用于將所述課程處理界面中的圖片進行壓縮,以形成靜態(tài)化處理界面,并向用戶進行顯示。
優(yōu)選的,在上述系統(tǒng)的基礎(chǔ)上,還包括下述模塊中的至少一個:
時間控制按鈕模塊,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示之前,按照課程的無效處理時間范圍,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示;
狀態(tài)控制按鈕模塊,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示之前,按照當(dāng)前用戶的處理狀態(tài),將所述課程處理界面中禁止用戶權(quán)限的按鈕置為無效,并向用戶進行顯示;
上限控制按鈕模塊,用于對課程處理界面進行靜態(tài)化處理,并向用戶進行顯示之前,如果發(fā)起處理請求的當(dāng)前用戶數(shù)量超出課程操作人數(shù)上限,將所述課程處理界面中的按鈕置為無效,并向用戶進行顯示。
優(yōu)選的,在上述系統(tǒng)的基礎(chǔ)上,還包括:
請求篩選模塊,用于負載均衡模塊之后,根據(jù)用戶處理請求數(shù)量門限值,對每個用戶發(fā)送的處理請求進行篩選。
優(yōu)選的,所述負載均衡模塊420包括:
版本號控制單元,用于查找與所述處理請求所攜帶版本號對應(yīng)的服務(wù)器版本號,將所述處理請求發(fā)送至版本號對應(yīng)的服務(wù)器進行處理;或
隊列控制單元,用于接收到用戶通過所述課程處理界面反饋的處理請求時,按照處理請求的發(fā)起時間順序?qū)⑻幚碚埱蠓湃胍粋€隊列,按照所述隊列中處理請求的順序,將處理請求依次分發(fā)給至少兩個服務(wù)器進行處理。
優(yōu)選的,所述請求響應(yīng)模塊430可以用于根據(jù)至少兩個所述處理請求中的報名信息,在內(nèi)存中進行查找。如果內(nèi)存中存在包括所述報名信息的待處理數(shù)據(jù),則對相應(yīng)的處理請求進行響應(yīng)處理,直至全部處理請求的報名信息查找完畢;如果不存在,則從數(shù)據(jù)庫中將待處理數(shù)據(jù)讀取至內(nèi)存中進行響應(yīng)處理。
通過本發(fā)明實施例四提供的一種在線課程報名的處理系統(tǒng),解決了大并發(fā)情況下在線課程報名系統(tǒng)容易崩潰的問題,提高了在線課程報名業(yè)務(wù)的穩(wěn)定性和流暢性,為用戶的在線學(xué)習(xí)提供了良好的用戶體驗。
本發(fā)明實施例提供的在線課程報名的處理系統(tǒng)可執(zhí)行人發(fā)明任意實施例所提供的在線課程報名的處理方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。