一種閃拍數(shù)據(jù)處理方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種閃拍數(shù)據(jù)處理方法,包括以下步驟:S101 中臺(tái)服務(wù)器根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器;S102 Redis推送服務(wù)器將用戶需求數(shù)據(jù)推送至推送服務(wù)器;S103 推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。本發(fā)明還公開(kāi)了一種閃拍數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括中臺(tái)服務(wù)器、Redis推送服務(wù)器和推送服務(wù)器。該閃拍數(shù)據(jù)處理方法及系統(tǒng),能夠保證進(jìn)行閃拍活動(dòng)時(shí),服務(wù)器穩(wěn)定運(yùn)行,且硬件成本低,整個(gè)系統(tǒng)的利用率高。
【專利說(shuō)明】
一種閃拍數(shù)據(jù)處理方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,具體來(lái)說(shuō),涉及一種閃拍數(shù)據(jù)處理方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著電子商務(wù)的發(fā)展,各種各樣的網(wǎng)購(gòu)形式層出不窮。其中,一種以短時(shí)間內(nèi)競(jìng)價(jià)拍賣的“閃拍”購(gòu)物模式一經(jīng)推出,便受到了用戶的廣泛關(guān)注。閃拍的主要模式為:提前預(yù)告定時(shí)參拍的商品,到預(yù)定時(shí)間時(shí),有網(wǎng)購(gòu)買家競(jìng)價(jià)進(jìn)行購(gòu)買。因此,在短時(shí)間內(nèi),服務(wù)器的訪問(wèn)量巨大,服務(wù)器將承擔(dān)巨大壓力。因此,如何保證服務(wù)器的穩(wěn)定,已經(jīng)成為一個(gè)重要技術(shù)問(wèn)題?,F(xiàn)有技術(shù)為解決此問(wèn)題,通常采用的方法是通過(guò)投入硬件成本,增加處理能力。但是,該方法一方面需要成本投入,另一方面,閃拍只在定點(diǎn)時(shí)產(chǎn)生巨大的訪問(wèn)量,而在平時(shí),訪問(wèn)量穩(wěn)定而有限,因此,通過(guò)硬件增加處理能力,利用率(收益成本比)較低。
【發(fā)明內(nèi)容】
[0003]技術(shù)問(wèn)題:本發(fā)明所要解決的技術(shù)問(wèn)題是:提供一種閃拍數(shù)據(jù)處理方法及系統(tǒng),該方法及系統(tǒng)能夠保證進(jìn)行閃拍活動(dòng)時(shí),穩(wěn)定運(yùn)行,整個(gè)系統(tǒng)的利用率高。
[0004]技術(shù)方案:為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案是:
一種閃拍數(shù)據(jù)處理方法,該處理方法包括以下步驟:
SlOl中臺(tái)服務(wù)器根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器;
S102 Redis推送服務(wù)器將用戶需求數(shù)據(jù)推送至推送服務(wù)器;
S103推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。
[0005]進(jìn)一步,所述的閃拍數(shù)據(jù)處理方法,還包括
S1001將閃拍數(shù)據(jù)請(qǐng)求通過(guò)瀏覽器發(fā)送給前臺(tái)服務(wù)器;
S1002前臺(tái)服務(wù)器將接收的閃拍數(shù)據(jù)請(qǐng)求進(jìn)行合并,發(fā)送給中臺(tái)服務(wù)器。
[0006]進(jìn)一步,所述的步驟S103的過(guò)程為:推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送至瀏覽器,瀏覽器將其獲取的用戶需求數(shù)據(jù)展示給用戶。
[0007]—種閃拍數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括中臺(tái)服務(wù)器、Redis推送服務(wù)器和推送服務(wù)器,其中,
中臺(tái)服務(wù)器,用于根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器;
Redis推送服務(wù)器,用于接收中臺(tái)服務(wù)器發(fā)送的用戶需求數(shù)據(jù),并將用戶需求數(shù)據(jù)推送至推送服務(wù)器;
推送服務(wù)器,用于接收Redis推送服務(wù)器推送的用戶需求數(shù)據(jù),并將用戶需求數(shù)據(jù)發(fā)送給用戶。
[0008]進(jìn)一步,所述的閃拍數(shù)據(jù)處理系統(tǒng),其特征在于,還包括:
前臺(tái)服務(wù)器,用于接收用戶通過(guò)瀏覽器發(fā)送的閃拍數(shù)據(jù)請(qǐng)求并進(jìn)行合并,發(fā)送給中臺(tái)服務(wù)器。
[0009]進(jìn)一步,所述的前臺(tái)服務(wù)器包括合并單元和第一發(fā)送單元,
合并單元,用于接收用戶發(fā)送的閃拍數(shù)據(jù)請(qǐng)求,并將閃拍數(shù)據(jù)請(qǐng)求進(jìn)行合并,發(fā)送給第一發(fā)送單兀;
第一發(fā)送單元,用于將合并后的閃拍數(shù)據(jù)請(qǐng)求一次性發(fā)送給中臺(tái)服務(wù)器。
[0010]進(jìn)一步,所述的中臺(tái)服務(wù)器包括搜索單元和第二發(fā)送單元,
搜索單元,用于根據(jù)第一發(fā)送單元發(fā)送的閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中查找與閃拍數(shù)據(jù)請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù),并發(fā)送給第二發(fā)送單元;
第二發(fā)送單元,用于將搜索單元搜索到的數(shù)據(jù),一次性發(fā)送給Redis推送服務(wù)器。
[0011]進(jìn)一步,所述的Redis推送服務(wù)器包括生成單元和第三發(fā)送單元,
生成單元,用于接收第二發(fā)送單元發(fā)送的數(shù)據(jù),并將數(shù)據(jù)生成報(bào)文,發(fā)送給第三發(fā)送單元;
第三發(fā)送單元,用于將報(bào)文發(fā)送給推送服務(wù)器。
[0012]進(jìn)一步,所述的閃拍數(shù)據(jù)處理系統(tǒng),還包括:
Redis主服務(wù)器,用于閃拍主系統(tǒng)的緩存;
后臺(tái)服務(wù)器,用于運(yùn)營(yíng)人員對(duì)閃拍管理系統(tǒng)進(jìn)行維護(hù);
Terracotta服務(wù)器,用于閃拍活動(dòng)中的流程控制、JOB輪轉(zhuǎn),分布式線程池設(shè)置。
[0013]有益效果:本發(fā)明中設(shè)置Redis推送服務(wù)器和推送服務(wù)器,利用Redis推送服務(wù)器將用戶需求數(shù)據(jù)主動(dòng)推送至推送服務(wù)器中,再由推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。這樣,用戶就不需要每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù),給Redis推送服務(wù)器帶來(lái)巨大的運(yùn)行壓力。本發(fā)明通過(guò)增加推送服務(wù)器,由推送服務(wù)器和瀏覽器之間發(fā)生數(shù)據(jù)交互,大大緩解了 Redis推送服務(wù)器的訪問(wèn)壓力。整個(gè)系統(tǒng)穩(wěn)定運(yùn)行。同時(shí),在閃拍活動(dòng)中,服務(wù)器僅僅在固定時(shí)間內(nèi)發(fā)生大量的數(shù)據(jù)訪問(wèn),而在平常,訪問(wèn)量小,服務(wù)器的壓力不大。本發(fā)明沒(méi)有僅僅通過(guò)增加硬件方式來(lái)緩解服務(wù)器訪問(wèn)壓力,而是通過(guò)設(shè)置推送服務(wù)器,來(lái)提高系統(tǒng)的請(qǐng)求處理能力。整個(gè)系統(tǒng)的利用率高。
【附圖說(shuō)明】
[0014]圖1是本發(fā)明實(shí)施例1的流程框圖。
[0015]圖2是本發(fā)明實(shí)施例2的流程框圖。
[0016]圖3是本發(fā)明實(shí)施例3的一種網(wǎng)絡(luò)拓?fù)鋱D。
[0017]圖4是本發(fā)明實(shí)施例3的另一種網(wǎng)絡(luò)拓?fù)鋱D。
[0018]圖5是本發(fā)明實(shí)施例3的一種結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0019]下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)的說(shuō)明。
[0020]實(shí)施例1
如圖1所示,一種閃拍數(shù)據(jù)處理方法,包括以下步驟:
SlOl中臺(tái)服務(wù)器根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器; S102Redis推送服務(wù)器將用戶需求數(shù)據(jù)推送至推送服務(wù)器;
S103推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。
[0021]在現(xiàn)有的閃拍活動(dòng)中,當(dāng)有需要推送的閃拍數(shù)據(jù)時(shí),則直接將閃拍數(shù)據(jù)放入Redis推送服務(wù)器中,在WEB推送輪詢的時(shí)候,每次到Redi s推送服務(wù)器中讀取閃拍數(shù)據(jù)。這會(huì)產(chǎn)生大量的局域網(wǎng)輸入輸出10,Redis推送服務(wù)器的壓力巨大,Redis推送服務(wù)器運(yùn)行不穩(wěn)定。Redis是一個(gè)開(kāi)源的、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的存儲(chǔ)數(shù)據(jù)庫(kù),支持多種數(shù)據(jù)類型,具有很強(qiáng)的數(shù)據(jù)管理功能。在閃拍活動(dòng)中,Redis推送服務(wù)器中需要推送的數(shù)據(jù)量非常小,總數(shù)據(jù)量可能不到30M。同時(shí)在網(wǎng)絡(luò)閃拍活動(dòng)中,在短時(shí)間內(nèi),服務(wù)器的訪問(wèn)量巨大,且只在定點(diǎn)時(shí)間內(nèi)產(chǎn)生巨大的訪問(wèn)量,而在平時(shí),訪問(wèn)量穩(wěn)定而有限。本實(shí)施例的方法通過(guò)設(shè)置Redis推送服務(wù)器和推送服務(wù)器,利用Redis推送服務(wù)器將用戶需求數(shù)據(jù)主動(dòng)推送至推送服務(wù)器中,再由推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。這樣,用戶就不需要每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)。本發(fā)明采用Redis發(fā)布/訂閱和JCS( JCS為一種復(fù)合式的緩沖工具,可以將對(duì)象緩沖到內(nèi)存、硬盤,具有緩沖對(duì)象時(shí)間過(guò)期設(shè)定。還可以通過(guò)JCS構(gòu)建具有緩沖的分布式構(gòu)架,以實(shí)現(xiàn)高性能的應(yīng)用)本地緩存的方法,當(dāng)有需要推送的閃拍數(shù)據(jù)時(shí),Redis推送服務(wù)器將待推送的閃拍數(shù)據(jù)主動(dòng)推送到推送服務(wù)器中,由推送服務(wù)器和瀏覽器之間發(fā)生數(shù)據(jù)交互,提供閃拍數(shù)據(jù)給用戶。
[0022]在推送服務(wù)器中,使用JCS本地緩存來(lái)處理緩存過(guò)期、淘汰算法、緩存統(tǒng)計(jì)等功能。Redis推送服務(wù)器將待推送的閃拍數(shù)據(jù)主動(dòng)推送到推送服務(wù)器的JCS本地緩存中。推送服務(wù)器的JCS本地緩存中存儲(chǔ)Redis推送服務(wù)器推送的閃拍數(shù)據(jù)。
[0023]在上述方法中,數(shù)據(jù)請(qǐng)求為閃拍活動(dòng)中用戶需要了解的閃拍信息,包括當(dāng)前價(jià)格、服務(wù)器時(shí)間、歷史價(jià)格、保證金凍結(jié)人數(shù)、拍賣輪轉(zhuǎn)、中標(biāo)提醒、拍品屬性、中標(biāo)熱榜、人氣榜中的任意一種或組合。
[0024]所述的步驟SlOl還包括:中臺(tái)服務(wù)器利用MySQL (對(duì)應(yīng)中文:關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))服務(wù)器將閃拍過(guò)程中產(chǎn)生的數(shù)據(jù)永久保存到硬盤。
[0025]作為優(yōu)選,所述的步驟S103的過(guò)程為:推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送至瀏覽器,瀏覽器將其獲取的用戶需求數(shù)據(jù)展示給用戶。推送服務(wù)器和瀏覽器之間采用短輪詢方式進(jìn)行數(shù)據(jù)交互。這樣,用戶就不需要每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)。本實(shí)施例通過(guò)將用戶需求數(shù)據(jù)由Redis推送服務(wù)器發(fā)送到推送服務(wù)器,由推送服務(wù)器和瀏覽器之間采用短輪詢方式進(jìn)行數(shù)據(jù)交互,向用戶提供需求數(shù)據(jù)。這避免了用戶直接通過(guò)瀏覽器向Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)而對(duì)服務(wù)器帶來(lái)的壓力。
[0026]作為優(yōu)選,所述的步驟SlOl中,中臺(tái)服務(wù)器實(shí)時(shí)更新位于中臺(tái)服務(wù)器中的數(shù)據(jù)庫(kù)信息。閃拍活動(dòng)中的信息,諸如當(dāng)前價(jià)格、歷史價(jià)格、保證金凍結(jié)人數(shù)等等,在時(shí)刻發(fā)生變化。為保證閃拍活動(dòng)中,用戶能夠獲取實(shí)時(shí)信息,中臺(tái)服務(wù)器需要實(shí)時(shí)更新位于中臺(tái)服務(wù)器中的數(shù)據(jù)庫(kù)信息,將最新的信息傳遞給Redis推送服務(wù)器,再由Redis推送服務(wù)器主動(dòng)推動(dòng)給推送服務(wù)器。
[0027]現(xiàn)有的閃拍活動(dòng)中,當(dāng)有需要推送的閃拍數(shù)據(jù)時(shí),則直接將閃拍數(shù)據(jù)放入Redis推送服務(wù)器中,在WEB推送輪詢的時(shí)候,瀏覽器每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)。這樣,Redis推送服務(wù)器的壓力巨大,Redis推送服務(wù)器運(yùn)行不穩(wěn)定。本發(fā)明通過(guò)設(shè)置推送服務(wù)器,利用Redis推送服務(wù)器將用戶需求數(shù)據(jù)主動(dòng)推送至推送服務(wù)器中,再由推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。這樣,用戶就不需要每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù),給Redis推送服務(wù)器帶來(lái)巨大的壓力。本發(fā)明采用Redis發(fā)布/訂閱和JCS本地緩存的方法,當(dāng)有需要推送的閃拍數(shù)據(jù)時(shí),Redis推送服務(wù)器將待推送的閃拍數(shù)據(jù)主動(dòng)推送到推送服務(wù)器中,由推送服務(wù)器和瀏覽器之間發(fā)生數(shù)據(jù)交互,提供閃拍數(shù)據(jù)給用戶。在整個(gè)過(guò)程中,服務(wù)器穩(wěn)定運(yùn)行。同時(shí),采用本發(fā)明的方法,不需要投入過(guò)多的硬件,以緩解服務(wù)器的壓力。
[0028]實(shí)施例2
如圖2所示,一種閃拍數(shù)據(jù)處理方法,包括以下步驟:
S1001將閃拍數(shù)據(jù)請(qǐng)求通過(guò)瀏覽器發(fā)送給前臺(tái)服務(wù)器;
S1002前臺(tái)服務(wù)器將接收的閃拍數(shù)據(jù)請(qǐng)求進(jìn)行合并,發(fā)送給中臺(tái)服務(wù)器;
SlOl中臺(tái)服務(wù)器根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器;
S102Redis推送服務(wù)器將用戶需求數(shù)據(jù)推送至推送服務(wù)器;
S103推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。
[0029]本實(shí)施例2與實(shí)施例1相同之處在于,通過(guò)設(shè)置Redis推送服務(wù)器和推送服務(wù)器,利用Redis推送服務(wù)器將用戶需求數(shù)據(jù)主動(dòng)推送至推送服務(wù)器中,再由推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。這樣,用戶就不需要每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)。本實(shí)施例2與實(shí)施例1不同之處在于,本實(shí)施例2中,前臺(tái)服務(wù)器,將其接收到的用戶數(shù)據(jù)請(qǐng)求,進(jìn)行了合并處理,統(tǒng)一發(fā)送給中臺(tái)服務(wù)器。
[0030]中臺(tái)服務(wù)器接收合并后的請(qǐng)求后,分別從數(shù)據(jù)庫(kù)中查找與合并后的每個(gè)數(shù)據(jù)請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù),并將所有數(shù)據(jù)一次性發(fā)送給Redis推送服務(wù)器。Redis推送服務(wù)器將其接收的數(shù)據(jù)生成報(bào)文,發(fā)給推送服務(wù)器。推送服務(wù)器將報(bào)文反饋給所有發(fā)送請(qǐng)求的瀏覽器,展示給用戶。這樣,每個(gè)用戶都可以獲取自己所需要的數(shù)據(jù)。
[0031]現(xiàn)有的閃拍活動(dòng)中,當(dāng)有需要推送的閃拍數(shù)據(jù)時(shí),則直接將閃拍數(shù)據(jù)放入Redis推送服務(wù)器中,在WEB推送輪詢的時(shí)候,瀏覽器每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)。在本實(shí)施例中,前臺(tái)服務(wù)器可將用戶請(qǐng)求合并,發(fā)送給中臺(tái)服務(wù)器,由中臺(tái)服務(wù)器將各用戶需求數(shù)據(jù)一次性發(fā)送給Redis推送服務(wù)器,然后由Redis推送服務(wù)器將合并后的請(qǐng)求中所需數(shù)據(jù),生成報(bào)文,發(fā)給推送服務(wù)器,由推送服務(wù)器將報(bào)文返回所有發(fā)送請(qǐng)求的瀏覽器頁(yè)面。這樣方便擴(kuò)展,減少網(wǎng)絡(luò)10,大大提高了數(shù)據(jù)處理效率。
[0032]各用戶的請(qǐng)求是相互獨(dú)立的。如果分別進(jìn)行數(shù)據(jù)的搜索和傳輸,勢(shì)必增加時(shí)間成本。本實(shí)施例,通過(guò)將數(shù)據(jù)請(qǐng)求進(jìn)行合并,最后將數(shù)據(jù)生成報(bào)文,一次性發(fā)送給用戶,大大提高了數(shù)據(jù)傳輸效率。
[0033]實(shí)施例3
如圖3所示,一種閃拍數(shù)據(jù)處理系統(tǒng),包括中臺(tái)服務(wù)器、Redis推送服務(wù)器和推送服務(wù)器,
中臺(tái)服務(wù)器,用于根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器;
Redis推送服務(wù)器,用于接收中臺(tái)服務(wù)器發(fā)送的用戶需求數(shù)據(jù),并將用戶需求數(shù)據(jù)推送至推送服務(wù)器; 推送服務(wù)器,用于接收Redis推送服務(wù)器推送的用戶需求數(shù)據(jù),并將用戶需求數(shù)據(jù)發(fā)送給用戶。
[0034]在現(xiàn)有的閃拍系統(tǒng)中,當(dāng)有需要推送的閃拍數(shù)據(jù)時(shí),則直接將閃拍數(shù)據(jù)放入Redis推送服務(wù)器中,在WEB推送輪詢的時(shí)候,每次到Redi s推送服務(wù)器中讀取閃拍數(shù)據(jù)。這會(huì)產(chǎn)生大量的局域網(wǎng)輸入輸出10,Redis推送服務(wù)器的壓力巨大,Redis推送服務(wù)器運(yùn)行不穩(wěn)定。在閃拍活動(dòng)中,Redis推送服務(wù)器中需要推送的數(shù)據(jù)量非常小,總數(shù)據(jù)量可能不到30M。本發(fā)明的系統(tǒng),通過(guò)設(shè)置中臺(tái)服務(wù)器、Redis推送服務(wù)器和推送服務(wù)器,利用Redis推送服務(wù)器將用戶需求數(shù)據(jù)主動(dòng)推送至推送服務(wù)器中,再由推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。這樣,用戶就不需要每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)。
[0035]在推送服務(wù)器中,使用JCS本地緩存來(lái)處理緩存過(guò)期、淘汰算法、緩存統(tǒng)計(jì)等功能。Redis推送服務(wù)器將待推送的閃拍數(shù)據(jù)主動(dòng)推送到推送服務(wù)器的JCS本地緩存中。推送服務(wù)器的JCS本地緩存中存儲(chǔ)Redis推送服務(wù)器主動(dòng)發(fā)送的閃拍數(shù)據(jù)。在發(fā)布的時(shí)候,Redis推送服務(wù)器中的發(fā)布(publish)功能負(fù)責(zé)將閃拍數(shù)據(jù)推送到Redis推送服務(wù)器里,Redis推送服務(wù)器再將數(shù)據(jù)主動(dòng)推送到推送服務(wù)器。Redis推送服務(wù)器中的SET模塊,負(fù)責(zé)將數(shù)據(jù)持久化到Redis推送服務(wù)器中。當(dāng)推送服務(wù)器重啟的時(shí)候,可以從Redis推送服務(wù)器中重新獲取數(shù)據(jù),進(jìn)而實(shí)現(xiàn)數(shù)據(jù)恢復(fù)。
[0036]Redis服務(wù)器的發(fā)布/訂閱(pub/sub)使用sentinel技術(shù)實(shí)現(xiàn)了失效轉(zhuǎn)移控制。sentinel技術(shù)可以在發(fā)生故障時(shí),實(shí)現(xiàn)主從切換。本發(fā)明中設(shè)置了 2臺(tái)Redis服務(wù)器,分別為Redis推送服務(wù)器和Redis主服務(wù)器。當(dāng)其中一臺(tái)Redis服務(wù)器宕機(jī),系統(tǒng)會(huì)自動(dòng)訂閱到另一臺(tái)Redis服務(wù)器上。雖然sentinel技術(shù)為現(xiàn)有技術(shù),但是本發(fā)明將其采用到閃拍活動(dòng)中屬于首次。采用sentinel技術(shù),確保在閃拍活動(dòng)中,當(dāng)一臺(tái)Redis服務(wù)器發(fā)生故障時(shí),另一臺(tái)Redis服務(wù)器能夠充當(dāng)Redis推送服務(wù)器,及時(shí)將閃拍數(shù)據(jù)主動(dòng)推送到推送服務(wù)器上。
[0037]作為優(yōu)選,中臺(tái)服務(wù)器調(diào)用Redis推送服務(wù)器時(shí),采用線性通信Pipeline (Redis指令批處理的機(jī)制)方式,實(shí)現(xiàn)在發(fā)布的時(shí)候,set指令和publish指令的合并,一次性傳輸?shù)絉edis推送服務(wù)器中,減少建立鏈接的次數(shù),提高傳輸效率。
[0038]在訂閱的時(shí)候,由于訂閱通道是串行的(即使用正則表達(dá)訂閱channel)。因此,訂閱的JBOSS采用了 3個(gè)通道,分別為當(dāng)前價(jià)格通道、拍賣輪轉(zhuǎn)通道和其他業(yè)務(wù)通道。這樣保證核心業(yè)務(wù)(指當(dāng)前價(jià)格和拍賣輪轉(zhuǎn))運(yùn)轉(zhuǎn)流暢。同時(shí)當(dāng)訂閱數(shù)據(jù)到達(dá)的時(shí)候,會(huì)將業(yè)務(wù)邏輯處理放入到位于推送服務(wù)器中的線程池當(dāng)中。即:ΝΙ0的標(biāo)準(zhǔn)模型。3個(gè)線程負(fù)責(zé)接收數(shù)據(jù),32個(gè)線程負(fù)責(zé)處理業(yè)務(wù)邏輯。前臺(tái)服務(wù)器、中臺(tái)服務(wù)器、后臺(tái)服務(wù)器、推送服務(wù)器和公正服務(wù)器都采用了 JBOSS應(yīng)用服務(wù)器。JCS本地緩存設(shè)置在JBOSS中。
[0039]推送服務(wù)器可采用獨(dú)立域名,以區(qū)分主系統(tǒng)的域名。這樣可以減少cookie的干擾,只適用⑶N (對(duì)應(yīng)英文:Content Delivery Network,對(duì)應(yīng)中文:即內(nèi)容分發(fā)網(wǎng)絡(luò))加速機(jī)制,不適用⑶N緩存。通過(guò)推送服務(wù)器的JSONP (對(duì)應(yīng)英文JSON with Padding)跨域請(qǐng)求獲取數(shù)據(jù)。JSON (對(duì)應(yīng)英文:JavaScript Object Notat1n,是一種輕量級(jí)的數(shù)據(jù)交換格式)報(bào)文力求精簡(jiǎn),在上億訪問(wèn)量的情況下,字段名字采用一個(gè)字母,無(wú)冗余無(wú)用的字段。同時(shí)推送服務(wù)器具備防止JOB疊加執(zhí)行的機(jī)制。如果一次輪詢超過(guò)了 I秒鐘,那么第二次的輪詢就會(huì)自動(dòng)放棄,直接到上一次輪詢結(jié)束。這樣可以很好的適配網(wǎng)絡(luò)環(huán)境。同時(shí)推送服務(wù)器配有全局計(jì)數(shù)器,通過(guò)取模的方式,決定是否請(qǐng)求報(bào)文,即:按需請(qǐng)求,有效減少服務(wù)器運(yùn)算。
[0040]如圖4所示,所述的閃拍數(shù)據(jù)處理系統(tǒng),還包括前臺(tái)服務(wù)器,用于接收用戶通過(guò)瀏覽器發(fā)送的閃拍數(shù)據(jù)請(qǐng)求并進(jìn)行合并,發(fā)送給中臺(tái)服務(wù)器。前臺(tái)服務(wù)器展示W(wǎng)EB頁(yè)面,給互聯(lián)網(wǎng)用戶使用,為中臺(tái)服務(wù)器調(diào)用。
[0041]前臺(tái)服務(wù)器將用戶請(qǐng)求合并,發(fā)送給中臺(tái)服務(wù)器,由中臺(tái)服務(wù)器將各用戶需求數(shù)據(jù)一次性發(fā)送給Redis推送服務(wù)器,由Redis推送服務(wù)器將合并后的請(qǐng)求中所需數(shù)據(jù),生成報(bào)文,發(fā)給推送服務(wù)器,由推送服務(wù)器將報(bào)文返回所有發(fā)送請(qǐng)求的瀏覽器頁(yè)面。這樣方便擴(kuò)展,減少網(wǎng)絡(luò)輸入輸出10。同時(shí),這種方法可以用在大拍賣平臺(tái)。
[0042]如圖4所示,所述的閃拍數(shù)據(jù)處理系統(tǒng),還包括MySQL服務(wù)器,用于將閃拍過(guò)程中產(chǎn)生的數(shù)據(jù)永久保存到硬盤。MySQL服務(wù)器確保了閃拍活動(dòng)中產(chǎn)生的各種數(shù)據(jù)不會(huì)丟失,在其他服務(wù)器發(fā)生故障或者重啟時(shí),仍能夠通過(guò)硬盤獲取數(shù)據(jù)。
[0043]如圖4所示,所述的閃拍數(shù)據(jù)處理系統(tǒng),還包括Redis主服務(wù)器,用于閃拍主系統(tǒng)的緩存;后臺(tái)服務(wù)器,用于運(yùn)營(yíng)人員對(duì)閃拍管理系統(tǒng)進(jìn)行維護(hù),供運(yùn)營(yíng)人員日常使用以及系統(tǒng)日志、異常處理;Terracotta (Terracotta由美國(guó)Terracotta公司開(kāi)發(fā)的著名開(kāi)源Java集群平臺(tái))服務(wù)器,用于閃拍活動(dòng)中的流程控制、JOB輪轉(zhuǎn),分布式線程池設(shè)置。例如,Terracotta服務(wù)器,用于分布式作業(yè)調(diào)度,用戶活動(dòng)駁回,活動(dòng)報(bào)名結(jié)束,拍品駁回,生成拍賣訂單,保證金逾期罰沒(méi)等業(yè)務(wù)。所述的閃拍數(shù)據(jù)處理系統(tǒng),還可以包括公正服務(wù)器,用于對(duì)MySQL服務(wù)器同步更新閃拍數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
[0044]中臺(tái)服務(wù)器對(duì)MySQL服務(wù)器進(jìn)行數(shù)據(jù)的增刪查改操作。后臺(tái)服務(wù)器對(duì)MySQL服務(wù)器進(jìn)行數(shù)據(jù)的增刪查改操作。中臺(tái)服務(wù)器對(duì)Terracotta服務(wù)器進(jìn)行分布式作業(yè)調(diào)度的執(zhí)行。后臺(tái)服務(wù)器對(duì)Terracotta服務(wù)器進(jìn)行分布式作業(yè)調(diào)度的增刪查改。
[0045]為提高閃拍數(shù)據(jù)傳輸效率,如圖5所示,所述的閃拍數(shù)據(jù)處理系統(tǒng)中,前臺(tái)服務(wù)器包括合并單元和第一發(fā)送單元。合并單元,用于接收用戶發(fā)送的閃拍數(shù)據(jù)請(qǐng)求,并將閃拍數(shù)據(jù)請(qǐng)求進(jìn)行合并,發(fā)送給第一發(fā)送單元。第一發(fā)送單元,用于將合并后的閃拍數(shù)據(jù)請(qǐng)求一次性發(fā)送給中臺(tái)服務(wù)器。中臺(tái)服務(wù)器包括搜索單元和第二發(fā)送單元。搜索單元,用于根據(jù)第一發(fā)送單元發(fā)送的閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中查找與閃拍數(shù)據(jù)請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù),并發(fā)送給第二發(fā)送單元。第二發(fā)送單元,用于將搜索單元搜索到的數(shù)據(jù),一次性發(fā)送給Redis推送服務(wù)器。Redis推送服務(wù)器包括生成單元和第三發(fā)送單元。生成單元,用于接收第二發(fā)送單元發(fā)送的數(shù)據(jù),并將數(shù)據(jù)生成報(bào)文,發(fā)送給第三發(fā)送單元。第三發(fā)送單元,用于將報(bào)文發(fā)送給推送服務(wù)器。
[0046]前臺(tái)服務(wù)器中設(shè)置了合并單元。合并單元將其接收到的用戶數(shù)據(jù)請(qǐng)求,進(jìn)行了合并處理,然后由第一發(fā)送單元將合并后的用戶數(shù)據(jù)請(qǐng)求統(tǒng)一發(fā)送給中臺(tái)服務(wù)器。中臺(tái)服務(wù)器中搜索單元接收合并后的數(shù)據(jù)請(qǐng)求后,從數(shù)據(jù)庫(kù)中查找與合并后的每個(gè)數(shù)據(jù)請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù),并將所有數(shù)據(jù)通過(guò)第二發(fā)送單元一次性發(fā)送給Redis推送服務(wù)器。Redis推送服務(wù)器中的生成單元將其接收的數(shù)據(jù)生成報(bào)文,通過(guò)第三發(fā)送單元發(fā)送給推送服務(wù)器。推送服務(wù)器將報(bào)文反饋給所有發(fā)送請(qǐng)求的瀏覽器,展示給用戶。這樣,在某一時(shí)段內(nèi),用戶發(fā)送的數(shù)據(jù)請(qǐng)求,經(jīng)過(guò)前臺(tái)服務(wù)器的合并單元合并后,由中臺(tái)服務(wù)器進(jìn)行數(shù)據(jù)處理,由Redis推送服務(wù)器生成報(bào)文,發(fā)送給推送服務(wù)器。在此過(guò)程中,數(shù)據(jù)處理的過(guò)程是同步的,發(fā)送也是同步的。這避免了單個(gè)請(qǐng)求,單獨(dú)進(jìn)行搜索,再單獨(dú)發(fā)送帶來(lái)的數(shù)據(jù)處理的低效率。
推送服務(wù)器通過(guò)瀏覽器將其獲取的用戶需求數(shù)據(jù)展示給用戶。推送服務(wù)器和瀏覽器之間采用短輪詢方式進(jìn)行數(shù)據(jù)交互。這樣,用戶就不需要每次到Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)。本發(fā)明通過(guò)將用戶需求數(shù)據(jù)由Redis推送服務(wù)器發(fā)送到推送服務(wù)器,由推送服務(wù)器和瀏覽器之間采用短輪詢方式進(jìn)行數(shù)據(jù)交互,向用戶提供需求數(shù)據(jù)。這避免了用戶直接通過(guò)瀏覽器向Redis推送服務(wù)器中讀取閃拍數(shù)據(jù)而對(duì)服務(wù)器帶來(lái)的壓力。
[0047]中臺(tái)服務(wù)器,還用于實(shí)時(shí)更新位于中臺(tái)服務(wù)器中的數(shù)據(jù)庫(kù)信息。閃拍活動(dòng)中的信息,諸如當(dāng)前價(jià)格、歷史價(jià)格、保證金凍結(jié)人數(shù)等等,在時(shí)刻發(fā)生變化。為保證閃拍活動(dòng)中,用戶能夠獲取實(shí)時(shí)信息,中臺(tái)服務(wù)器需要實(shí)時(shí)更新位于中臺(tái)服務(wù)器中的數(shù)據(jù)庫(kù)信息,將最新的信息傳遞給Redis推送服務(wù)器,再由Redis推送服務(wù)器主動(dòng)推動(dòng)給推送服務(wù)器。上述信息在推送服務(wù)器中,只有服務(wù)器時(shí)間,是JBOSS本地在訪問(wèn)時(shí)間點(diǎn)生成。使用NTP(NetWOrkTime Protocol,網(wǎng)絡(luò)時(shí)間協(xié)議)同步服務(wù)器時(shí)間。其他信息,均來(lái)自于Redis的發(fā)布/訂閱模式。
[0048]在上述系統(tǒng)中,數(shù)據(jù)請(qǐng)求為閃拍活動(dòng)中用戶需要了解的閃拍信息,包括當(dāng)前價(jià)格、服務(wù)器時(shí)間、歷史價(jià)格、保證金凍結(jié)人數(shù)、拍賣輪轉(zhuǎn)、中標(biāo)提醒、拍品屬性、中標(biāo)熱榜、人氣榜中的任意一種或組合。
[0049]現(xiàn)有技術(shù)通過(guò)投入硬件成本,增加服務(wù)器的處理能力。由于在閃拍活動(dòng)中,服務(wù)器僅僅在固定時(shí)間內(nèi)發(fā)生大量的數(shù)據(jù)訪問(wèn),而在平常,訪問(wèn)量小,服務(wù)器的壓力不大。這樣,通過(guò)硬件投入,緩解服務(wù)器的壓力,利用率低。本發(fā)明采用Redis發(fā)布/訂閱+JCS本地緩存,通過(guò)Redis服務(wù)器主動(dòng)推送更新數(shù)據(jù)至推送服務(wù)器,同時(shí),瀏覽器與服務(wù)器之間通過(guò)短輪詢的方式進(jìn)行交互。由Redis推送服務(wù)器的發(fā)布/訂閱功能統(tǒng)一將數(shù)據(jù)推送到推送服務(wù)器JBOSS的JCS中。因此,服務(wù)器系統(tǒng)的請(qǐng)求處理能力大大提高。同時(shí),采用本發(fā)明的方法在硬件投入上有限,但是很好的解決了閃拍活動(dòng)中,服務(wù)器面臨的巨大訪問(wèn)壓力。整個(gè)系統(tǒng)的利用率高。
[0050]本領(lǐng)域技術(shù)人員應(yīng)該知曉,實(shí)現(xiàn)上述實(shí)施例的方法或者系統(tǒng),可以通過(guò)計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)。該計(jì)算機(jī)程序指令裝載到可編程數(shù)據(jù)處理設(shè)備上,例如計(jì)算機(jī),從而在可編程數(shù)據(jù)處理設(shè)備上執(zhí)行相應(yīng)的指令,用于實(shí)現(xiàn)上述實(shí)施例的方法或者系統(tǒng)實(shí)現(xiàn)的功能。
[0051]本領(lǐng)域技術(shù)人員依據(jù)上述實(shí)施例,可以對(duì)本申請(qǐng)進(jìn)行非創(chuàng)造性的技術(shù)改進(jìn),而不脫離本發(fā)明的精神實(shí)質(zhì)。這些改進(jìn)仍應(yīng)視為在本申請(qǐng)權(quán)利要求的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種閃拍數(shù)據(jù)處理方法,其特征在于,該處理方法包括以下步驟: SlOl中臺(tái)服務(wù)器根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器; S102Redis推送服務(wù)器將用戶需求數(shù)據(jù)推送至推送服務(wù)器; S103推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送給用戶。2.按照權(quán)利要求1所述的閃拍數(shù)據(jù)處理方法,其特征在于,還包括 S1001將閃拍數(shù)據(jù)請(qǐng)求通過(guò)瀏覽器發(fā)送給前臺(tái)服務(wù)器; S1002前臺(tái)服務(wù)器將接收的閃拍數(shù)據(jù)請(qǐng)求進(jìn)行合并,發(fā)送給中臺(tái)服務(wù)器。3.按照權(quán)利要求1或2所述的閃拍數(shù)據(jù)處理方法,其特征在于,所述的步驟S103的過(guò)程為:推送服務(wù)器將用戶需求數(shù)據(jù)發(fā)送至瀏覽器,瀏覽器將其獲取的用戶需求數(shù)據(jù)展示給用戶。4.按照權(quán)利要求1所述的閃拍數(shù)據(jù)處理方法,其特征在于,閃拍數(shù)據(jù)請(qǐng)求包括服務(wù)器時(shí)間、當(dāng)前價(jià)格、歷史價(jià)格、保證金凍結(jié)人數(shù)、拍賣輪轉(zhuǎn)、中標(biāo)提醒、拍品屬性、中標(biāo)熱榜、人氣榜中的任意一種或組合。5.一種閃拍數(shù)據(jù)處理系統(tǒng),其特征在于,該系統(tǒng)包括中臺(tái)服務(wù)器、Redis推送服務(wù)器和推送服務(wù)器,其中, 中臺(tái)服務(wù)器,用于根據(jù)接收的用戶閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中調(diào)取用戶需求數(shù)據(jù),并發(fā)送給Redis推送服務(wù)器; Redis推送服務(wù)器,用于接收中臺(tái)服務(wù)器發(fā)送的用戶需求數(shù)據(jù),并將用戶需求數(shù)據(jù)推送至推送服務(wù)器; 推送服務(wù)器,用于接收Redis推送服務(wù)器推送的用戶需求數(shù)據(jù),并將用戶需求數(shù)據(jù)發(fā)送給用戶。6.按照權(quán)利要求5所述的閃拍數(shù)據(jù)處理系統(tǒng),其特征在于,還包括: 前臺(tái)服務(wù)器,用于接收用戶通過(guò)瀏覽器發(fā)送的閃拍數(shù)據(jù)請(qǐng)求并進(jìn)行合并,發(fā)送給中臺(tái)服務(wù)器。7.按照權(quán)利要求6所述的閃拍數(shù)據(jù)處理系統(tǒng),其特征在于,所述的前臺(tái)服務(wù)器包括合并單元和第一發(fā)送單元, 合并單元,用于接收用戶發(fā)送的閃拍數(shù)據(jù)請(qǐng)求,并將閃拍數(shù)據(jù)請(qǐng)求進(jìn)行合并,發(fā)送給第一發(fā)送單兀; 第一發(fā)送單元,用于將合并后的閃拍數(shù)據(jù)請(qǐng)求一次性發(fā)送給中臺(tái)服務(wù)器。8.按照權(quán)利要求7所述的閃拍數(shù)據(jù)處理系統(tǒng),其特征在于,所述的中臺(tái)服務(wù)器包括搜索單元和第二發(fā)送單元, 搜索單元,用于根據(jù)第一發(fā)送單元發(fā)送的閃拍數(shù)據(jù)請(qǐng)求,從數(shù)據(jù)庫(kù)中查找與閃拍數(shù)據(jù)請(qǐng)求相對(duì)應(yīng)的數(shù)據(jù),并發(fā)送給第二發(fā)送單元; 第二發(fā)送單元,用于將搜索單元搜索到的數(shù)據(jù),一次性發(fā)送給Redis推送服務(wù)器。9.按照權(quán)利要求8所述的閃拍數(shù)據(jù)處理方法,其特征在于,所述的Redis推送服務(wù)器包括生成單元和第三發(fā)送單元, 生成單元,用于接收第二發(fā)送單元發(fā)送的數(shù)據(jù),并將數(shù)據(jù)生成報(bào)文,發(fā)送給第三發(fā)送單元;第三發(fā)送單元,用于將報(bào)文發(fā)送給推送服務(wù)器。10.按照權(quán)利要求5至9中任何一項(xiàng)所述的閃拍數(shù)據(jù)處理系統(tǒng),其特征在于,還包括:Redis主服務(wù)器,用于閃拍主系統(tǒng)的緩存;后臺(tái)服務(wù)器,用于運(yùn)營(yíng)人員對(duì)閃拍管理系統(tǒng)進(jìn)行維護(hù);Terracotta服務(wù)器,用于閃拍活動(dòng)中的流程控制、JOB輪轉(zhuǎn),分布式線程池設(shè)置。
【文檔編號(hào)】G06F17/30GK105989065SQ201510067871
【公開(kāi)日】2016年10月5日
【申請(qǐng)日】2015年2月9日
【發(fā)明人】樸海林, 楊杰, 華靜
【申請(qǐng)人】蘇寧云商集團(tuán)股份有限公司