本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法及系統(tǒng)。
背景技術(shù):
隨著“互聯(lián)網(wǎng)+金融”的飛速發(fā)展,投資者也越來越多,互聯(lián)網(wǎng)投融資平臺(tái)的在線用戶訪問量也越來越多,在高并發(fā)場(chǎng)景時(shí),大量的用戶訪問請(qǐng)求都會(huì)落到互聯(lián)網(wǎng)投融資平臺(tái)的服務(wù)層或者數(shù)據(jù)庫上,這樣會(huì)給互聯(lián)網(wǎng)投融資平臺(tái)的服務(wù)層和數(shù)據(jù)庫造成巨大的壓力,從而導(dǎo)致用戶請(qǐng)求的平均響應(yīng)時(shí)間加長(zhǎng),間接延長(zhǎng)了用戶等待時(shí)間,影響了用戶體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法及系統(tǒng),旨在解決上述在高并發(fā)場(chǎng)景時(shí),大量的用戶訪問請(qǐng)求都會(huì)落到互聯(lián)網(wǎng)投融資平臺(tái)的服務(wù)層或者數(shù)據(jù)庫上,這樣會(huì)給互聯(lián)網(wǎng)投融資平臺(tái)的服務(wù)層和數(shù)據(jù)庫造成巨大的壓力,從而導(dǎo)致用戶請(qǐng)求的平均響應(yīng)時(shí)間加長(zhǎng),間接延長(zhǎng)了用戶等待時(shí)間,影響了用戶體驗(yàn)的問題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法,包括:
接收客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的功能編號(hào)將所述業(yè)務(wù)請(qǐng)求分發(fā)到對(duì)應(yīng)的數(shù)據(jù)接口;
判斷所述數(shù)據(jù)接口是否為緩存數(shù)據(jù)的數(shù)據(jù)接口;
若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期;
若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則讀取數(shù)據(jù)接口中的緩存數(shù)據(jù),并將所述緩存數(shù)據(jù)返回至所述客戶端。
在上述技術(shù)方案的基礎(chǔ)上,所述接收客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的功能編號(hào)將所述業(yè)務(wù)請(qǐng)求分發(fā)到對(duì)應(yīng)的數(shù)據(jù)接口之前還包括:
統(tǒng)計(jì)各個(gè)數(shù)據(jù)接口的訪問頻率,并判斷所述數(shù)據(jù)接口的訪問頻率是否符合預(yù)設(shè)條件;
若所述數(shù)據(jù)接口的訪問頻率符合預(yù)設(shè)條件,則將所述數(shù)據(jù)接口設(shè)置為緩存數(shù)據(jù)的數(shù)據(jù)接口,在所述數(shù)據(jù)接口中緩存數(shù)據(jù)庫查詢結(jié)果;
將所述數(shù)據(jù)接口添加至數(shù)據(jù)更新任務(wù)列表中,并為所述數(shù)據(jù)接口設(shè)置相應(yīng)的數(shù)據(jù)更新頻率,保證所述數(shù)據(jù)接口中的緩存數(shù)據(jù)在需要進(jìn)行實(shí)時(shí)更新的時(shí)間段內(nèi)定時(shí)更新。
在上述技術(shù)方案的基礎(chǔ)上,所述若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則讀取數(shù)據(jù)接口中的緩存數(shù)據(jù),并將所述緩存數(shù)據(jù)返回至所述客戶端之后還包括:
更新所述數(shù)據(jù)接口的訪問時(shí)間;
實(shí)時(shí)統(tǒng)計(jì)更新后的所述數(shù)據(jù)接口的訪問時(shí)間與業(yè)務(wù)系統(tǒng)當(dāng)前時(shí)間之間的第二差值,判斷所述第二差值是否大于預(yù)設(shè)時(shí)間值,若大于預(yù)設(shè)時(shí)間值,則將所述數(shù)據(jù)接口從所述數(shù)據(jù)更新任務(wù)列表中刪除。
在上述技術(shù)方案的基礎(chǔ)上,若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期之后還包括:
若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)已過期,則對(duì)所述業(yè)務(wù)請(qǐng)求進(jìn)行token校驗(yàn);
若校驗(yàn)通過,則通過接口服務(wù)訪問業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫,以根據(jù)所述業(yè)務(wù)請(qǐng)求更新所述數(shù)據(jù)接口的緩存數(shù)據(jù),并將更新后的緩存數(shù)據(jù)返回至所述客戶端。
在上述技術(shù)方案的基礎(chǔ)上,所述若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期具體包括:
若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則獲取所述數(shù)據(jù)接口此次接收到業(yè)務(wù)請(qǐng)求的第一時(shí)間和所述數(shù)據(jù)接口前次接收到業(yè)務(wù)請(qǐng)求的第二時(shí)間,根據(jù)所述第一時(shí)間和第二時(shí)間之間的第一差值判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期。
本發(fā)明實(shí)施例的另一目的在于提供一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng),包括:
接口路由模塊,用于接收客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的功能編號(hào)將所述業(yè)務(wù)請(qǐng)求分發(fā)到對(duì)應(yīng)的數(shù)據(jù)接口;
緩存數(shù)據(jù)接口判斷模塊,用于判斷所述數(shù)據(jù)接口是否為緩存數(shù)據(jù)的數(shù)據(jù)接口;
緩存數(shù)據(jù)過期判斷模塊,用于若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期;
緩存數(shù)據(jù)獲取模塊,用于若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則讀取數(shù)據(jù)接口中的緩存數(shù)據(jù),并將所述緩存數(shù)據(jù)返回至所述客戶端。
在上述技術(shù)方案的基礎(chǔ)上,還包括:
接口訪問頻率統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)各個(gè)數(shù)據(jù)接口的訪問頻率,并判斷所述數(shù)據(jù)接口的訪問頻率是否符合預(yù)設(shè)條件;
數(shù)據(jù)接口緩存模塊,用于若所述數(shù)據(jù)接口的訪問頻率符合預(yù)設(shè)條件,則將所述數(shù)據(jù)接口設(shè)置為緩存數(shù)據(jù)的數(shù)據(jù)接口,在所述數(shù)據(jù)接口中緩存數(shù)據(jù)庫查詢結(jié)果;
定時(shí)更新模塊,用于將所述數(shù)據(jù)接口添加至數(shù)據(jù)更新任務(wù)列表中,并為所述數(shù)據(jù)接口設(shè)置相應(yīng)的數(shù)據(jù)更新頻率,保證所述數(shù)據(jù)接口中的緩存數(shù)據(jù)在需要進(jìn)行實(shí)時(shí)更新的時(shí)間段內(nèi)定時(shí)更新。
在上述技術(shù)方案的基礎(chǔ)上,還包括:
訪問時(shí)間更新模塊,用于更新所述數(shù)據(jù)接口的訪問時(shí)間;
定時(shí)更新任務(wù)管理模塊,用于實(shí)時(shí)統(tǒng)計(jì)更新后的所述數(shù)據(jù)接口的訪問時(shí)間與業(yè)務(wù)系統(tǒng)當(dāng)前時(shí)間之間的第二差值,判斷所述第二差值是否大于預(yù)設(shè)時(shí)間值,若大于預(yù)設(shè)時(shí)間值,則將所述數(shù)據(jù)接口從所述數(shù)據(jù)更新任務(wù)列表中刪除。
在上述技術(shù)方案的基礎(chǔ)上,還包括:
校驗(yàn)?zāi)K,用于若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)已過期,則對(duì)所述業(yè)務(wù)請(qǐng)求進(jìn)行token校驗(yàn);
接口服務(wù)模塊,用于若校驗(yàn)通過,則通過接口服務(wù)訪問業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫,以根據(jù)所述業(yè)務(wù)請(qǐng)求更新所述數(shù)據(jù)接口的緩存數(shù)據(jù),并將更新后的緩存數(shù)據(jù)返回至所述客戶端。
在上述技術(shù)方案的基礎(chǔ)上,所述緩存數(shù)據(jù)過期判斷模塊具體用于:
若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則獲取所述數(shù)據(jù)接口此次接收到業(yè)務(wù)請(qǐng)求的第一時(shí)間和所述數(shù)據(jù)接口前次接收到業(yè)務(wù)請(qǐng)求的第二時(shí)間,根據(jù)所述第一時(shí)間和第二時(shí)間之間的第一差值判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期。
實(shí)施本發(fā)明實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法及系統(tǒng)具有以下有益效果:
本發(fā)明實(shí)施例由于首先接收客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的功能編號(hào)將所述業(yè)務(wù)請(qǐng)求分發(fā)到對(duì)應(yīng)的數(shù)據(jù)接口;然后判斷所述數(shù)據(jù)接口是否為緩存數(shù)據(jù)的數(shù)據(jù)接口;若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期;若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則讀取數(shù)據(jù)接口中的緩存數(shù)據(jù),并將所述緩存數(shù)據(jù)返回至所述客戶端,從而可以實(shí)現(xiàn)快速高效的訪問通用數(shù)據(jù)接口,緩解高并發(fā)場(chǎng)景下互聯(lián)網(wǎng)投融資平臺(tái)服務(wù)層和數(shù)據(jù)庫的壓力,縮短了業(yè)務(wù)請(qǐng)求的響應(yīng)時(shí)間,提升了用戶體驗(yàn)。
附圖說明
圖1是本發(fā)明實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法的具體實(shí)現(xiàn)流程圖;
圖2是本發(fā)明實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng)的示意性框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是本發(fā)明實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法的具體實(shí)現(xiàn)流程圖。參見圖1所示,本實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法可以包括以下步驟:
在S101中,接收客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的功能編號(hào)將所述業(yè)務(wù)請(qǐng)求分發(fā)到對(duì)應(yīng)的數(shù)據(jù)接口。
在本實(shí)施例中,在步驟S101之前還可以包括:
統(tǒng)計(jì)各個(gè)數(shù)據(jù)接口的訪問頻率,并判斷所述數(shù)據(jù)接口的訪問頻率是否符合預(yù)設(shè)條件;
若所述數(shù)據(jù)接口的訪問頻率符合預(yù)設(shè)條件,則將所述數(shù)據(jù)接口設(shè)置為緩存數(shù)據(jù)的數(shù)據(jù)接口,在所述數(shù)據(jù)接口中緩存數(shù)據(jù)庫查詢結(jié)果;
將所述數(shù)據(jù)接口添加至數(shù)據(jù)更新任務(wù)列表中,并為所述數(shù)據(jù)接口設(shè)置相應(yīng)的數(shù)據(jù)更新頻率,保證所述數(shù)據(jù)接口中的緩存數(shù)據(jù)在需要進(jìn)行實(shí)時(shí)更新的時(shí)間段內(nèi)定時(shí)更新。
在具體應(yīng)用中,若所述數(shù)據(jù)接口的訪問頻率大于預(yù)設(shè)訪問頻率,則將該數(shù)據(jù)接口設(shè)置為緩存數(shù)據(jù)接口,在該數(shù)據(jù)接口的存儲(chǔ)區(qū)域中劃分一緩存區(qū)用于緩存根據(jù)客戶端發(fā)送的訪問請(qǐng)求從數(shù)據(jù)庫中獲取的業(yè)務(wù)數(shù)據(jù),以便用戶下次向該數(shù)據(jù)接口發(fā)送業(yè)務(wù)請(qǐng)求時(shí),可直接從該數(shù)據(jù)接口的緩存區(qū)中讀取之前緩存的業(yè)務(wù)數(shù)據(jù),而不用再次訪問數(shù)據(jù)庫,從而可減少數(shù)據(jù)庫的訪問壓力。
在具體應(yīng)用中,由于數(shù)據(jù)庫中存儲(chǔ)的與數(shù)據(jù)接口相對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)可能是隨著時(shí)間的變化而變化的,因此,為了保證數(shù)據(jù)接口中緩存數(shù)據(jù)的有效性,有必要對(duì)該數(shù)據(jù)接口中的緩存數(shù)據(jù)進(jìn)行實(shí)時(shí)更新,為此,本實(shí)施例中采用預(yù)先建立數(shù)據(jù)更新任務(wù)列表,將需要進(jìn)行實(shí)時(shí)更新的數(shù)據(jù)接口添加至所述數(shù)據(jù)更新任務(wù)列表中,并在所述數(shù)據(jù)更新任務(wù)列表中設(shè)置各數(shù)據(jù)接口所對(duì)應(yīng)的數(shù)據(jù)更新時(shí)間段以及數(shù)據(jù)更新頻率,后續(xù)當(dāng)業(yè)務(wù)系統(tǒng)的系統(tǒng)時(shí)間處于所述數(shù)據(jù)接口所對(duì)應(yīng)的數(shù)據(jù)更新時(shí)間段時(shí),自動(dòng)根據(jù)該數(shù)據(jù)接口所對(duì)應(yīng)的數(shù)據(jù)更新頻率更新該數(shù)據(jù)接口中的緩存數(shù)據(jù)。
在S102中,判斷所述數(shù)據(jù)接口是否為緩存數(shù)據(jù)的數(shù)據(jù)接口,若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則進(jìn)入步驟S103。
在本實(shí)施例中,具體可通過查詢所述數(shù)據(jù)更新任務(wù)列表來判斷所述數(shù)據(jù)接口是否為緩存數(shù)據(jù)的數(shù)據(jù)接口,若所述數(shù)據(jù)更新任務(wù)列表中包含所述數(shù)據(jù)接口,則說明該數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口;反之,若所述數(shù)據(jù)更新任務(wù)列表中不包含所述數(shù)據(jù)接口,則說明該數(shù)據(jù)接口不是緩存數(shù)據(jù)的數(shù)據(jù)接口。
在S103中,判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期,若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則進(jìn)入步驟S104;若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)已過期,則進(jìn)入步驟S105。
在本實(shí)施例中,所述判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期具體包括:
獲取所述數(shù)據(jù)接口此次接收到業(yè)務(wù)請(qǐng)求的第一時(shí)間和所述數(shù)據(jù)接口前次接收到業(yè)務(wù)請(qǐng)求的第二時(shí)間,根據(jù)所述第一時(shí)間和第二時(shí)間之間的第一差值判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期。
在本實(shí)施例中,若所述第一時(shí)間和第二時(shí)間之間的差值大于預(yù)設(shè)的時(shí)間閾值,則說明所述數(shù)據(jù)接口中的緩存數(shù)據(jù)過期。優(yōu)選的,所述預(yù)設(shè)的時(shí)間閾值為5min。
在S104中,讀取數(shù)據(jù)接口中的緩存數(shù)據(jù),并將所述緩存數(shù)據(jù)返回至所述客戶端。
在本實(shí)施例中,若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則說明該數(shù)據(jù)接口緩存的業(yè)務(wù)數(shù)據(jù)為有效數(shù)據(jù),此時(shí)可直接將該數(shù)據(jù)接口緩存的業(yè)務(wù)數(shù)據(jù)返回至客戶端,不必再訪問數(shù)據(jù)庫從數(shù)據(jù)庫中讀取業(yè)務(wù)數(shù)據(jù),因此減輕了數(shù)據(jù)庫的訪問壓力,并且縮短了業(yè)務(wù)請(qǐng)求的響應(yīng)時(shí)間。
進(jìn)一步的,在本實(shí)施例中,步驟S104之后還可以還包括:
更新所述數(shù)據(jù)接口的訪問時(shí)間;
實(shí)時(shí)統(tǒng)計(jì)更新后的所述數(shù)據(jù)接口的訪問時(shí)間與業(yè)務(wù)系統(tǒng)當(dāng)前時(shí)間之間的第二差值,判斷所述第二差值是否大于預(yù)設(shè)時(shí)間值,若大于預(yù)設(shè)時(shí)間值,則將所述數(shù)據(jù)接口從所述數(shù)據(jù)更新任務(wù)列表中刪除。
在具體應(yīng)用中,若之前被設(shè)置為緩存數(shù)據(jù)的數(shù)據(jù)接口在較長(zhǎng)時(shí)間內(nèi)未接收到客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,則說明其訪問頻率已經(jīng)不再符合預(yù)設(shè)要求,此時(shí)需要停止對(duì)其進(jìn)行數(shù)據(jù)更新,因此,將其從數(shù)據(jù)更新任務(wù)列表中刪除,這樣可以進(jìn)一步提高業(yè)務(wù)系統(tǒng)的數(shù)據(jù)處理速度。
在S105中,對(duì)所述業(yè)務(wù)請(qǐng)求進(jìn)行token校驗(yàn),若校驗(yàn)通過,則通過接口服務(wù)訪問業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫,以根據(jù)所述業(yè)務(wù)請(qǐng)求更新所述數(shù)據(jù)接口的緩存數(shù)據(jù),并將更新后的緩存數(shù)據(jù)返回至所述客戶端。
在本實(shí)施例中,若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)已過期,則需要通過訪問數(shù)據(jù)庫來獲取與所述業(yè)務(wù)請(qǐng)求相匹配的業(yè)務(wù)數(shù)據(jù),此時(shí)需要對(duì)發(fā)送業(yè)務(wù)請(qǐng)求的客戶端進(jìn)行身份驗(yàn)證,確定所述客戶端是否具有相應(yīng)的訪問權(quán)限。其中,對(duì)所述業(yè)務(wù)請(qǐng)求進(jìn)行token校驗(yàn)具體包括:
通過Koauth2中間件判斷所述業(yè)務(wù)請(qǐng)求所訪問的數(shù)據(jù)接口是公有接口還是私有接口;
若是公有接口,則通過基于oauth2協(xié)議的第三方平臺(tái)對(duì)所述業(yè)務(wù)請(qǐng)求進(jìn)行token校驗(yàn);若是私有接口,則直接根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的訪問者傳入的用戶級(jí)進(jìn)行token校驗(yàn)。
本實(shí)施例中,由于首先將訪問頻率較高的數(shù)據(jù)接口設(shè)置為緩存數(shù)據(jù)的數(shù)據(jù)接口,并在這些數(shù)據(jù)接口中緩存數(shù)據(jù)庫訪問結(jié)果,后續(xù)當(dāng)這些數(shù)據(jù)接口再次接收到客戶端發(fā)送的業(yè)務(wù)請(qǐng)求后直接從數(shù)據(jù)接口中讀取相應(yīng)的業(yè)務(wù)數(shù)據(jù)返回給客戶,僅在數(shù)據(jù)接口中緩存的數(shù)據(jù)過期時(shí),才通過訪問數(shù)據(jù)庫獲取與所述業(yè)務(wù)請(qǐng)求相對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)返回至客戶端,因此能夠在一定程度上減少數(shù)據(jù)庫的訪問壓力,縮短業(yè)務(wù)請(qǐng)求的響應(yīng)時(shí)間。
以上可以看出,本實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理方法由于首先接收客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的功能編號(hào)將所述業(yè)務(wù)請(qǐng)求分發(fā)到對(duì)應(yīng)的數(shù)據(jù)接口;然后判斷所述數(shù)據(jù)接口是否為緩存數(shù)據(jù)的數(shù)據(jù)接口;若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期;若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則讀取數(shù)據(jù)接口中的緩存數(shù)據(jù),并將所述緩存數(shù)據(jù)返回至所述客戶端,從而可以實(shí)現(xiàn)快速高效的訪問通用數(shù)據(jù)接口,緩解高并發(fā)場(chǎng)景下互聯(lián)網(wǎng)投融資平臺(tái)服務(wù)層和數(shù)據(jù)庫的壓力,縮短了業(yè)務(wù)請(qǐng)求的響應(yīng)時(shí)間,提升了用戶體驗(yàn)。
圖2是本發(fā)明實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng)的示意性框圖,該系統(tǒng)用于運(yùn)行圖1所示實(shí)施例提供的方法。為了便于說明僅僅示出了與本實(shí)施例相關(guān)的部分。
參見圖2所示,本實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng),包括:
接口路由模塊1,用于接收客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并根據(jù)所述業(yè)務(wù)請(qǐng)求的信息頭中攜帶的功能編號(hào)將所述業(yè)務(wù)請(qǐng)求分發(fā)到對(duì)應(yīng)的數(shù)據(jù)接口;
緩存數(shù)據(jù)接口判斷模塊2,用于判斷所述數(shù)據(jù)接口是否為緩存數(shù)據(jù)的數(shù)據(jù)接口;
緩存數(shù)據(jù)過期判斷模塊3,用于若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期;
緩存數(shù)據(jù)獲取模塊4,用于若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)未過期,則讀取數(shù)據(jù)接口中的緩存數(shù)據(jù),并將所述緩存數(shù)據(jù)返回至所述客戶端。
可選的,所述基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng)還包括:
接口訪問頻率統(tǒng)計(jì)模塊5,用于統(tǒng)計(jì)各個(gè)數(shù)據(jù)接口的訪問頻率,并判斷所述數(shù)據(jù)接口的訪問頻率是否符合預(yù)設(shè)條件;
數(shù)據(jù)接口緩存模塊6,用于若所述數(shù)據(jù)接口的訪問頻率符合預(yù)設(shè)條件,則將所述數(shù)據(jù)接口設(shè)置為緩存數(shù)據(jù)的數(shù)據(jù)接口,在所述數(shù)據(jù)接口中緩存數(shù)據(jù)庫查詢結(jié)果;
定時(shí)更新模塊7,用于將所述數(shù)據(jù)接口添加至數(shù)據(jù)更新任務(wù)列表中,并為所述數(shù)據(jù)接口設(shè)置相應(yīng)的數(shù)據(jù)更新頻率,保證所述數(shù)據(jù)接口中的緩存數(shù)據(jù)在需要進(jìn)行實(shí)時(shí)更新的時(shí)間段內(nèi)定時(shí)更新。
可選的,所述基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng)還包括:
訪問時(shí)間更新模塊8,用于更新所述數(shù)據(jù)接口的訪問時(shí)間;
定時(shí)更新任務(wù)管理模塊9,用于實(shí)時(shí)統(tǒng)計(jì)更新后的所述數(shù)據(jù)接口的訪問時(shí)間與業(yè)務(wù)系統(tǒng)當(dāng)前時(shí)間之間的第二差值,判斷所述第二差值是否大于預(yù)設(shè)時(shí)間值,若大于預(yù)設(shè)時(shí)間值,則將所述數(shù)據(jù)接口從所述數(shù)據(jù)更新任務(wù)列表中刪除。
可選的,所述基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng)還包括:
校驗(yàn)?zāi)K10,用于若所述數(shù)據(jù)接口中的緩存數(shù)據(jù)已過期,則對(duì)所述業(yè)務(wù)請(qǐng)求進(jìn)行token校驗(yàn);
接口服務(wù)模塊11,用于若校驗(yàn)通過,則通過接口服務(wù)訪問業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫,以根據(jù)所述業(yè)務(wù)請(qǐng)求更新所述數(shù)據(jù)接口的緩存數(shù)據(jù),并將更新后的緩存數(shù)據(jù)返回至所述客戶端。
可選的,所述緩存數(shù)據(jù)過期判斷模塊3具體用于:
若所述數(shù)據(jù)接口為緩存數(shù)據(jù)的數(shù)據(jù)接口,則獲取所述數(shù)據(jù)接口此次接收到業(yè)務(wù)請(qǐng)求的第一時(shí)間和所述數(shù)據(jù)接口前次接收到業(yè)務(wù)請(qǐng)求的第二時(shí)間,根據(jù)所述第一時(shí)間和第二時(shí)間之間的第一差值判斷所述數(shù)據(jù)接口中的緩存數(shù)據(jù)是否過期。
需要說明的是,本發(fā)明實(shí)施例提供的上述系統(tǒng)中的各個(gè)模塊,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,其帶來的技術(shù)效果與本發(fā)明方法實(shí)施例相同,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
因此,可以看出本實(shí)施例提供的一種基于數(shù)據(jù)緩存的業(yè)務(wù)請(qǐng)求處理系統(tǒng)同樣可以實(shí)現(xiàn)快速高效的訪問通用數(shù)據(jù)接口,緩解高并發(fā)場(chǎng)景下互聯(lián)網(wǎng)投融資平臺(tái)服務(wù)層和數(shù)據(jù)庫的壓力,縮短了業(yè)務(wù)請(qǐng)求的響應(yīng)時(shí)間,提升了用戶體驗(yàn)。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。