一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng),包括服務(wù)端,客戶端,在所述服務(wù)端和客戶端之間部署多組服務(wù)器作為擴(kuò)展緩存的擴(kuò)展緩存服務(wù)器,每組服務(wù)器由主服務(wù)器和多臺(tái)備用服務(wù)器構(gòu)成;通過在已有的系統(tǒng)中增加緩存控制模塊來確定所述客戶端緩存和/或擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存的讀寫使用。本發(fā)明將分布式緩存引入企業(yè)應(yīng)用架構(gòu),通過軟件架構(gòu)來提升原有系統(tǒng)的性能及穩(wěn)定性。
【專利說明】一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng)。
【背景技術(shù)】
[0002]近年來,隨著各企業(yè)業(yè)務(wù)的飛速發(fā)展,各企業(yè)所使用的系統(tǒng)和子系統(tǒng)之間承載、處理、交互的數(shù)據(jù)量也在同步快速增長。盡管各企業(yè)使用的系統(tǒng)采用一流的企業(yè)級(jí)架構(gòu)開發(fā),擁有眾多優(yōu)點(diǎn),但是業(yè)務(wù)量的超快速增長給企業(yè)系統(tǒng)帶來大數(shù)據(jù)、高并發(fā)的全新挑戰(zhàn),對(duì)整個(gè)核心系統(tǒng)的性能及穩(wěn)定性造成較大壓力。目前雖然可以通過增加硬件資源的方法來對(duì)抗這種壓力,但是無限制的增加硬件資源是不現(xiàn)實(shí)的,必須考慮通過軟件架構(gòu)的改造來應(yīng)對(duì)。
【發(fā)明內(nèi)容】
[0003]針對(duì)上述部分問題,本發(fā)明提供了一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng),該發(fā)明除了能解決承保系統(tǒng)當(dāng)前的負(fù)載大、響應(yīng)慢的問題,還能進(jìn)一步推廣其它因業(yè)務(wù)數(shù)據(jù)快速增長而帶來系統(tǒng)負(fù)荷過大需要將業(yè)務(wù)數(shù)據(jù)進(jìn)行分布式緩存的企業(yè)系統(tǒng)中。
[0004]一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng),包括服務(wù)端,客戶端,其特征在于:在所述服務(wù)端和客戶端之間部署多組服務(wù)器作為擴(kuò)展緩存的擴(kuò)展緩存服務(wù)器,每組服務(wù)器由主服務(wù)器和多臺(tái)備用服務(wù)器構(gòu)成;通過在已有的系統(tǒng)中增加緩存控制模塊來確定所述客戶端緩存和/或擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存的讀寫使用。
[0005]優(yōu)選的:所述緩存控制模塊中至少有一個(gè)控制參數(shù),所述緩存控制模塊實(shí)現(xiàn)如下緩存規(guī)則:
[0006](I)若控制參數(shù)第一位的值為V0,表示關(guān),則只在所述客戶端緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ);
[0007](2)若控制參數(shù)第一位的值為VI,表示開,則同時(shí)在所述客戶端緩存和擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存進(jìn)行緩存數(shù)據(jù)存儲(chǔ);
[0008](3)若控制參數(shù)第一位的值為V2,表示開,則只在所述擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存進(jìn)行緩存數(shù)據(jù)存儲(chǔ);
[0009](4)若控制參數(shù)第二位的值為V3,表示關(guān),則在所述客戶端緩存上讀取緩存數(shù)據(jù);
[0010](5)若控制參數(shù)第二位的值為V4,表示開,則在所述擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存讀取數(shù)據(jù);
[0011]其中,V0、V1、V2、V3、V4為任意數(shù)據(jù)類型。
[0012]優(yōu)選的:所述要進(jìn)行緩存的數(shù)據(jù)以二維結(jié)構(gòu)存儲(chǔ)在客戶端緩存和擴(kuò)展緩存上,分為數(shù)據(jù)接口的信息緩存維度和數(shù)據(jù)接口的名稱緩存維度,所述數(shù)據(jù)接口的信息緩存維度的關(guān)鍵字為數(shù)據(jù)接口的入?yún)ⅲ鰯?shù)據(jù)接口的信息緩存維度的值為所述數(shù)據(jù)接口的返回信息;所述數(shù)據(jù)接口的名稱緩存維度的關(guān)鍵字為所述數(shù)據(jù)接口,所述數(shù)據(jù)接口的名稱緩存維度的值為所述數(shù)據(jù)接口的入?yún)ⅰ?br>
[0013]優(yōu)選的:
[0014]所述數(shù)據(jù)接口的信息緩存維度的關(guān)鍵字的生成規(guī)則為:數(shù)位機(jī)構(gòu)代碼+系統(tǒng)代碼+所述數(shù)據(jù)接口的方法名稱+所述數(shù)據(jù)接口的所有入?yún)⒚Q+相同數(shù)據(jù)接口的方法名稱的編號(hào);
[0015]所述數(shù)據(jù)接口名稱緩存維度關(guān)鍵字的生成規(guī)則,數(shù)位機(jī)構(gòu)代碼+系統(tǒng)代碼+所述數(shù)據(jù)接口方法名稱+相同所述數(shù)據(jù)接口方法名稱的編號(hào);
[0016]所述機(jī)構(gòu)代碼為所述系統(tǒng)使用者的編碼;
[0017]所述系統(tǒng)代碼為所述系統(tǒng)的子系統(tǒng)的順序編碼;
[0018]所述相同數(shù)據(jù)接口方法名稱的編號(hào)的位數(shù)大于等于所述數(shù)據(jù)接口方法名稱相同的數(shù)目值的位數(shù),所述編號(hào)的值為以自然數(shù)序列增長的整數(shù),如果所述編號(hào)的位數(shù)比所述整數(shù)的位數(shù)多,則在所述整數(shù)的最高位前面補(bǔ)零;如果不存在所述數(shù)據(jù)接口的方法名稱相同的情況,則所述相同數(shù)據(jù)接口的方法名稱的編號(hào)為零,零的個(gè)數(shù)等于所述編號(hào)的位數(shù)。
[0019]優(yōu)選的:所述客戶端在請(qǐng)求數(shù)據(jù)時(shí)首先獲取所請(qǐng)求數(shù)據(jù)的數(shù)據(jù)接口,并通過所述數(shù)據(jù)接口的緩存標(biāo)記初步判斷所請(qǐng)求數(shù)據(jù)使用的緩存是客戶端緩存還是擴(kuò)展緩存,然后按照下列規(guī)則進(jìn)行讀寫操作:
[0020](I)如果初步判斷所請(qǐng)求數(shù)據(jù)只在客戶端緩存存儲(chǔ),則首先在所述客戶端緩存查詢數(shù)據(jù),若沒有或者數(shù)據(jù)被置為無效,則所述客戶端向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求;
[0021]所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);
[0022]所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存中;
[0023](2)如果初步判斷所請(qǐng)求數(shù)據(jù)為客戶端緩存和擴(kuò)展緩存,則首先在所述客戶端緩存查詢數(shù)據(jù),若沒有或者數(shù)據(jù)被置為無效則向所述擴(kuò)展緩存發(fā)送數(shù)據(jù)請(qǐng)求;
[0024]若所述擴(kuò)展緩存有所請(qǐng)求的數(shù)據(jù),則向所述客戶端返回所請(qǐng)求的數(shù)據(jù),所述客戶端接收所請(qǐng)求的數(shù)據(jù)并在所述客戶端緩存存儲(chǔ);
[0025]若所述擴(kuò)展緩存沒有所請(qǐng)求的數(shù)據(jù),則向所述客戶端發(fā)送沒有所請(qǐng)求的數(shù)據(jù)的響應(yīng),所述客戶端在接收所述服務(wù)端發(fā)送的沒有所請(qǐng)求的數(shù)據(jù)的響應(yīng)后,向服務(wù)端發(fā)送所述數(shù)據(jù)請(qǐng)求;所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存和所述擴(kuò)展緩存中;
[0026](3)如果初步判斷所請(qǐng)求的數(shù)據(jù)為擴(kuò)展緩存,則直接向所述擴(kuò)展緩存所在的擴(kuò)展緩存服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求;
[0027]若所述擴(kuò)展緩存服務(wù)器上有所請(qǐng)求的數(shù)據(jù),則向所述客戶端返回所請(qǐng)求的數(shù)據(jù);
[0028]若所述擴(kuò)展緩存服務(wù)器上沒有所請(qǐng)求的數(shù)據(jù),則向所述客戶端發(fā)送沒有所請(qǐng)求的數(shù)據(jù)響應(yīng),所述客戶端在接收沒有所請(qǐng)求的數(shù)據(jù)響應(yīng)后,向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求;所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將數(shù)據(jù)存儲(chǔ)在所述擴(kuò)展緩存中;
[0029]其中,當(dāng)所述客戶端在向所述擴(kuò)展緩存服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求時(shí),如果所述客戶端與所述擴(kuò)展緩存服務(wù)器通信故障時(shí),所述客戶端將直接向所述服務(wù)端發(fā)出所述數(shù)據(jù)請(qǐng)求,所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù),所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);
[0030]所述所請(qǐng)求的數(shù)據(jù)如果需要存儲(chǔ)在所述客戶端緩存,則將所述所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存上;
[0031]所述所請(qǐng)求的數(shù)據(jù)如果需要存儲(chǔ)在指定的擴(kuò)展緩存服務(wù)器上:若所述通信故障尚未恢復(fù),則所述客戶端放棄存儲(chǔ)操作;若所述通信故障恢復(fù),則所述客戶端執(zhí)行將所述所請(qǐng)求的數(shù)據(jù)存儲(chǔ)到指定的擴(kuò)展緩存服務(wù)器上。
[0032]優(yōu)選的:
[0033]在所述客戶端向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求之前,或者在所述客戶端在向所述擴(kuò)展緩存服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求之前:所述客戶端先根據(jù)所請(qǐng)求的數(shù)據(jù)構(gòu)建所述所請(qǐng)求的數(shù)據(jù)的關(guān)鍵字值。
[0034]優(yōu)選的:設(shè)置一個(gè)緩存預(yù)熱設(shè)備,所述緩存預(yù)熱設(shè)備包括數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊和系統(tǒng)定期維護(hù)通知模塊,所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊按照數(shù)據(jù)接口的使用頻率進(jìn)行統(tǒng)計(jì)和排序,并在系統(tǒng)啟動(dòng)時(shí)將所述數(shù)據(jù)接口的使用頻率統(tǒng)計(jì)和排序通知給所述系統(tǒng)的客戶端和服務(wù)端;所述系統(tǒng)定期維護(hù)提醒模塊用于設(shè)置定期維護(hù)的時(shí)間長度,并在一個(gè)時(shí)間長度結(jié)束時(shí),將所述時(shí)間長度結(jié)束前的數(shù)據(jù)接口的使用頻率統(tǒng)計(jì)和排序信息發(fā)通知給系統(tǒng)維護(hù)人員。
[0035]優(yōu)選的:在服務(wù)端設(shè)置數(shù)據(jù)推送模塊,對(duì)于在所述系統(tǒng)的客戶端緩存存儲(chǔ)或在擴(kuò)展緩存服務(wù)器的擴(kuò)展緩存中存儲(chǔ)的緩存數(shù)據(jù),當(dāng)所述緩存數(shù)據(jù)在所述系統(tǒng)的服務(wù)端對(duì)應(yīng)的數(shù)據(jù)發(fā)生更新時(shí),所述數(shù)據(jù)推送模塊用于主動(dòng)對(duì)所述擴(kuò)展緩存服務(wù)器發(fā)起更新操作或通知客戶端將已經(jīng)發(fā)生更新的數(shù)據(jù)置為無效;所述數(shù)據(jù)推送模塊還用于在系統(tǒng)啟動(dòng)時(shí),根據(jù)數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊的統(tǒng)計(jì),將數(shù)據(jù)預(yù)裝到所述擴(kuò)展緩存服務(wù)器。
[0036]優(yōu)選的:所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊將所述數(shù)據(jù)接口的使用頻率按照從大到小的順序進(jìn)行排序,并將緩存數(shù)據(jù)按照所屬數(shù)據(jù)接口依照下述原則進(jìn)行緩存標(biāo)記:
[0037](I)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于小于等于排序后的前10%的數(shù)據(jù)接口標(biāo)記為V0V3,表示只在客戶端緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ)和讀取;
[0038](2)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于大于所述排序后的前10%且小于等于排序后的前20%的數(shù)據(jù)接口標(biāo)記為V1V3,表示在客戶端緩存和擴(kuò)展緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ),在發(fā)出數(shù)據(jù)請(qǐng)求時(shí)先在客戶端緩存讀取;
[0039](3)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于大于所述排序后的前20%的數(shù)據(jù)接口標(biāo)記為V2V4,表示在擴(kuò)展緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ)和讀??;
[0040]其中,V0、V1、V2、V3、V4為任意數(shù)據(jù)類型。
[0041]優(yōu)選的:在所述數(shù)據(jù)推送模塊用于主動(dòng)對(duì)所述擴(kuò)展緩存服務(wù)器發(fā)起更新操作之前,或者所述數(shù)據(jù)推送模塊在系統(tǒng)啟動(dòng)時(shí),根據(jù)數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊的統(tǒng)計(jì),將數(shù)據(jù)預(yù)裝到所述擴(kuò)展緩存服務(wù)器之前,所述服務(wù)端先構(gòu)建所推送數(shù)據(jù)的關(guān)鍵字值。
[0042]優(yōu)選的:所述系統(tǒng)包括緩存管理模塊,所述緩存管理模塊提供可視化的操作界面,在所述界面上能夠顯示當(dāng)前和所述客戶端通信無故障的擴(kuò)展緩存服務(wù)器的地址信息和所述當(dāng)前擴(kuò)展緩存服務(wù)器上存儲(chǔ)的緩存數(shù)據(jù)信息,其中:
[0043]所述緩存數(shù)據(jù)信息按照使用頻率進(jìn)行排序顯示;
[0044]所述緩存數(shù)據(jù)信息包括用于獲取緩存數(shù)據(jù)的數(shù)據(jù)接口名稱,數(shù)據(jù)接口描述以及能夠?qū)λ鼍彺鏀?shù)據(jù)進(jìn)行的操作;
[0045]所述擴(kuò)展緩存服務(wù)器的地址信息則包括當(dāng)前用于寫入緩存數(shù)據(jù)的寫入擴(kuò)展緩存服務(wù)器的IP及其端口、當(dāng)前用于讀取緩存數(shù)據(jù)的讀取擴(kuò)展緩存服務(wù)器的IP及其端口,以及所述寫入擴(kuò)展緩存服務(wù)器和所述讀取擴(kuò)展緩存服務(wù)器的連接狀態(tài)信息,所述連接狀態(tài)信息包括可連接與不可連接。
[0046]優(yōu)選的:
[0047]所述緩存數(shù)據(jù)信息以列表顯示,所述緩存數(shù)據(jù)的顯示包括數(shù)據(jù)字典緩存信息和用戶系統(tǒng)緩存信息;
[0048]所述數(shù)據(jù)字典緩存信息和用戶系統(tǒng)緩存信息分別按照使用頻率從高到低進(jìn)行排序,其中所述數(shù)據(jù)字典緩存信息默認(rèn)顯示數(shù)條排序在前的數(shù)據(jù)字典記錄,其它部分默認(rèn)隱藏,被隱藏的這部分通過用戶交互來進(jìn)行顯示或隱藏的切換;
[0049]當(dāng)數(shù)據(jù)字典記錄被顯示時(shí),系統(tǒng)提供清理緩存的能力;
[0050]對(duì)于隱藏的數(shù)據(jù)字典記錄,系統(tǒng)還提供對(duì)具體某數(shù)據(jù)字典記錄或某些數(shù)據(jù)字典記錄進(jìn)行清除的能力;
[0051]所述用戶系統(tǒng)緩存信息記錄默認(rèn)隱藏,通過用戶交互來進(jìn)行用戶系統(tǒng)緩存信息記錄的顯示或隱藏的切換;對(duì)于隱藏的用戶系統(tǒng)緩存信息記錄,系統(tǒng)提供對(duì)具體某用戶緩存信息記錄或某些用戶緩存信息記錄進(jìn)行清除的能力。
[0052]優(yōu)選的:所述清除操作為對(duì)欲清除的緩存數(shù)據(jù)進(jìn)行無效標(biāo)記。
[0053]優(yōu)選的:
[0054]所述緩存管理模塊在清除擴(kuò)展緩存服務(wù)器上的緩存數(shù)據(jù)后,向所述服務(wù)端發(fā)送如下通知:所述通知包含所清除的緩存數(shù)據(jù)的大小和所清除的緩存數(shù)據(jù)所屬的數(shù)據(jù)接口信息;
[0055]所述服務(wù)端在接收所述通知后,通過所述數(shù)據(jù)推送模塊根據(jù)其中的數(shù)據(jù)接口信息獲取當(dāng)前數(shù)據(jù),并根據(jù)其中的緩存數(shù)據(jù)的大小確定發(fā)送給擴(kuò)展緩存的數(shù)據(jù)量。
[0056]優(yōu)選的:所述系統(tǒng)通過json進(jìn)行序列化處理后進(jìn)行數(shù)據(jù)傳輸,并在指定的擴(kuò)展緩存服務(wù)器上以二進(jìn)制的格式進(jìn)行存儲(chǔ);所述客戶端接收數(shù)據(jù)后,進(jìn)行反序列化處理后使用。
[0057]優(yōu)選的:所述系統(tǒng)使用了 Redis緩存架構(gòu)。
[0058]優(yōu)選的:所述系統(tǒng)使用了 Redis的哨兵程序。
[0059]優(yōu)選的:所述系統(tǒng)通過編寫和執(zhí)行Linux腳本來啟動(dòng)所述哨兵程序。
[0060]優(yōu)選的:在所述服務(wù)端的數(shù)據(jù)庫中增加所述擴(kuò)展緩存服務(wù)器的地址存儲(chǔ)表,并將所述擴(kuò)展緩存服務(wù)器的地址信息增加到所述存儲(chǔ)表中;在所述客戶端構(gòu)建一個(gè)連接池來維護(hù)擴(kuò)展緩存服務(wù)器的地址信息。
[0061]優(yōu)選的:所述緩存管理模塊還包括一致性Hash算法單元,所述服務(wù)端通過調(diào)用所述一致性Hash算法單元能夠確定存放緩存信息的唯一的擴(kuò)展緩存服務(wù)器,所述客戶端則能夠通過調(diào)用所述一致性Hash算法單元確定存取緩存信息的唯一擴(kuò)展緩存服務(wù)器。
[0062]優(yōu)選的:所述系統(tǒng)還包括緩存日志模塊,所述操作緩存模塊將針對(duì)緩存進(jìn)行的操作寫入到緩存日志文件中,所述緩存包括客戶端緩存和擴(kuò)展緩存。
[0063]本發(fā)明具有如下特點(diǎn):
[0064](I)本發(fā)明將分布式緩存引入企業(yè)應(yīng)用架構(gòu),通過軟件架構(gòu)來提升原有系統(tǒng)的性能及穩(wěn)定性;
[0065](2)整個(gè)系統(tǒng)可按需橫向擴(kuò)展,可充分利用現(xiàn)有軟、硬件資源;
[0066](3)對(duì)分布式緩存實(shí)現(xiàn)可視化緩存管理,方便操作;
[0067](4)在對(duì)緩存擴(kuò)展后,采用高性能序列化方案替代傳統(tǒng)的XML序列化,在大幅度減小傳輸數(shù)據(jù)量,整體提升系統(tǒng)吞吐量同時(shí),在擴(kuò)展緩存上進(jìn)行序列化存儲(chǔ)可以加快數(shù)據(jù)的處理速度;
[0068](5)采用Redis分布式緩存架構(gòu),可以實(shí)現(xiàn)主從復(fù)制、讀寫分離的技術(shù)方案,具有高可靠性。
【專利附圖】
【附圖說明】
[0069]圖1為一種擴(kuò)展緩存使用流程圖;
[0070]圖2為采用分布式擴(kuò)展緩存后的系統(tǒng)架構(gòu)圖;
[0071]圖3為使用哨兵程序的系統(tǒng)架構(gòu)圖。
【具體實(shí)施方式】
[0072]在一個(gè)基礎(chǔ)的實(shí)施例中,一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng),包括服務(wù)端,客戶端,在所述服務(wù)端和客戶端之間部署多組服務(wù)器作為擴(kuò)展緩存的擴(kuò)展緩存服務(wù)器,每組服務(wù)器由主服務(wù)器和多臺(tái)備用服務(wù)器構(gòu)成;通過在已有的系統(tǒng)中增加緩存控制模塊來確定所述客戶端緩存和/或擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存的讀寫使用。
[0073]當(dāng)前的企業(yè)應(yīng)用系統(tǒng)均采用一流的企業(yè)級(jí)架構(gòu)開發(fā),擁有眾多優(yōu)點(diǎn),但是業(yè)務(wù)量的超快速增長給當(dāng)前系統(tǒng)帶來大數(shù)據(jù)、高并發(fā)的全新挑戰(zhàn),對(duì)整個(gè)核心系統(tǒng)的性能及穩(wěn)定性造成較大壓力。雖然可以通過增加硬件資源的方法來對(duì)抗這種壓力,但是無限制的增加硬件資源是不現(xiàn)實(shí)的,因而需要通過軟件架構(gòu)的改造來應(yīng)對(duì)。
[0074]通過軟件架構(gòu)的方式來擴(kuò)展緩存雖然也要增加硬件服務(wù)器,但是會(huì)同時(shí)在軟件方面增加對(duì)增加的硬件服務(wù)器進(jìn)行管理的模塊,來幫助合理分配使用增加的硬件資源,這樣使整個(gè)系統(tǒng)負(fù)載均衡,合理調(diào)配資源。
[0075]優(yōu)選的,通過采用Redis的緩存架構(gòu)來擴(kuò)展緩存,Redis支持各種不同方式的排序,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中,而且Redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了 master-slave (主從)同步,即數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器,而同步對(duì)讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助,這同時(shí)也提高了系統(tǒng)的可靠性。用這種方式擴(kuò)展緩存,不是單純的添加硬件服務(wù)器,而是通過用軟件架構(gòu)的方式來提升系統(tǒng)的性能和穩(wěn)定性。
[0076]在本實(shí)施例中,雖然可以選擇已有的分布式緩存技術(shù)來對(duì)原系統(tǒng)進(jìn)行擴(kuò)展,但是為了提高系統(tǒng)的響應(yīng)能力,充分利用所有資源,還可以同時(shí)為所述系統(tǒng)增加了一個(gè)緩存控制模塊來確定所述系統(tǒng)的客戶端緩存和/或擴(kuò)展緩存服務(wù)器的讀寫使用,制定自身的讀寫規(guī)則。通過一個(gè)緩存控制模塊的使用,可以帶來兩方面的好處。首先,在啟用改進(jìn)的系統(tǒng)時(shí)候如果擴(kuò)展緩存部分不穩(wěn)定,可以切換回原系統(tǒng)使用,不影響工作,這種方式可以參閱圖1。其次,如果改進(jìn)的系統(tǒng)可以正常使用,請(qǐng)參閱圖2,客戶端請(qǐng)求數(shù)據(jù)時(shí)絕大部分時(shí)候是和緩存服務(wù)器打交道,只有在客戶端所請(qǐng)求的數(shù)據(jù)在緩存中未命中的情況才向服務(wù)端發(fā)出請(qǐng)求,大大減輕了服務(wù)端的響應(yīng)負(fù)擔(dān),整體上提升了系統(tǒng)的性能。
[0077]優(yōu)選的,可以用一個(gè)控制參數(shù)的值來實(shí)現(xiàn)緩存規(guī)則。比如,所述控制參數(shù)設(shè)置為兩位,其中一位的值來確定是否在客戶端緩存和/或擴(kuò)展緩存讀,另一位的值用來確定是否在客戶端緩存和/或擴(kuò)展緩存寫。具體的,若控制參數(shù)第一位的值為V0,表示關(guān),則只在所述客戶端緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ);若控制參數(shù)第一位的值為VI,表示開,則同時(shí)在所述客戶端和擴(kuò)展緩存服務(wù)器上進(jìn)行緩存數(shù)據(jù)存儲(chǔ);若控制參數(shù)第一位的值為V2,表示開,則只在所述擴(kuò)展緩存服務(wù)器上進(jìn)行緩存數(shù)據(jù)存儲(chǔ);若控制參數(shù)第二位的值為V3,表示關(guān),則在所述客戶端緩存上讀取緩存數(shù)據(jù);若控制參數(shù)第二位的值為V4,表示開,則在所述擴(kuò)展緩存服務(wù)器上讀取數(shù)據(jù)。其中,V0、V1、V2、V3、V4為任意數(shù)據(jù)類型,可以為整數(shù)也可以為字符串,表示相同含義時(shí)它們的值可以相同也可以不同。
[0078]更優(yōu)的,針對(duì)所述系統(tǒng)的緩存規(guī)則,本發(fā)明設(shè)計(jì)了讀寫數(shù)據(jù)規(guī)則。所述客戶端在請(qǐng)求數(shù)據(jù)時(shí)首先獲取所請(qǐng)求數(shù)據(jù)的數(shù)據(jù)接口,并通過所述數(shù)據(jù)接口的緩存標(biāo)記初步判斷所請(qǐng)求數(shù)據(jù)使用的緩存是客戶端緩存還是擴(kuò)展緩存,然后按照下列規(guī)則進(jìn)行讀寫操作:
[0079](I)如果初步判斷所請(qǐng)求數(shù)據(jù)只在客戶端緩存存儲(chǔ),則首先在所述客戶端緩存查詢數(shù)據(jù),若沒有或者數(shù)據(jù)被置為無效,則所述客戶端向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求;所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存中;
[0080](2)如果初步判斷所請(qǐng)求數(shù)據(jù)為客戶端緩存和擴(kuò)展緩存,則首先在所述客戶端緩存查詢數(shù)據(jù),若沒有或者數(shù)據(jù)被置為無效則向所述擴(kuò)展緩存發(fā)送數(shù)據(jù)請(qǐng)求;
[0081]若所述擴(kuò)展緩存有所請(qǐng)求的數(shù)據(jù),則向所述客戶端返回所請(qǐng)求的數(shù)據(jù),所述客戶端接收所請(qǐng)求的數(shù)據(jù)并在所述客戶端緩存存儲(chǔ);
[0082]若所述擴(kuò)展緩存沒有所請(qǐng)求的數(shù)據(jù),則向所述客戶端發(fā)送沒有所請(qǐng)求的數(shù)據(jù)的響應(yīng),所述客戶端在接收所述服務(wù)端發(fā)送的沒有所請(qǐng)求的數(shù)據(jù)的響應(yīng)后,向服務(wù)端發(fā)送所述數(shù)據(jù)請(qǐng)求;所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存和所述擴(kuò)展緩存中;
[0083](3)如果初步判斷所請(qǐng)求的數(shù)據(jù)為擴(kuò)展緩存,則直接向所述擴(kuò)展緩存所在的擴(kuò)展緩存服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求;
[0084]若所述擴(kuò)展緩存服務(wù)器上有所請(qǐng)求的數(shù)據(jù),則向所述客戶端返回所請(qǐng)求的數(shù)據(jù);
[0085]若所述擴(kuò)展緩存服務(wù)器上沒有所請(qǐng)求的數(shù)據(jù),則向所述客戶端發(fā)送沒有所請(qǐng)求的數(shù)據(jù)響應(yīng),所述客戶端在接收沒有所請(qǐng)求的數(shù)據(jù)響應(yīng)后,向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求;所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將數(shù)據(jù)存儲(chǔ)在所述擴(kuò)展緩存中;
[0086]其中,當(dāng)所述客戶端在向所述擴(kuò)展緩存服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求時(shí),如果所述客戶端與所述擴(kuò)展緩存服務(wù)器通信故障時(shí),所述客戶端直接向所述服務(wù)端發(fā)出所述數(shù)據(jù)請(qǐng)求,所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù),所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述所請(qǐng)求的數(shù)據(jù)如果需要存儲(chǔ)在所述客戶端緩存,則將所述所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存上;所述所請(qǐng)求的數(shù)據(jù)如果需要存儲(chǔ)在指定的擴(kuò)展緩存服務(wù)器上,若所述通信故障尚未恢復(fù),則所述客戶端放棄存儲(chǔ)操作,若所述通信故障恢復(fù),則所述客戶端執(zhí)行將所述所請(qǐng)求的數(shù)據(jù)存儲(chǔ)到指定的擴(kuò)展緩存服務(wù)器上。
[0087]下面進(jìn)一步闡述本發(fā)明,應(yīng)理解,這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等價(jià)形式同樣落于本申請(qǐng)所附權(quán)利要求書所限定的范圍。
[0088]在一個(gè)實(shí)施例中,所述系統(tǒng)的擴(kuò)展緩存的使用方式是為了擴(kuò)展后的緩存能夠平穩(wěn)切換,如圖1所示,所述系統(tǒng)的客戶端在發(fā)出數(shù)據(jù)請(qǐng)求前,構(gòu)建所請(qǐng)求數(shù)據(jù)的關(guān)鍵字key,所述系統(tǒng)采用的數(shù)據(jù)請(qǐng)求時(shí)的處理原則為:
[0089]1、如果所述控制參數(shù)的第二位為V4,則所述客戶端將向擴(kuò)展緩存服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求;
[0090]1.1所述擴(kuò)展緩存服務(wù)器在獲取key對(duì)應(yīng)value后,將向所述客戶端返回所述key對(duì)應(yīng)的value ;
[0091]1.2所述客戶端接收所述key對(duì)應(yīng)的value,并判斷所述key對(duì)應(yīng)的value是否為空,若是空,則判斷擴(kuò)展緩存中沒有所請(qǐng)求的數(shù)據(jù)的結(jié)論,則向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求;
[0092]1.3所述服務(wù)端根據(jù)請(qǐng)求查詢數(shù)據(jù)并將數(shù)據(jù)返回給所述客戶端;所述客戶端根據(jù)所述控制參數(shù)第一位表示的狀態(tài),判斷是否將所接收的數(shù)據(jù)存儲(chǔ)在擴(kuò)展緩存上;若所述控制參數(shù)第一位為V2,則將接收的數(shù)據(jù)的key與value關(guān)聯(lián),將所述key與value關(guān)聯(lián)后的結(jié)果放入擴(kuò)展緩存中;若為VI,則將接收的數(shù)據(jù)的key與value關(guān)聯(lián)后的結(jié)果放入客戶端緩存中;若為V0,則將接收的數(shù)據(jù)的key與value關(guān)聯(lián)后的結(jié)果同時(shí)放入擴(kuò)展緩存和客戶端緩存中;
[0093]2、如果所述控制參數(shù)的第二位表示V3,則所述客戶端判斷key對(duì)應(yīng)的value是否為空,若不為空,則直接在所述客戶端緩存獲取所請(qǐng)求的數(shù)據(jù)并使用;若為空,則向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求;后面的處理過程與1.3相同。其中,W、V1、V2、V3、V4的要求同上,在此不再贅述。
[0094]在一個(gè)實(shí)施例中,為了方便管理緩存服務(wù)器上的數(shù)據(jù),增加了對(duì)緩存數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)。所述緩存數(shù)據(jù)以二維結(jié)構(gòu)存儲(chǔ)在客戶端和擴(kuò)展緩存服務(wù)器上,分為數(shù)據(jù)接口的信息緩存維度和數(shù)據(jù)接口的名稱緩存維度,所述數(shù)據(jù)接口的信息緩存維度的關(guān)鍵字為數(shù)據(jù)接口的入?yún)?,所述?shù)據(jù)接口的信息緩存維度的值為所述數(shù)據(jù)接口的返回信息;所述數(shù)據(jù)接口的名稱緩存維度的關(guān)鍵字為所述數(shù)據(jù)接口,所述數(shù)據(jù)接口的名稱緩存維度的值為所述數(shù)據(jù)接口入?yún)ⅲ硕S設(shè)計(jì)可以做到以數(shù)據(jù)接口為中心方便管理。在所述客戶端向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求之前,或者在所述客戶端在向所述擴(kuò)展緩存服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求之前:所述客戶端先根據(jù)所請(qǐng)求的數(shù)據(jù)構(gòu)建所述所請(qǐng)求的數(shù)據(jù)的關(guān)鍵字值。
[0095]優(yōu)選的,所述接口信息緩存維度的關(guān)鍵字的生成規(guī)則為:數(shù)位機(jī)構(gòu)代碼+系統(tǒng)代碼+接口方法名稱+接口所有入?yún)⒚Q+相同接口方法名稱的編號(hào);所述接口名稱緩存維度關(guān)鍵字的生成規(guī)則,數(shù)位機(jī)構(gòu)代碼+系統(tǒng)代碼+接口方法名稱+相同接口方法名稱的編號(hào);所述機(jī)構(gòu)代碼為所述系統(tǒng)使用者的編碼;所述系統(tǒng)代碼為所述系統(tǒng)的子系統(tǒng)的順序編碼;所述相同接口方法名稱的編號(hào)用于區(qū)分相同的接口方法名稱,通常所述相同數(shù)據(jù)接口方法名稱的編號(hào)的位數(shù)大于等于所述數(shù)據(jù)接口方法名稱相同的數(shù)目值的位數(shù),所述編號(hào)的值為以自然數(shù)序列增長的整數(shù),如果所述編號(hào)的位數(shù)比所述整數(shù)的位數(shù)多,則在所述整數(shù)的最高位前面補(bǔ)零;如果不存在所述數(shù)據(jù)接口的方法名稱相同的情況,則所述相同數(shù)據(jù)接口的方法名稱的編號(hào)為零,零的個(gè)數(shù)等于所述編號(hào)的位數(shù)。所述相同接口方法名稱的編號(hào)的位數(shù)可以根據(jù)系統(tǒng)開發(fā)需要而設(shè)定。
[0096]在一個(gè)實(shí)施例中,使用車險(xiǎn)承保子系統(tǒng)的公司在西安,其西安的機(jī)構(gòu)代碼為4位,假設(shè)是1234,車險(xiǎn)承保子系統(tǒng)的編碼為0101,某個(gè)接口方法為SeRVice.getlnfo (StRing systemCode, PRpDplan pRpDplan),并且系統(tǒng)中有 2 個(gè)這樣的函數(shù),為方便區(qū)別相同的接口名稱,所述相同接口方法名稱的編號(hào)設(shè)I位,則接口名稱為SeRVice.getlnfo的接口名稱緩存維度的關(guān)鍵字為1234-0101-SeRVicegetInfo-l,返回值為1234-0101-SeRVicegetlnfo-StRing systemCode-PRpDpIanpRpDplan-Ι,這個(gè)返回值將作為接口信息緩存維度的關(guān)鍵字,通過接口信息緩存維度的關(guān)鍵字的返回值可以得到一個(gè)具體的數(shù)據(jù)對(duì)象。
[0097]在另一個(gè)實(shí)施例中,整個(gè)系統(tǒng)只有一個(gè)接口方法的名稱,也就是所述接口方法的名稱在整個(gè)系統(tǒng)中唯一,則相同數(shù)據(jù)接口的方法名稱的編號(hào)為一個(gè)O。
[0098]在一個(gè)實(shí)施例中,為方便管理,設(shè)相同數(shù)據(jù)接口的方法名稱的編號(hào)為4位,則對(duì)于一個(gè)接口方法的名稱如果有3個(gè)相同的情況,則所述相同數(shù)據(jù)接口的方法名稱的編號(hào)依次為0001,0002,0003 ;而如果只有一個(gè)的情況,則所述相同數(shù)據(jù)接口的方法名稱的編號(hào)為0000。
[0099]通常,在所述客戶端向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求之前,或者在所述客戶端在向所述擴(kuò)展緩存服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求之前:所述客戶端先根據(jù)所請(qǐng)求的數(shù)據(jù)構(gòu)建所述所請(qǐng)求的數(shù)據(jù)的關(guān)鍵字值。
[0100]在一個(gè)實(shí)施例中,為了后期對(duì)系統(tǒng)響應(yīng)速度的優(yōu)化,針對(duì)性的提高系統(tǒng)性能,以及為了能定期的維護(hù),在所述系統(tǒng)中增加一個(gè)緩存預(yù)熱設(shè)備,如附圖2所示,所述緩存預(yù)熱設(shè)備包括數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊和系統(tǒng)定期維護(hù)通知模塊,所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊按照數(shù)據(jù)接口的使用頻率進(jìn)行統(tǒng)計(jì)和排序,并在系統(tǒng)啟動(dòng)時(shí)將所述數(shù)據(jù)接口的使用頻率統(tǒng)計(jì)和排序通知給所述系統(tǒng)的客戶端和服務(wù)端;所述系統(tǒng)定期維護(hù)提醒模塊中可以設(shè)置定期維護(hù)的時(shí)間長度,并在一個(gè)時(shí)間長度結(jié)束時(shí)將所述時(shí)間長度結(jié)束前的數(shù)據(jù)接口的使用頻率統(tǒng)計(jì)和排序發(fā)通知系統(tǒng)維護(hù)人員。
[0101]所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊有助于對(duì)所述系統(tǒng)中各類數(shù)據(jù)的使用情況進(jìn)行了解,有助于對(duì)以后的系統(tǒng)優(yōu)化提供數(shù)據(jù)支撐。而系統(tǒng)定期維護(hù)提醒模塊可以以郵件或者短信的方式通知系統(tǒng)維護(hù)人員系統(tǒng)中各類數(shù)據(jù)的使用情況,在后期的優(yōu)化中有助于系統(tǒng)維護(hù)人員對(duì)系統(tǒng)優(yōu)化采用策略的制定。
[0102]在本實(shí)施例中,通過對(duì)預(yù)熱設(shè)備的利用,根據(jù)數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊的統(tǒng)計(jì),將數(shù)據(jù)預(yù)裝到所述擴(kuò)展緩存服務(wù)器,有利于提高大多數(shù)數(shù)據(jù)的命中率,提高系統(tǒng)處理能力。優(yōu)選的,可以在擴(kuò)展緩存使用之前,就使用該設(shè)備的數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊功能,這樣能在擴(kuò)展緩存使用時(shí)取得一個(gè)很好的效果。而如果預(yù)熱設(shè)備在擴(kuò)展緩存使用時(shí)才開始使用,所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊也能在改進(jìn)后的系統(tǒng)使用一段時(shí)間后,重新啟動(dòng)系統(tǒng)時(shí)取得高命中率的效果。
[0103]在一個(gè)實(shí)施例中,為了提高緩存數(shù)據(jù)的命中率,所述系統(tǒng)增加數(shù)據(jù)推送模塊,所述數(shù)據(jù)推送模塊能夠?qū)⒁言诳蛻舳舜鎯?chǔ)或在擴(kuò)展緩存服務(wù)器中存儲(chǔ)的緩存數(shù)據(jù),當(dāng)所述緩存數(shù)據(jù)在所述服務(wù)端發(fā)生更新時(shí),如附圖2所示,所述服務(wù)端主動(dòng)對(duì)所述擴(kuò)展緩存服務(wù)器發(fā)起更新操作,或通知客戶端將已經(jīng)發(fā)生更新的數(shù)據(jù)置為無效;所述數(shù)據(jù)推送模塊還用于在系統(tǒng)啟動(dòng)時(shí),根據(jù)數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊的統(tǒng)計(jì),將數(shù)據(jù)預(yù)裝到所述擴(kuò)展緩存服務(wù)器。而所述數(shù)據(jù)推送模塊在主動(dòng)對(duì)所述擴(kuò)展緩存服務(wù)器發(fā)起更新操作之前,或者在系統(tǒng)啟動(dòng)時(shí),根據(jù)數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊的統(tǒng)計(jì),將數(shù)據(jù)預(yù)裝到所述擴(kuò)展緩存服務(wù)器之前,所述服務(wù)端均需要先構(gòu)建所推送數(shù)據(jù)的關(guān)鍵字值。
[0104]所述數(shù)據(jù)推送模塊的使用,減輕對(duì)服務(wù)端的請(qǐng)求與響應(yīng)壓力。通過有區(qū)別的對(duì)擴(kuò)展緩存進(jìn)行數(shù)據(jù)更新操作而對(duì)客戶端進(jìn)行置無效操作,有利于提高對(duì)擴(kuò)展緩存的緩存數(shù)據(jù)命中率,而同時(shí)減少對(duì)客戶端通信的數(shù)據(jù)量傳輸,有利于提高系統(tǒng)的響應(yīng)性能。
[0105]在一個(gè)實(shí)施例中,為更好的提高緩存數(shù)據(jù)的讀取速度,所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊將所述數(shù)據(jù)接口的使用頻率按照從大到小的順序進(jìn)行排序,對(duì)將緩存的數(shù)據(jù)按照所屬數(shù)據(jù)接口依照下述原則進(jìn)行緩存標(biāo)記,并在所述數(shù)據(jù)接口的緩存標(biāo)記發(fā)生變化時(shí)通知所述系統(tǒng)的客戶端:
[0106](I)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于小于等于排序后的前10%的數(shù)據(jù)接口標(biāo)記為V0V3,表示只在客戶端緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ)和讀取;
[0107](2)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于大于所述排序后的前10%且小于等于所述排序后的前20%的數(shù)據(jù)接口標(biāo)記為V1V3,表示在客戶端緩存和擴(kuò)展緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ),在發(fā)出數(shù)據(jù)請(qǐng)求時(shí)先在客戶端緩存讀?。?br>
[0108](3)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于大于所述排序后的前20%的數(shù)據(jù)接口標(biāo)記為V2V4,表示在擴(kuò)展緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ)和讀取。
[0109]其中,V0、V1、V2、V3、V4的要求同上,在此不再贅述。
[0110]通過按照系統(tǒng)業(yè)務(wù)數(shù)據(jù)的使用頻率,利用二八定律對(duì)數(shù)據(jù)進(jìn)行人為指定哪些數(shù)據(jù)存放在客戶端緩存方便讀?。荒男?shù)據(jù)既存放在客戶端緩存又存放在擴(kuò)展緩存中,分擔(dān)對(duì)服務(wù)端的請(qǐng)求響應(yīng)負(fù)擔(dān);哪些數(shù)據(jù)只存放在擴(kuò)展緩存中,不過度增加客戶端的壓力的同時(shí),分擔(dān)服務(wù)端的請(qǐng)求響應(yīng)壓力,有利于提高系統(tǒng)的響應(yīng)性能。
[0111]為了更好的對(duì)緩存服務(wù)器進(jìn)行管理,在所述系統(tǒng)中增加了緩存管理模塊,所述緩存管理模塊提供可視化的操作界面,在所述界面上能夠顯示當(dāng)前和所述客戶端通信無故障的擴(kuò)展緩存服務(wù)器的地址信息和所述當(dāng)前擴(kuò)展緩存服務(wù)器上存儲(chǔ)的緩存數(shù)據(jù)信息,所述緩存數(shù)據(jù)信息按照使用頻率進(jìn)行排序顯示;所述緩存數(shù)據(jù)信息包括用于獲取緩存數(shù)據(jù)的數(shù)據(jù)接口名稱,數(shù)據(jù)接口描述以及能夠?qū)λ鼍彺鏀?shù)據(jù)進(jìn)行的操作;所述擴(kuò)展緩存服務(wù)器的地址信息包括當(dāng)前用于寫入緩存數(shù)據(jù)的寫入擴(kuò)展緩存服務(wù)器的IP及其端口、當(dāng)前用于讀取緩存數(shù)據(jù)的讀取擴(kuò)展緩存服務(wù)器的IP及其端口,以及所述寫入擴(kuò)展緩存服務(wù)器和所述讀取擴(kuò)展緩存服務(wù)器的連接狀態(tài)顯示,所述連接狀態(tài)分為可連接與不可連接。
[0112]優(yōu)選的,所述緩存數(shù)據(jù)信息以列表顯示,所述緩存數(shù)據(jù)的顯示包括數(shù)據(jù)字典緩存信息和用戶系統(tǒng)緩存信息;所述數(shù)據(jù)字典緩存信息和用戶系統(tǒng)緩存信息分別按照使用頻率從高到低進(jìn)行排序,其中所述數(shù)據(jù)字典緩存信息默認(rèn)顯示數(shù)條排序在前的數(shù)據(jù)字典記錄,其它部分默認(rèn)隱藏,被隱藏的這部分通過用戶交互來進(jìn)行顯示或隱藏的切換;當(dāng)數(shù)據(jù)字典記錄被顯示時(shí),系統(tǒng)提供清理緩存的能力;對(duì)于隱藏的數(shù)據(jù)字典記錄,系統(tǒng)還提供對(duì)具體某數(shù)據(jù)字典記錄或某些數(shù)據(jù)字典記錄進(jìn)行清除的能力;所述用戶系統(tǒng)緩存信息記錄默認(rèn)隱藏,通過用戶交互來進(jìn)行用戶系統(tǒng)緩存信息記錄的顯示或隱藏的切換;對(duì)于隱藏的用戶系統(tǒng)緩存信息記錄,系統(tǒng)提供對(duì)具體某用戶緩存信息記錄或某些用戶緩存信息記錄進(jìn)行清除的能力。
[0113]在一個(gè)實(shí)施例中,所進(jìn)行的清除操作是一個(gè)懶加載的過程。在具體實(shí)施過程中,所述緩存數(shù)據(jù)不會(huì)被硬刪除,只是會(huì)被置于無效。所述緩存管理模塊在清除擴(kuò)展緩存數(shù)據(jù)后,向服務(wù)端發(fā)送如下通知:所述通知包含所清除的緩存數(shù)據(jù)的大小和所清除的緩存數(shù)據(jù)所屬的數(shù)據(jù)接口信息的通知;所述服務(wù)端在接收所述所清除的緩存數(shù)據(jù)的大小和數(shù)據(jù)接口信息的通知后,通過所述數(shù)據(jù)推送模塊根據(jù)其中的數(shù)據(jù)接口信息獲取數(shù)據(jù),并根據(jù)其中的緩存數(shù)據(jù)的大小確定發(fā)送給擴(kuò)展緩存的數(shù)據(jù)量。
[0114]更優(yōu)的,所述緩存管理模塊還包括一致性Hash算法單元,所述服務(wù)端通過調(diào)用所述一致性Hash算法單元能夠確定存放緩存信息的唯一的擴(kuò)展緩存服務(wù)器,所述客戶端則能夠通過調(diào)用所述一致性Hash算法單元確定存取緩存信息的唯一擴(kuò)展緩存服務(wù)器。
[0115]在客戶端判斷請(qǐng)求的數(shù)據(jù)在擴(kuò)展緩存時(shí),或者在服務(wù)端的數(shù)據(jù)推送模塊在進(jìn)行推送數(shù)據(jù)時(shí),都將調(diào)用一致性Hash算法單元,用于確定唯一的擴(kuò)展緩存服務(wù)器。通過一致性Hash算法的使用,可以使數(shù)據(jù)存放在所有擴(kuò)展服務(wù)器上分布均勻,所有擴(kuò)展服務(wù)器負(fù)載均衡,有利于系統(tǒng)穩(wěn)定。
[0116]優(yōu)選的,所述系統(tǒng)增加了緩存日志模塊,所述緩存日志模塊將針對(duì)緩存進(jìn)行的操作寫入到緩存日志文件中,所述緩存包括客戶端緩存和擴(kuò)展緩存。
[0117]在另一個(gè)實(shí)施例中,為了提高傳輸數(shù)據(jù)提高系統(tǒng)數(shù)據(jù)吞吐量,減少傳輸數(shù)據(jù)量,加快解析速度,所述系統(tǒng)通過json進(jìn)行序列化處理后進(jìn)行數(shù)據(jù)傳輸,并在指定的擴(kuò)展緩存服務(wù)器上以二進(jìn)制的格式進(jìn)行存儲(chǔ),所述客戶端接收數(shù)據(jù)后,進(jìn)行反序列化處理后使用。然而,如果所請(qǐng)求的數(shù)據(jù)就在客戶端緩存,不需要進(jìn)行序列化和反序列化處理。
[0118]在擴(kuò)展緩存服務(wù)器寫滿數(shù)據(jù)時(shí),同時(shí)又需要寫新的數(shù)據(jù)時(shí),所述系統(tǒng)使用了 Redis的LRU算法來進(jìn)行數(shù)據(jù)替換。
[0119]在一個(gè)實(shí)施例中,為了提高系統(tǒng)的可靠性,系統(tǒng)使用了 Redis的哨兵程序,并通過編寫Linux腳本,執(zhí)行Linux命令運(yùn)行所述腳本,進(jìn)而啟動(dòng)執(zhí)行哨兵程序。
[0120]通過編寫腳本來控制哨兵程序,使用方便,操作簡單,可以更好的方便系統(tǒng)維護(hù)人員進(jìn)行配置和維護(hù),提高工作效率。
[0121]為了使用所述哨兵程序,需要在部署哨兵程序的服務(wù)器上的哨兵程序的配置文件中進(jìn)行相關(guān)參數(shù)的配置。另外,在所述客戶端服務(wù)器上配套配置Redis的屬性文件Redis.properties中配置所述哨兵程序的服務(wù)器地址,用于客戶端與哨兵程序所在的服務(wù)器相連,而在哨兵程序中,會(huì)維護(hù)一個(gè)關(guān)于客戶端地址的消息隊(duì)列,所述客戶端與所述哨兵程序所在的服務(wù)器相連后,會(huì)在所述的消息隊(duì)列中注冊。
[0122]為了管理和維護(hù)擴(kuò)展緩存服務(wù)器,在所述服務(wù)端的數(shù)據(jù)庫中增加所述擴(kuò)展緩存服務(wù)器的地址存儲(chǔ)表,并將所述擴(kuò)展緩存服務(wù)器的地址信息增加到所述存儲(chǔ)表中;在所述客戶端構(gòu)建一個(gè)連接池來維護(hù)擴(kuò)展緩存服務(wù)器的地址信息。
[0123]在另一個(gè)實(shí)施例中,所述客戶端與所述哨兵程序所在的服務(wù)器相連后,在所述的消息隊(duì)列中注冊并訂閱了“服務(wù)器切換”的消息。當(dāng)所述哨兵程序?qū)U(kuò)展緩存服務(wù)器的主服務(wù)器的地址信息發(fā)送給所述客戶端,所述客戶端將更新所述地址信息。當(dāng)系統(tǒng)啟動(dòng)時(shí),哨兵程序會(huì)將所有主服務(wù)器的地址信息發(fā)送給所述客戶端;當(dāng)系統(tǒng)運(yùn)行中,某個(gè)主服務(wù)器發(fā)生故障,哨兵程序會(huì)將該主服務(wù)器的某臺(tái)備用服務(wù)器提升為新的主服務(wù)器,同時(shí)會(huì)將新的主服務(wù)器的地址信息通知給所述客戶端。如圖3所示,系統(tǒng)部署了多組Redis的主備服務(wù)器,通過使用哨兵集群來監(jiān)控所述的主備服務(wù)器,所述哨兵集群中有多個(gè)哨兵程序,如果某臺(tái)主服務(wù)器故障,所述哨兵集群會(huì)主動(dòng)將該故障的主服務(wù)器的從服務(wù)器提升為主服務(wù)器,并主動(dòng)將新的緩存服務(wù)器狀態(tài)告知所述客戶端。在圖3中,還可以看到,對(duì)于多組Redis的主備服務(wù)器,所述客戶端是通過一致性hash算法向指定的擴(kuò)展服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求的,若擴(kuò)展服務(wù)器上有所述客戶端所請(qǐng)求的數(shù)據(jù),則會(huì)向所述客戶端返回所請(qǐng)求的數(shù)據(jù)。通過多組主備服務(wù)器來進(jìn)行緩存數(shù)據(jù)存儲(chǔ),可以減少所述客戶端對(duì)服務(wù)端的請(qǐng)求,減少所述服務(wù)端的響應(yīng)次數(shù),提高整個(gè)系統(tǒng)的響應(yīng)速度;同時(shí)使用哨兵集群監(jiān)控所述多組主備服務(wù)器,可以提高系統(tǒng)的可靠性。
[0124]本說明書中每個(gè)實(shí)施例采用采用遞進(jìn)的方式描述,重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0125]以上對(duì)本發(fā)明所提供的一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種通過軟件架構(gòu)擴(kuò)展緩存的系統(tǒng),包括服務(wù)端,客戶端,其特征在于:在所述服務(wù)端和客戶端之間部署多組服務(wù)器作為擴(kuò)展緩存的擴(kuò)展緩存服務(wù)器,每組服務(wù)器由主服務(wù)器和多臺(tái)備用服務(wù)器構(gòu)成;通過在已有的系統(tǒng)中增加緩存控制模塊來確定所述客戶端緩存和/或擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存的讀寫使用。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于:優(yōu)選的,所述緩存控制模塊中至少有一個(gè)控制參數(shù),所述緩存控制模塊實(shí)現(xiàn)如下緩存規(guī)則: (1)若控制參數(shù)第一位的值為V0,表示關(guān),則只在所述客戶端緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ); (2)若控制參數(shù)第一位的值為VI,表示開,則同時(shí)在所述客戶端緩存和擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存進(jìn)行緩存數(shù)據(jù)存儲(chǔ); (3)若控制參數(shù)第一位的值為V2,表示開,則只在所述擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存進(jìn)行緩存數(shù)據(jù)存儲(chǔ); (4)若控制參數(shù)第二位的值為V3,表示關(guān),則在所述客戶端緩存上讀取緩存數(shù)據(jù); (5)若控制參數(shù)第二位的值為V4,表示開,則在所述擴(kuò)展緩存服務(wù)器上的擴(kuò)展緩存讀取數(shù)據(jù); 其中,V0、V1、V2、V3、V4為任意數(shù)據(jù)類型。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于:所述要進(jìn)行緩存的數(shù)據(jù)以二維結(jié)構(gòu)存儲(chǔ)在客戶端緩存和擴(kuò)展緩存上,分為數(shù)據(jù)接口的信息緩存維度和數(shù)據(jù)接口的名稱緩存維度,所述數(shù)據(jù)接口的信息緩存維度的關(guān)鍵字為數(shù)據(jù)接口的入?yún)ⅲ鰯?shù)據(jù)接口的信息緩存維度的值為所述數(shù)據(jù)接口的返回信息;所述數(shù)據(jù)接口的名稱緩存維度的關(guān)鍵字為所述數(shù)據(jù)接口,所述數(shù)據(jù)接口的名稱緩存維度的值為所述數(shù)據(jù)接口的入?yún)ⅰ?br>
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于: 所述數(shù)據(jù)接口的信息緩存維度的關(guān)鍵字的生成規(guī)則為:數(shù)位機(jī)構(gòu)代碼+系統(tǒng)代碼+所述數(shù)據(jù)接口的方法名稱+所述數(shù)據(jù)接口的所有入?yún)⒚Q+相同數(shù)據(jù)接口的方法名稱的編號(hào); 所述數(shù)據(jù)接口名稱緩存維度關(guān)鍵字的生成規(guī)則,數(shù)位機(jī)構(gòu)代碼+系統(tǒng)代碼+所述數(shù)據(jù)接口方法名稱+相同所述數(shù)據(jù)接口方法名稱的編號(hào); 所述機(jī)構(gòu)代碼為所述系統(tǒng)使用者的編碼; 所述系統(tǒng)代碼為所述系統(tǒng)的子系統(tǒng)的順序編碼; 所述相同數(shù)據(jù)接口方法名稱的編號(hào)的位數(shù)大于等于所述數(shù)據(jù)接口方法名稱相同的數(shù)目值的位數(shù),所述編號(hào)的值為以自然數(shù)序列增長的整數(shù),如果所述編號(hào)的位數(shù)比所述整數(shù)的位數(shù)多,則在所述整數(shù)的最高位前面補(bǔ)零;如果不存在所述數(shù)據(jù)接口的方法名稱相同的情況,則所述相同數(shù)據(jù)接口的方法名稱的編號(hào)為零,零的個(gè)數(shù)等于所述編號(hào)的位數(shù)。
5.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于:所述客戶端在請(qǐng)求數(shù)據(jù)時(shí)首先獲取所請(qǐng)求數(shù)據(jù)的數(shù)據(jù)接口,并通過所述數(shù)據(jù)接口的緩存標(biāo)記初步判斷所請(qǐng)求數(shù)據(jù)使用的緩存是客戶端緩存還是擴(kuò)展緩存,然后按照下列規(guī)則進(jìn)行讀寫操作: (I)如果初步判斷所請(qǐng)求數(shù)據(jù)只在客戶端緩存存儲(chǔ),則首先在所述客戶端緩存查詢數(shù)據(jù),若沒有或者數(shù)據(jù)被置為無效,則所述客戶端向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求; 所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù); 所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存中; (2)如果初步判斷所請(qǐng)求數(shù)據(jù)為客戶端緩存和擴(kuò)展緩存,則首先在所述客戶端緩存查詢數(shù)據(jù),若沒有或者數(shù)據(jù)被置為無效則向所述擴(kuò)展緩存發(fā)送數(shù)據(jù)請(qǐng)求; 若所述擴(kuò)展緩存有所請(qǐng)求的數(shù)據(jù),則向所述客戶端返回所請(qǐng)求的數(shù)據(jù),所述客戶端接收所請(qǐng)求的數(shù)據(jù)并在所述客戶端緩存存儲(chǔ); 若所述擴(kuò)展緩存沒有所請(qǐng)求的數(shù)據(jù),則向所述客戶端發(fā)送沒有所請(qǐng)求的數(shù)據(jù)的響應(yīng),所述客戶端在接收所述服務(wù)端發(fā)送的沒有所請(qǐng)求的數(shù)據(jù)的響應(yīng)后,向服務(wù)端發(fā)送所述數(shù)據(jù)請(qǐng)求;所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存和所述擴(kuò)展緩存中; (3)如果初步判斷所請(qǐng)求的數(shù)據(jù)為擴(kuò)展緩存,則直接向所述擴(kuò)展緩存所在的擴(kuò)展緩存服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求; 若所述擴(kuò)展緩存服務(wù)器上有所請(qǐng)求的數(shù)據(jù),則向所述客戶端返回所請(qǐng)求的數(shù)據(jù); 若所述擴(kuò)展緩存服務(wù)器上沒有所請(qǐng)求的數(shù)據(jù),則向所述客戶端發(fā)送沒有所請(qǐng)求的數(shù)據(jù)響應(yīng),所述客戶端在接收沒有所請(qǐng)求的數(shù)據(jù)響應(yīng)后,向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求;所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù);所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù)并將數(shù)據(jù)存儲(chǔ)在所述擴(kuò)展緩存中; 其中,當(dāng)所述客戶端在向所述擴(kuò)展緩存服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求時(shí),如果所述客戶端與所述擴(kuò)展緩存服務(wù)器通信故障時(shí),所述客戶端將直接向所述服務(wù)端發(fā)出所述數(shù)據(jù)請(qǐng)求,所述服務(wù)端向所述客戶端返回?cái)?shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù),所述客戶端接收所述數(shù)據(jù)響應(yīng)和所請(qǐng)求的數(shù)據(jù); 所述所請(qǐng)求的數(shù)據(jù)如果需要存儲(chǔ)在所述客戶端緩存,則將所述所請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述客戶端緩存上; 所述所請(qǐng)求的數(shù)據(jù)如果需要存儲(chǔ)在指定的擴(kuò)展緩存服務(wù)器上:若所述通信故障尚未恢復(fù),則所述客戶端放棄存儲(chǔ)操作;若所述通信故障恢復(fù),則所述客戶端執(zhí)行將所述所請(qǐng)求的數(shù)據(jù)存儲(chǔ)到指定的擴(kuò)展緩存服務(wù)器上。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于: 在所述客戶端向服務(wù)端發(fā)送數(shù)據(jù)請(qǐng)求之前,或者在所述客戶端在向所述擴(kuò)展緩存服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求之前:所述客戶端先根據(jù)所請(qǐng)求的數(shù)據(jù)構(gòu)建所述所請(qǐng)求的數(shù)據(jù)的關(guān)鍵字值。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于:設(shè)置一個(gè)緩存預(yù)熱設(shè)備,所述緩存預(yù)熱設(shè)備包括數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊和系統(tǒng)定期維護(hù)通知模塊,所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊按照數(shù)據(jù)接口的使用頻率進(jìn)行統(tǒng)計(jì)和排序,并在系統(tǒng)啟動(dòng)時(shí)將所述數(shù)據(jù)接口的使用頻率統(tǒng)計(jì)和排序通知給所述系統(tǒng)的客戶端和服務(wù)端;所述系統(tǒng)定期維護(hù)提醒模塊用于設(shè)置定期維護(hù)的時(shí)間長度,并在一個(gè)時(shí)間長度結(jié)束時(shí),將所述時(shí)間長度結(jié)束前的數(shù)據(jù)接口的使用頻率統(tǒng)計(jì)和排序信息發(fā)通知給系統(tǒng)維護(hù)人員。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于:在服務(wù)端設(shè)置數(shù)據(jù)推送模塊,對(duì)于在所述系統(tǒng)的客戶端緩存存儲(chǔ)或在擴(kuò)展緩存服務(wù)器的擴(kuò)展緩存中存儲(chǔ)的緩存數(shù)據(jù),當(dāng)所述緩存數(shù)據(jù)在所述系統(tǒng)的服務(wù)端對(duì)應(yīng)的數(shù)據(jù)發(fā)生更新時(shí),所述數(shù)據(jù)推送模塊用于主動(dòng)對(duì)所述擴(kuò)展緩存服務(wù)器發(fā)起更新操作或通知客戶端將已經(jīng)發(fā)生更新的數(shù)據(jù)置為無效;所述數(shù)據(jù)推送模塊還用于在系統(tǒng)啟動(dòng)時(shí),根據(jù)數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊的統(tǒng)計(jì),將數(shù)據(jù)預(yù)裝到所述擴(kuò)展緩存服務(wù)器。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于:所述數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊將所述數(shù)據(jù)接口的使用頻率按照從大到小的順序進(jìn)行排序,并將緩存數(shù)據(jù)按照所屬數(shù)據(jù)接口依照下述原則進(jìn)行緩存標(biāo)記: (1)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于小于等于排序后的前10%的數(shù)據(jù)接口標(biāo)記為V0V3,表示只在客戶端緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ)和讀??; (2)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于大于所述排序后的前10%且小于等于排序后的前20%的數(shù)據(jù)接口標(biāo)記為V1V3,表示在客戶端緩存和擴(kuò)展緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ),在發(fā)出數(shù)據(jù)請(qǐng)求時(shí)先在客戶端緩存讀取; (3)所述緩存數(shù)據(jù)所屬數(shù)據(jù)接口的使用頻率屬于大于所述排序后的前20%的數(shù)據(jù)接口標(biāo)記為V2V4,表示在擴(kuò)展緩存上進(jìn)行緩存數(shù)據(jù)存儲(chǔ)和讀?。? 其中,V0、V1、V2、V3、V4為任意數(shù)據(jù)類型。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于:在所述數(shù)據(jù)推送模塊用于主動(dòng)對(duì)所述擴(kuò)展緩存服務(wù)器發(fā)起更新操作之前,或者所述數(shù)據(jù)推送模塊在系統(tǒng)啟動(dòng)時(shí),根據(jù)數(shù)據(jù)接口調(diào)用頻率統(tǒng)計(jì)模塊的統(tǒng)計(jì),將數(shù)據(jù)預(yù)裝到所述擴(kuò)展緩存服務(wù)器之前,所述服務(wù)端先構(gòu)建所推送數(shù)據(jù)的關(guān)鍵字值。
【文檔編號(hào)】H04L29/08GK104202423SQ201410482172
【公開日】2014年12月10日 申請(qǐng)日期:2014年9月19日 優(yōu)先權(quán)日:2014年9月19日
【發(fā)明者】王和, 邵利鐸, 何棟, 王吉玲, 安然, 潘曦 申請(qǐng)人:中國人民財(cái)產(chǎn)保險(xiǎn)股份有限公司