一種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)和方法及注冊(cè)、訂票、網(wǎng)購(gòu)系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)和方法及注冊(cè)、訂票、網(wǎng)購(gòu)系統(tǒng)。該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器和客戶端;其中,客戶端與網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,網(wǎng)絡(luò)服務(wù)器分別與讀、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連;客戶端向網(wǎng)絡(luò)服務(wù)器發(fā)送讀、寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);網(wǎng)絡(luò)服務(wù)器從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)提供給客戶端;根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果提供給客戶端;寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。本發(fā)明能降低單臺(tái)服務(wù)器的訪問(wèn)量,防止巨量訪問(wèn)造成服務(wù)器癱瘓。
【專利說(shuō)明】—種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)和方法及注冊(cè)、訂票、網(wǎng)購(gòu)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)訪問(wèn)【技術(shù)領(lǐng)域】,特別是涉及一種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)和方法及注冊(cè)、訂票、網(wǎng)購(gòu)系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)注冊(cè)、網(wǎng)絡(luò)訂票、網(wǎng)絡(luò)購(gòu)物等通過(guò)網(wǎng)絡(luò)來(lái)進(jìn)行某種操作的新興事物層出不窮,其共同的技術(shù)基礎(chǔ)是數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)訪問(wèn)技術(shù)。該技術(shù)中,數(shù)據(jù)庫(kù)存儲(chǔ)在服務(wù)器,外部的客戶端通過(guò)網(wǎng)絡(luò)向服務(wù)器提交讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,分別完成對(duì)數(shù)據(jù)庫(kù)的讀操作和寫(xiě)操作。這種技術(shù)的特點(diǎn)是訪問(wèn)的種類比較單一,基本只有讀數(shù)據(jù)庫(kù)請(qǐng)求和寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求兩種,但訪問(wèn)量大且在時(shí)間上隨機(jī)分布。這樣,當(dāng)巨量的讀、寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求同時(shí)提交給服務(wù)器時(shí),很容易造成服務(wù)器的癱瘓,隨之而來(lái)的不僅是客戶端不斷的刷新操作從而向服務(wù)器提交更多的請(qǐng)求,進(jìn)一步加大服務(wù)器的工作負(fù)擔(dān),延長(zhǎng)服務(wù)器的響應(yīng)時(shí)間,更糟的后果是可能造成數(shù)據(jù)庫(kù)發(fā)生混亂,給客戶及商家?guī)?lái)巨大損失。現(xiàn)有的防止服務(wù)器癱瘓的方法是提高服務(wù)器的配置,從而提高其響應(yīng)速度,在盡可能短的時(shí)間內(nèi)完成不斷涌來(lái)的讀、寫(xiě)服務(wù)器請(qǐng)求,但是,目前的服務(wù)器制造水平遠(yuǎn)遠(yuǎn)不能滿足巨量客戶端同時(shí)提交請(qǐng)求時(shí)的響應(yīng)需求,而且,由于上述的巨量訪問(wèn)往往集中在很短的時(shí)間(如圣誕、國(guó)慶、元旦等節(jié)假日期間)里,在其余的大量時(shí)間里,服務(wù)器的網(wǎng)絡(luò)訪問(wèn)量都比較小,這種提高服務(wù)器配置的方式也會(huì)造成資源的浪費(fèi)和成本的增加。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)和方法及注冊(cè)、訂票、網(wǎng)購(gòu)系統(tǒng),能降低單臺(tái)服務(wù)器的訪問(wèn)量,防止巨量訪問(wèn)造成服務(wù)器癱瘓。
[0004]本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng),該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的客戶端;其中,
[0005]所述客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連;
[0006]所述客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);
[0007]所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端;
[0008]所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的數(shù)據(jù);
[0009]所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)數(shù)據(jù)的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。[0010]本發(fā)明的有益效果是:本發(fā)明中,數(shù)據(jù)庫(kù)保存在讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器周期性將其存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者的數(shù)據(jù)庫(kù)保持同步。網(wǎng)絡(luò)服務(wù)器根據(jù)客戶端發(fā)送的數(shù)據(jù)庫(kù)操作請(qǐng)求類型(讀數(shù)據(jù)庫(kù)請(qǐng)求和寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求)的不同,分別訪問(wèn)讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,進(jìn)行數(shù)據(jù)的讀取和修改,并將返回?cái)?shù)據(jù)提供給客戶端,完成客戶端對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)過(guò)程。這樣,當(dāng)巨量的數(shù)據(jù)庫(kù)讀、寫(xiě)請(qǐng)求發(fā)送到網(wǎng)絡(luò)服務(wù)器時(shí),讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器分別承擔(dān)一部分訪問(wèn),這降低了單臺(tái)服務(wù)器的訪問(wèn)量,防止了巨量訪問(wèn)造成服務(wù)器發(fā)生癱瘓,同時(shí)也降低了對(duì)于讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的配置要求,一定程度上降低了系統(tǒng)對(duì)服務(wù)器資源的要求以及系統(tǒng)成本。
[0011]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn):
[0012]進(jìn)一步,所述讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量均超過(guò)I臺(tái),所有讀數(shù)據(jù)庫(kù)服務(wù)器組成讀數(shù)據(jù)庫(kù)服務(wù)器集群,所有寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器組成寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群;則
[0013]所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器,從所述目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;從所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端;
[0014]各所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù)并與所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中的其他讀數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;向所述網(wǎng)絡(luò)服務(wù)器提供其要求的數(shù)據(jù);
[0015]各所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù)并與所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的其他寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;保存所述網(wǎng)絡(luò)服務(wù)器對(duì)數(shù)據(jù)的所述修改結(jié)果;
[0016]所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器集群,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0017]進(jìn)一步,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中數(shù)據(jù)條數(shù)不超過(guò)1000條的數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存數(shù)據(jù)表,并周期性將該內(nèi)存數(shù)據(jù)表中的數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù),是則將該數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的數(shù)據(jù),是則修改所述內(nèi)存數(shù)據(jù)表中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
[0018]進(jìn)一步,所述網(wǎng)絡(luò)服務(wù)器還用于:按照合并規(guī)則,將2個(gè)以上的讀數(shù)據(jù)庫(kù)請(qǐng)求合并為合并讀數(shù)據(jù)庫(kù)請(qǐng)求,從所述讀數(shù)據(jù)庫(kù)服務(wù)器一次性獲得所述合并讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的所有數(shù)據(jù)作為返回?cái)?shù)據(jù)分別提供給相應(yīng)客戶端;按照所述合并規(guī)則,將2個(gè)以上的寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求合并為合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,根據(jù)該合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,一次性修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的所有相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)分別提供給相應(yīng)客戶端;
[0019]其中,所述合并規(guī)則包括:
[0020]請(qǐng)求執(zhí)行的操作的類型相同,則合并;[0021]和/或,請(qǐng)求執(zhí)行的操作之間具有關(guān)聯(lián)性,則合并。
[0022]本發(fā)明還提供了一種注冊(cè)系統(tǒng),該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的注冊(cè)客戶端;其中,
[0023]所述注冊(cè)客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連;
[0024]所述注冊(cè)客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);
[0025]所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼作為返回?cái)?shù)據(jù)提供給所述注冊(cè)客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述注冊(cè)客戶端;
[0026]所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的注冊(cè)碼;
[0027]所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)注冊(cè)碼的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0028]進(jìn)一步,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中注冊(cè)碼的條數(shù)不超過(guò)1000條的注冊(cè)碼表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存注冊(cè)碼表,并周期性將該內(nèi)存注冊(cè)碼表中的注冊(cè)碼提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存注冊(cè)碼表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼,是則將該注冊(cè)碼作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存注冊(cè)碼表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的注冊(cè)碼,是則修改所述內(nèi)存注冊(cè)碼表中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
[0029]本發(fā)明還提供了一種訂票系統(tǒng),該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的訂票客戶端;其中,
[0030]所述訂票客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連;
[0031]所述訂票客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);
[0032]所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述訂票客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述訂票客戶端;
[0033]所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的票務(wù)數(shù)據(jù);
[0034]所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)票務(wù)數(shù)據(jù)的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0035]進(jìn)一步,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中票務(wù)數(shù)據(jù)的條數(shù)不超過(guò)1000條的票務(wù)數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存票務(wù)數(shù)據(jù)表,并周期性將該內(nèi)存票務(wù)數(shù)據(jù)表中的票務(wù)數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存票務(wù)數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù),是則將該票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存票務(wù)數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的票務(wù)數(shù)據(jù),是則修改所述內(nèi)存票務(wù)數(shù)據(jù)表中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
[0036]本發(fā)明還提供了一種網(wǎng)購(gòu)系統(tǒng),該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的網(wǎng)購(gòu)客戶端;其中,
[0037]所述網(wǎng)購(gòu)客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連;
[0038]所述網(wǎng)購(gòu)客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);
[0039]所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述網(wǎng)購(gòu)客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述網(wǎng)購(gòu)客戶端;
[0040]所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的商品數(shù)據(jù);
[0041]所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)商品數(shù)據(jù)的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0042]進(jìn)一步,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中商品數(shù)據(jù)的條數(shù)不超過(guò)1000條的商品數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存商品數(shù)據(jù)表,并周期性將該內(nèi)存商品數(shù)據(jù)表中的商品數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存商品數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù),是則將該商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存商品數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的商品數(shù)據(jù),是則修改所述內(nèi)存商品數(shù)據(jù)表中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
[0043]本發(fā)明還提供了一種訪問(wèn)數(shù)據(jù)庫(kù)的方法,該方法基于上述的系統(tǒng);該方法包括:
[0044]步驟1:各客戶端向網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求或?qū)憯?shù)據(jù)庫(kù)請(qǐng)求;
[0045]步驟2:所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù);所述網(wǎng)絡(luò)服務(wù)器根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù);
[0046]步驟3:所述網(wǎng)絡(luò)服務(wù)器將所述返回?cái)?shù)據(jù)提供給相應(yīng)的客戶端;
[0047]步驟4:所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。[0048]進(jìn)一步,所述讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量均超過(guò)I臺(tái),所有讀數(shù)據(jù)庫(kù)服務(wù)器組成讀數(shù)據(jù)庫(kù)服務(wù)器集群,所有寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器組成寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群;則
[0049]在所述步驟I之后,在所述步驟2之前,還包括步驟12-1:所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器;所述網(wǎng)絡(luò)服務(wù)器從所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器;
[0050]所述步驟2的方法為:所述網(wǎng)絡(luò)服務(wù)器從所述目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù);所述網(wǎng)絡(luò)服務(wù)器根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù);各所述讀數(shù)據(jù)庫(kù)服務(wù)器與所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中的其他讀數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;各所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器與所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的其他寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;
[0051]所述步驟4的方法為:所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器集群,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0052]進(jìn)一步,所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中的讀數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量為M,所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量為N,M和N均為大于I的整數(shù);則所述步驟12-1中:
[0053]所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器的方法為:所述網(wǎng)絡(luò)服務(wù)器將所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中序號(hào)為i%M的讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器為所述讀數(shù)據(jù)庫(kù)請(qǐng)求的序號(hào),i%M為求模運(yùn)算;
[0054]所述網(wǎng)絡(luò)服務(wù)器從所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的方法為:所述網(wǎng)絡(luò)服務(wù)器將所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中序號(hào)為j%N的寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器;j為所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的序號(hào),j%N為求模運(yùn)算。
[0055]進(jìn)一步,i和j均為靜態(tài)變量。
[0056]進(jìn)一步,所述數(shù)據(jù)庫(kù)中數(shù)據(jù)條數(shù)不超過(guò)1000條的數(shù)據(jù)表保存到所述網(wǎng)絡(luò)服務(wù)器的內(nèi)存中,構(gòu)成內(nèi)存數(shù)據(jù)表;則
[0057]在所述步驟I之后,在所述步驟2之前,還包括步驟12-2:所述網(wǎng)絡(luò)服務(wù)器判斷所述內(nèi)存數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù),是則將該數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;所述網(wǎng)絡(luò)服務(wù)器判斷所述內(nèi)存數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的數(shù)據(jù),是則修改所述內(nèi)存數(shù)據(jù)表中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端;
[0058]所述步驟4還包括:所述網(wǎng)絡(luò)服務(wù)器周期性將所述內(nèi)存數(shù)據(jù)表中的數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步。
[0059]進(jìn)一步,在所述步驟I之后,在所述步驟2之前,還包括步驟12-3:所述網(wǎng)絡(luò)服務(wù)器按照合并規(guī)則,將2個(gè)以上的讀數(shù)據(jù)庫(kù)請(qǐng)求合并為合并讀數(shù)據(jù)庫(kù)請(qǐng)求,將2個(gè)以上的寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求合并為合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;
[0060]所述步驟2的方法為:所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器一次性獲得所述合并讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的所有數(shù)據(jù)作為返回?cái)?shù)據(jù);所述網(wǎng)絡(luò)服務(wù)器根據(jù)所述合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,一次性修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的所有相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù);
[0061]所述步驟3的方法為:所述網(wǎng)絡(luò)服務(wù)器將所述返回?cái)?shù)據(jù)分別提供給相應(yīng)的客戶端;
[0062]其中,所述合并規(guī)則包括:
[0063]請(qǐng)求執(zhí)行的操作的類型相同,則合并;
[0064]和/或,請(qǐng)求執(zhí)行的操作之間具有關(guān)聯(lián)性,則合并。
【專利附圖】
【附圖說(shuō)明】
[0065]圖1為本發(fā)明提出的訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)的結(jié)構(gòu)圖;
[0066]圖2為本發(fā)明提出的訪問(wèn)數(shù)據(jù)庫(kù)的方法的流程圖。
【具體實(shí)施方式】
[0067]以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0068]本發(fā)明提出了一種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng),圖1為該系統(tǒng)的結(jié)構(gòu)圖。如圖1所示,該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器102、讀數(shù)據(jù)庫(kù)服務(wù)器103、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104、一臺(tái)以上的客戶端101。如圖1所示,客戶端101與網(wǎng)絡(luò)服務(wù)器102通過(guò)網(wǎng)絡(luò)連接,該網(wǎng)絡(luò)可為互聯(lián)網(wǎng),也可為其他的網(wǎng)絡(luò),如專網(wǎng)等等。網(wǎng)絡(luò)服務(wù)器102分別與讀數(shù)據(jù)庫(kù)服務(wù)器103和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104相連。
[0069]本發(fā)明中,客戶端101用于,向網(wǎng)絡(luò)服務(wù)器102發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從網(wǎng)絡(luò)服務(wù)器102獲得返回?cái)?shù)據(jù)??蛻舳?01可用計(jì)算機(jī)、平板電腦、手機(jī)等任意可通過(guò)網(wǎng)絡(luò)與網(wǎng)絡(luò)服務(wù)器102建立通信連接的設(shè)備實(shí)現(xiàn)。
[0070]本發(fā)明中的網(wǎng)絡(luò)服務(wù)器102是整個(gè)系統(tǒng)的工作核心,其響應(yīng)客戶端101的各種請(qǐng)求,并將返回?cái)?shù)據(jù)發(fā)送到相應(yīng)客戶端,這里的返回?cái)?shù)據(jù)來(lái)自讀數(shù)據(jù)庫(kù)服務(wù)器103或?qū)憯?shù)據(jù)庫(kù)服務(wù)器104中所存儲(chǔ)的數(shù)據(jù)庫(kù)?;谝陨峡紤],網(wǎng)絡(luò)服務(wù)器102用于,從讀數(shù)據(jù)庫(kù)服務(wù)器103獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端101 ;根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端101。可見(jiàn),網(wǎng)絡(luò)服務(wù)器102對(duì)讀數(shù)據(jù)庫(kù)服務(wù)器103和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104具有調(diào)度功能。
[0071]讀數(shù)據(jù)庫(kù)服務(wù)器103用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向網(wǎng)絡(luò)服務(wù)器102提供其要求的數(shù)據(jù);
[0072]寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存網(wǎng)絡(luò)服務(wù)器102對(duì)數(shù)據(jù)的修改結(jié)果;周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器103,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同
止/J/ O
[0073]本發(fā)明中,寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104與讀數(shù)據(jù)庫(kù)服務(wù)器103進(jìn)行數(shù)據(jù)庫(kù)的同步的周期可預(yù)先設(shè)置,也可由網(wǎng)絡(luò)服務(wù)器102根據(jù)具體訪問(wèn)情況來(lái)設(shè)置。例如,在客戶端的訪問(wèn)量較小時(shí),可將該周期設(shè)置地較長(zhǎng),以減少讀數(shù)據(jù)庫(kù)服務(wù)器103與寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104之間的數(shù)據(jù)交互量;在客戶端訪問(wèn)量較大時(shí),則可將該周期設(shè)置地較短,以盡快實(shí)現(xiàn)二者的數(shù)據(jù)同步,防止因數(shù)據(jù)更新太慢而發(fā)生錯(cuò)誤。
[0074]由此可見(jiàn),本發(fā)明中,數(shù)據(jù)庫(kù)保存在讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器周期性將其存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者的數(shù)據(jù)庫(kù)保持同步。網(wǎng)絡(luò)服務(wù)器根據(jù)客戶端發(fā)送的數(shù)據(jù)庫(kù)操作請(qǐng)求類型(讀數(shù)據(jù)庫(kù)請(qǐng)求和寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求)的不同,分別訪問(wèn)讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,進(jìn)行數(shù)據(jù)的讀取和修改,并將返回?cái)?shù)據(jù)提供給客戶端,完成客戶端對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)過(guò)程。這樣,當(dāng)巨量的數(shù)據(jù)庫(kù)讀、寫(xiě)請(qǐng)求發(fā)送到網(wǎng)絡(luò)服務(wù)器時(shí),讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器分別承擔(dān)一部分訪問(wèn),這降低了單臺(tái)服務(wù)器的訪問(wèn)量,防止了巨量訪問(wèn)造成服務(wù)器發(fā)生癱瘓,同時(shí)也降低了對(duì)于讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的配置要求,一定程度上降低了系統(tǒng)對(duì)服務(wù)器資源的要求以及系統(tǒng)成本。
[0075]在客戶端的瞬間訪問(wèn)量特別大的情況,還可以增加讀數(shù)據(jù)庫(kù)服務(wù)器103以及寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104的數(shù)量,即讀數(shù)據(jù)庫(kù)服務(wù)器103和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104的數(shù)量均超過(guò)I臺(tái),所有讀數(shù)據(jù)庫(kù)服務(wù)器103組成讀數(shù)據(jù)庫(kù)服務(wù)器集群,所有寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104組成寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群。這種情況下:
[0076]網(wǎng)絡(luò)服務(wù)器102還需要具有分配工作任務(wù)的功能,使各讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器都處于工作狀態(tài),盡可能提高響應(yīng)速度。因此,網(wǎng)絡(luò)服務(wù)器102還要用于,從讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器,從目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端101 ;從寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端101。
[0077]各讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù)并與讀數(shù)據(jù)庫(kù)服務(wù)器集群中的其他讀數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;向網(wǎng)絡(luò)服務(wù)器102提供其要求的數(shù)據(jù);
[0078]各寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù)并與寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的其他寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;保存網(wǎng)絡(luò)服務(wù)器102對(duì)數(shù)據(jù)的修改結(jié)果;
[0079]由于讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器均組成了集群,因而在同一集群內(nèi)部也需要保持?jǐn)?shù)據(jù)庫(kù)的同步,這樣,每臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器都要與讀數(shù)據(jù)庫(kù)服務(wù)器集群中的其他讀數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步,每臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器都要與寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的其他寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步,該同步可以是周期性的,而且該周期可以設(shè)置地比較小,以盡可能保證同一集群內(nèi)部各數(shù)據(jù)庫(kù)的同一性。
[0080]另外,讀數(shù)據(jù)庫(kù)服務(wù)器與寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器也要保持?jǐn)?shù)據(jù)庫(kù)的同步,該同步可以集群為單位進(jìn)行,即:寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器集群,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。以集群為單位進(jìn)行讀、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器之間的數(shù)據(jù)庫(kù)的同步,可減少兩個(gè)集群之間的數(shù)據(jù)交互量,提高同步的速度。
[0081]本發(fā)明已將客戶端發(fā)送的請(qǐng)求按照讀數(shù)據(jù)庫(kù)請(qǐng)求和寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的不同分為兩類,網(wǎng)絡(luò)服務(wù)器分別對(duì)讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行操作,從而及時(shí)響應(yīng)以上兩類請(qǐng)求,并降低每臺(tái)服務(wù)器的工作量。在此基礎(chǔ)上,網(wǎng)絡(luò)服務(wù)器102還可以將數(shù)據(jù)量較小、而被訪問(wèn)量特別大的數(shù)據(jù)表存入自身的內(nèi)存中,從而可以進(jìn)一步減少對(duì)兩類服務(wù)器的訪問(wèn)量,并進(jìn)一步提高響應(yīng)速度?;谠摽紤],網(wǎng)絡(luò)服務(wù)器102還用于,將數(shù)據(jù)庫(kù)中數(shù)據(jù)條數(shù)不超過(guò)1000條的數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存數(shù)據(jù)表,并周期性將該內(nèi)存數(shù)據(jù)表中的數(shù)據(jù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器103,保持?jǐn)?shù)據(jù)的同步;判斷內(nèi)存數(shù)據(jù)表是否包含讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù),是則將該數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端101,否則,從讀數(shù)據(jù)庫(kù)服務(wù)器103獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端101 ;判斷內(nèi)存數(shù)據(jù)表是否包含寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的數(shù)據(jù),是則修改內(nèi)存數(shù)據(jù)表中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端101,否則,根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端101。
[0082]本發(fā)明中,查詢數(shù)據(jù)庫(kù)的訪問(wèn)可認(rèn)為是讀數(shù)據(jù)庫(kù)操作,而刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)、更改數(shù)據(jù)庫(kù)中的數(shù)據(jù)、向數(shù)據(jù)庫(kù)中增加數(shù)據(jù)等可認(rèn)為是寫(xiě)數(shù)據(jù)庫(kù)操作(即上述的修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)的操作)。現(xiàn)有的對(duì)數(shù)據(jù)庫(kù)的讀或?qū)懖僮?,多用SQL語(yǔ)句來(lái)實(shí)現(xiàn),如select_A是對(duì)數(shù)據(jù)A進(jìn)行查詢操作,delete_B則是對(duì)數(shù)據(jù)B進(jìn)行刪除操作,update_C和insert_D則分別是對(duì)數(shù)據(jù)C進(jìn)行更改操作和向數(shù)據(jù)庫(kù)中增加數(shù)據(jù)D操作。而SQL語(yǔ)言的編程特點(diǎn)是可以進(jìn)行語(yǔ)句的合并,這就為本發(fā)明合并客戶端發(fā)送的各種請(qǐng)求提供了依據(jù)。本發(fā)明通過(guò)合并客戶端的請(qǐng)求,可以實(shí)現(xiàn)多個(gè)請(qǐng)求的一次性響應(yīng),這極大地提高了本發(fā)明的響應(yīng)速度。
[0083]這里,網(wǎng)絡(luò)服務(wù)器102還用于:按照合并規(guī)則,將2個(gè)以上的讀數(shù)據(jù)庫(kù)請(qǐng)求合并為合并讀數(shù)據(jù)庫(kù)請(qǐng)求,從讀數(shù)據(jù)庫(kù)服務(wù)器103 —次性獲得合并讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的所有數(shù)據(jù)作為返回?cái)?shù)據(jù)分別提供給相應(yīng)客戶端;按照合并規(guī)則,將2個(gè)以上的寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求合并為合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,根據(jù)該合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,一次性修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器104中的所有相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)分別提供給相應(yīng)客戶端。
[0084]其中的合并規(guī)則包括:請(qǐng)求執(zhí)行的操作的類型相同,則合并;和/或,請(qǐng)求執(zhí)行的操作之間具有關(guān)聯(lián)性,則合并。
[0085]該合并規(guī)則涉及操作的類型和操作之間的關(guān)聯(lián)性兩個(gè)概念。操作的類型的含義顯而易見(jiàn),即讀數(shù)據(jù)庫(kù)操作的類型和寫(xiě)數(shù)據(jù)庫(kù)的類型,例如,2個(gè)讀數(shù)據(jù)庫(kù)請(qǐng)求均為查詢數(shù)據(jù)的請(qǐng)求,即使二者所要查詢的數(shù)據(jù)不同,但二者的類型是相同的,其他操作的類型(刪除數(shù)據(jù)、增加數(shù)據(jù)、更改數(shù)據(jù)等)可依此類推。操作之間的關(guān)聯(lián)性,指的是2項(xiàng)以上的操作具有邏輯、數(shù)量上的關(guān)聯(lián)性,其源于數(shù)據(jù)庫(kù)中的數(shù)據(jù)在邏輯、數(shù)量上之間具有關(guān)聯(lián)性。例如在數(shù)據(jù)庫(kù)中,E、F和G這三個(gè)數(shù)據(jù)具有E+F=G的關(guān)系,如果客戶端提供的2個(gè)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求分別為:刪除數(shù)據(jù)E、將數(shù)據(jù)G減少E,則這兩個(gè)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求就存在上述的邏輯和數(shù)量上的關(guān)聯(lián)性,二者可以一次性執(zhí)行,這也能夠防止因服務(wù)器的癱瘓而發(fā)生錯(cuò)誤。其他的操作之間的關(guān)聯(lián)性依此類推。
[0086]存儲(chǔ)過(guò)程(Stored Procedure)是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它。
[0087]由于讀或?qū)憯?shù)據(jù)庫(kù)的操作多采用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn),而存儲(chǔ)過(guò)程是不能對(duì)讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行分辨的,更不能進(jìn)一步對(duì)讀數(shù)據(jù)庫(kù)服務(wù)器集群中的各讀數(shù)據(jù)庫(kù)服務(wù)器以及寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的各寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行區(qū)分。為了使網(wǎng)絡(luò)服務(wù)器中進(jìn)行服務(wù)器調(diào)度的模塊能夠準(zhǔn)確識(shí)別讀數(shù)據(jù)庫(kù)操作和寫(xiě)數(shù)據(jù)庫(kù)操作,本發(fā)明在表示讀數(shù)據(jù)庫(kù)操作和寫(xiě)數(shù)據(jù)庫(kù)操作的存儲(chǔ)過(guò)程前面加上一定的前綴,以對(duì)二者加以區(qū)分。該前綴的形式可以為SP_XXX的形式,其中的“SP”表示該語(yǔ)句為讀數(shù)據(jù)庫(kù)操作或?qū)憯?shù)據(jù)庫(kù)操作中的一種,以有別于其他種類的操作(如管理操作等),“XXX”表示讀數(shù)據(jù)庫(kù)操作或?qū)憯?shù)據(jù)庫(kù)操作,該XXX可以為SEL (表示讀數(shù)據(jù)庫(kù)操作)和UPD (表示寫(xiě)數(shù)據(jù)庫(kù)操作)中的一種。例如,在表示查詢數(shù)據(jù)A (—種讀數(shù)據(jù)庫(kù)操作)的SQL語(yǔ)句“select_A”的前面加上前綴“SP_SEL”,組成“SP_SEL_select_A”,表示該操作是要執(zhí)行讀數(shù)據(jù)庫(kù)操作,具體的用于操作的SQL語(yǔ)句可在剔除前綴之后得到,為“select_A”(表示查詢數(shù)據(jù)A的操作);同樣,在表示刪除數(shù)據(jù)B的SQL語(yǔ)句“delete_B”的前面加上前綴“SP_UPD”組成語(yǔ)句“SP_UPD_delete_B”,表示該操作為寫(xiě)數(shù)據(jù)庫(kù)操作,剔除前綴之后可得到相應(yīng)的操作用SQL語(yǔ)句“delete_B”。其余的讀數(shù)據(jù)庫(kù)操作和寫(xiě)數(shù)據(jù)庫(kù)操作的SQL語(yǔ)句前加前綴的方法與此類似,不再贅述。需要說(shuō)明的是,前綴中的“SP”、“SEL”以及“UPD”的具體形式都可以用其他字母或字母組合來(lái)表示,也都在本發(fā)明的保護(hù)范圍之內(nèi)。
[0088]基于以上的系統(tǒng)架構(gòu),本發(fā)明可以提出多種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)的實(shí)施例。例如,本發(fā)明可以提出一種注冊(cè)系統(tǒng),該系統(tǒng)的結(jié)構(gòu)與圖1相同,其包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的注冊(cè)客戶端;其中,注冊(cè)客戶端與網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,網(wǎng)絡(luò)服務(wù)器分別與讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連。
[0089]注冊(cè)客戶端用于,向網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);
[0090]網(wǎng)絡(luò)服務(wù)器用于,從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼作為返回?cái)?shù)據(jù)提供給注冊(cè)客戶端;根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給注冊(cè)客戶端;
[0091]讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向網(wǎng)絡(luò)服務(wù)器提供其要求的注冊(cè)碼;
[0092]寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存網(wǎng)絡(luò)服務(wù)器對(duì)注冊(cè)碼的修改結(jié)果;周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0093]該注冊(cè)系統(tǒng)可以應(yīng)用于軟件的網(wǎng)絡(luò)認(rèn)證等領(lǐng)域。例如,用戶使用企業(yè)生產(chǎn)的一種或多種軟件,就需要定期向該企業(yè)進(jìn)行認(rèn)證(如每年認(rèn)證一次),以確定下個(gè)周期內(nèi)是否還使用該軟件,并在確定使用該軟件之后進(jìn)行使用費(fèi)的繳費(fèi)。由于軟件的客戶使用量通常都很大,因而通過(guò)網(wǎng)絡(luò)來(lái)完成上述的認(rèn)證工作就成了最為可行的選擇。利用本發(fā)明提供的上述注冊(cè)系統(tǒng),各用戶可以通過(guò)自己的注冊(cè)客戶端(如計(jì)算機(jī)、平板電腦、手機(jī)等設(shè)備)向網(wǎng)絡(luò)服務(wù)器提交讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,以確定下一階段所要使用的軟件,并進(jìn)行相應(yīng)的繳費(fèi),其中的注冊(cè)碼是用戶使用相應(yīng)軟件的憑證,也是其繳費(fèi)的依據(jù),每個(gè)注冊(cè)碼與一套軟件在下一階段的使用權(quán)相對(duì)應(yīng),繳費(fèi)之后獲取了該注冊(cè)碼,用戶就取得了相應(yīng)軟件在下一階段的使用權(quán)。而用戶獲取的該注冊(cè)碼也要在數(shù)據(jù)庫(kù)中進(jìn)行保存,以備在用戶丟失該注冊(cè)碼時(shí)通過(guò)網(wǎng)絡(luò)查詢(即寫(xiě)數(shù)據(jù)庫(kù)操作)重新獲得。
[0094]該注冊(cè)系統(tǒng)中,網(wǎng)絡(luò)服務(wù)器還可以將被頻繁訪問(wèn)但數(shù)據(jù)量較小的數(shù)據(jù)表保存在自身的內(nèi)存中,以進(jìn)一步提高響應(yīng)速度。因此,網(wǎng)絡(luò)服務(wù)器用于,將數(shù)據(jù)庫(kù)中注冊(cè)碼的條數(shù)不超過(guò)1000條的注冊(cè)碼表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存注冊(cè)碼表,并周期性將該內(nèi)存注冊(cè)碼表中的注冊(cè)碼提供給讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷內(nèi)存注冊(cè)碼表是否包含讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼,是則將該注冊(cè)碼作為返回?cái)?shù)據(jù)提供給客戶端,否則,從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼作為返回?cái)?shù)據(jù)提供給客戶端;判斷內(nèi)存注冊(cè)碼表是否包含寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的注冊(cè)碼,是則修改內(nèi)存注冊(cè)碼表中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端,否則,根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端。
[0095]本發(fā)明還可以應(yīng)用于網(wǎng)絡(luò)訂票領(lǐng)域,從而提出一種訂票系統(tǒng),該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的訂票客戶端;其中,訂票客戶端與網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,網(wǎng)絡(luò)服務(wù)器分別與讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連。
[0096]訂票客戶端用于,向網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);
[0097]網(wǎng)絡(luò)服務(wù)器用于,從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給訂票客戶端;根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給訂票客戶端;
[0098]讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向網(wǎng)絡(luò)服務(wù)器提供其要求的票務(wù)數(shù)據(jù);
[0099]寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存網(wǎng)絡(luò)服務(wù)器對(duì)票務(wù)數(shù)據(jù)的修改結(jié)果;周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0100]同樣,網(wǎng)絡(luò)服務(wù)器也可以將被頻繁訪問(wèn)而數(shù)據(jù)量較小的數(shù)據(jù)表存在自身的內(nèi)存中,以提高響應(yīng)速度。這里的網(wǎng)絡(luò)服務(wù)器還用于,將數(shù)據(jù)庫(kù)中票務(wù)數(shù)據(jù)的條數(shù)不超過(guò)1000條的票務(wù)數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存票務(wù)數(shù)據(jù)表,并周期性將該內(nèi)存票務(wù)數(shù)據(jù)表中的票務(wù)數(shù)據(jù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷內(nèi)存票務(wù)數(shù)據(jù)表是否包含讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù),是則將該票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端,否則,從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端;判斷內(nèi)存票務(wù)數(shù)據(jù)表是否包含寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的票務(wù)數(shù)據(jù),是則修改內(nèi)存票務(wù)數(shù)據(jù)表中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端,否則,根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端。
[0101]另外,將本發(fā)明應(yīng)用于網(wǎng)絡(luò)購(gòu)物領(lǐng)域,還可以提出一種網(wǎng)購(gòu)系統(tǒng),該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的網(wǎng)購(gòu)客戶端;其中,網(wǎng)購(gòu)客戶端與網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,網(wǎng)絡(luò)服務(wù)器分別與讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連。
[0102]網(wǎng)購(gòu)客戶端用于,向網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù);
[0103]網(wǎng)絡(luò)服務(wù)器用于,從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給網(wǎng)購(gòu)客戶端;根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給網(wǎng)購(gòu)客戶端;
[0104]讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向網(wǎng)絡(luò)服務(wù)器提供其要求的商品數(shù)據(jù);
[0105]寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存網(wǎng)絡(luò)服務(wù)器對(duì)商品數(shù)據(jù)的修改結(jié)果;周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0106]此外,網(wǎng)絡(luò)服務(wù)器還用于,將數(shù)據(jù)庫(kù)中商品數(shù)據(jù)的條數(shù)不超過(guò)1000條的商品數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存商品數(shù)據(jù)表,并周期性將該內(nèi)存商品數(shù)據(jù)表中的商品數(shù)據(jù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷內(nèi)存商品數(shù)據(jù)表是否包含讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù),是則將該商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端,否則,從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端;判斷內(nèi)存商品數(shù)據(jù)表是否包含寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的商品數(shù)據(jù),是則修改內(nèi)存商品數(shù)據(jù)表中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端,否則,根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端。
[0107]可見(jiàn),本發(fā)明的應(yīng)用領(lǐng)域非常廣泛,只要涉及客戶端與網(wǎng)絡(luò)側(cè)的數(shù)據(jù)庫(kù)之間的訪問(wèn)交互,都可以包含在本發(fā)明的保護(hù)范圍之內(nèi)。[0108]本發(fā)明還提出了一種訪問(wèn)數(shù)據(jù)庫(kù)的方法,該方法上述的訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng)。圖2為該方法的流程圖,如圖2所示,該方法包括:
[0109]步驟201:各客戶端向網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求或?qū)憯?shù)據(jù)庫(kù)請(qǐng)求。
[0110]本步驟中,每個(gè)客戶端所發(fā)送的讀數(shù)據(jù)庫(kù)請(qǐng)求或?qū)憯?shù)據(jù)庫(kù)請(qǐng)求的數(shù)量可以僅為一個(gè),也可以為多個(gè);而在同一時(shí)刻,向網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求或?qū)憯?shù)據(jù)庫(kù)請(qǐng)求的客戶端的數(shù)量可以為一臺(tái),也可以為多臺(tái)。
[0111]步驟202:網(wǎng)絡(luò)服務(wù)器從讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù);網(wǎng)絡(luò)服務(wù)器根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)。
[0112]本步驟中,網(wǎng)絡(luò)服務(wù)器必然要對(duì)讀數(shù)據(jù)庫(kù)請(qǐng)求和寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求進(jìn)行甄別,從而判斷所要訪問(wèn)的是讀數(shù)據(jù)庫(kù)服務(wù)器還是寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器。
[0113]讀數(shù)據(jù)庫(kù)請(qǐng)求指的是讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)的請(qǐng)求,查詢數(shù)據(jù)即為一種常見(jiàn)的讀數(shù)據(jù)庫(kù)請(qǐng)求。寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求指的是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改的請(qǐng)求,刪除數(shù)據(jù)、增加數(shù)據(jù)以及更改數(shù)據(jù)是常見(jiàn)的三種寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求。
[0114]本步驟中,網(wǎng)絡(luò)數(shù)據(jù)庫(kù)根據(jù)讀數(shù)據(jù)庫(kù)請(qǐng)求來(lái)訪問(wèn)讀數(shù)據(jù)庫(kù)服務(wù)器,從其存儲(chǔ)的數(shù)據(jù)庫(kù)中獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù),將其作為返回?cái)?shù)據(jù)提供給相應(yīng)客戶端,從而完成對(duì)該讀數(shù)據(jù)庫(kù)請(qǐng)求的響應(yīng)。
[0115]網(wǎng)絡(luò)數(shù)據(jù)庫(kù)還根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求來(lái)訪問(wèn)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,對(duì)其存儲(chǔ)的數(shù)據(jù)庫(kù)中的相應(yīng)數(shù)據(jù)進(jìn)行寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求的修改(如刪除、增加、更改等)后,將修改結(jié)果作為返回?cái)?shù)據(jù)提供給相應(yīng)客戶端,從而完成對(duì)該寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的響應(yīng)。
[0116]步驟203:網(wǎng)絡(luò)服務(wù)器將返回?cái)?shù)據(jù)提供給相應(yīng)的客戶端。
[0117]由于本發(fā)明將讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器分開(kāi),分別執(zhí)行讀數(shù)據(jù)庫(kù)的操作和寫(xiě)數(shù)據(jù)庫(kù)的操作,因而網(wǎng)絡(luò)服務(wù)器可以同時(shí)獲得多個(gè)返回?cái)?shù)據(jù),進(jìn)而將各返回?cái)?shù)據(jù)提供給相應(yīng)客戶端。這就必然涉及網(wǎng)絡(luò)服務(wù)器對(duì)客戶端的標(biāo)記,該標(biāo)記工作可利用客戶端編號(hào)來(lái)完成,本發(fā)明中,各客戶端對(duì)應(yīng)的客戶端編號(hào)互不相同,從而防止返回?cái)?shù)據(jù)的錯(cuò)誤。
[0118]步驟204:寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0119]該步驟是讀數(shù)據(jù)庫(kù)服務(wù)器與寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器所存儲(chǔ)的數(shù)據(jù)庫(kù)的同步操作步驟。寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求會(huì)引起數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化,如果不執(zhí)行本步驟,隨著時(shí)間的推移,讀數(shù)據(jù)庫(kù)服務(wù)器與寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)庫(kù)會(huì)完全不相同,從而引起數(shù)據(jù)的讀、寫(xiě)不一致,引發(fā)系統(tǒng)錯(cuò)誤。
[0120]本步驟中的同步操作的周期可以預(yù)先設(shè)置,也可以由網(wǎng)絡(luò)服務(wù)器根據(jù)情況設(shè)定。
[0121]在讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量均超過(guò)I臺(tái)的情況下,本發(fā)明將所有讀數(shù)據(jù)庫(kù)服務(wù)器組成讀數(shù)據(jù)庫(kù)服務(wù)器集群,將所有寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器組成寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群;則在步驟201之后,在步驟202之前,還可以包括步驟2012-1:網(wǎng)絡(luò)服務(wù)器從讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器;網(wǎng)絡(luò)服務(wù)器從寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器。
[0122]步驟202的方法為:網(wǎng)絡(luò)服務(wù)器從目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器獲得讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù);網(wǎng)絡(luò)服務(wù)器根據(jù)寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù);各讀數(shù)據(jù)庫(kù)服務(wù)器與讀數(shù)據(jù)庫(kù)服務(wù)器集群中的其他讀數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;各寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器與寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的其他寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步。
[0123]步驟204的方法為:寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器集群,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
[0124]如果讀數(shù)據(jù)庫(kù)服務(wù)器集群中的讀數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量為M,寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量為N,M和N均為大于I的整數(shù)。則步驟2012-1中:
[0125]網(wǎng)絡(luò)服務(wù)器從讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器的方法為:網(wǎng)絡(luò)服務(wù)器將讀數(shù)據(jù)庫(kù)服務(wù)器集群中序號(hào)為i%M的讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器;i為讀數(shù)據(jù)庫(kù)請(qǐng)求的序號(hào),i%M為求模運(yùn)算;
[0126]網(wǎng)絡(luò)服務(wù)器從寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的方法為:網(wǎng)絡(luò)服務(wù)器將寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中序號(hào)為j%N的寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器;j為寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的序號(hào),j%N為求模運(yùn)算。
[0127]可見(jiàn),在客戶端發(fā)送的讀數(shù)據(jù)庫(kù)請(qǐng)求和寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的數(shù)量過(guò)大的情況下,網(wǎng)絡(luò)服務(wù)器可利用求模方式來(lái)為讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器分配任務(wù),均衡各服務(wù)器的工作量,盡可能提高響應(yīng)速度,降低客戶端的等待時(shí)間。求模運(yùn)算的實(shí)例如下:如果i為101,M為10,則i%M的計(jì)算結(jié)果為I (即101除以10后得到的余數(shù)為I)。j%N的運(yùn)算方法與此相同。
[0128]在實(shí)際應(yīng)用中,上述的序號(hào)i和j可以均設(shè)為靜態(tài)變量,以提高線程的安全性。
[0129]本發(fā)明中,對(duì)于數(shù)據(jù)庫(kù)(讀數(shù)據(jù)庫(kù)服務(wù)器所存儲(chǔ)的數(shù)據(jù)庫(kù))中數(shù)據(jù)條數(shù)不超過(guò)1000條的數(shù)據(jù)表,如果訪問(wèn)特別頻繁,可將其保存到網(wǎng)絡(luò)服務(wù)器的內(nèi)存中,構(gòu)成內(nèi)存數(shù)據(jù)表;則在步驟201之后,在步驟202之前,還包括步驟2012-2:網(wǎng)絡(luò)服務(wù)器判斷內(nèi)存數(shù)據(jù)表是否包含讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù),是則將該數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給客戶端;網(wǎng)絡(luò)服務(wù)器判斷內(nèi)存數(shù)據(jù)表是否包含寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的數(shù)據(jù),是則修改內(nèi)存數(shù)據(jù)表中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給客戶端;
[0130]步驟204還包括:網(wǎng)絡(luò)服務(wù)器周期性將內(nèi)存數(shù)據(jù)表中的數(shù)據(jù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步。
[0131]此外,本發(fā)明還可以進(jìn)行請(qǐng)求的合并,從而一次性完成多項(xiàng)請(qǐng)求,大幅提高本發(fā)明的響應(yīng)速度。則在步驟201之后,在步驟202之前,還可以包括步驟2012-3:網(wǎng)絡(luò)服務(wù)器按照合并規(guī)則,將2個(gè)以上的讀數(shù)據(jù)庫(kù)請(qǐng)求合并為合并讀數(shù)據(jù)庫(kù)請(qǐng)求,將2個(gè)以上的寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求合并為合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求。
[0132]步驟202的方法為:網(wǎng)絡(luò)服務(wù)器從讀數(shù)據(jù)庫(kù)服務(wù)器一次性獲得合并讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的所有數(shù)據(jù)作為返回?cái)?shù)據(jù);網(wǎng)絡(luò)服務(wù)器根據(jù)合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,一次性修改寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的所有相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù);
[0133]步驟203的方法為:網(wǎng)絡(luò)服務(wù)器將返回?cái)?shù)據(jù)分別提供給相應(yīng)的客戶端;
[0134]其中,合并規(guī)則包括:請(qǐng)求執(zhí)行的操作的類型相同,則合并;和/或,請(qǐng)求執(zhí)行的操作之間具有關(guān)聯(lián)性,則合并。
[0135]由此可見(jiàn),本發(fā)明具有以下優(yōu)點(diǎn):
[0136]( I)本發(fā)明中,數(shù)據(jù)庫(kù)保存在讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器周期性將其存儲(chǔ)的數(shù)據(jù)庫(kù)提供給讀數(shù)據(jù)庫(kù)服務(wù)器,使二者的數(shù)據(jù)庫(kù)保持同步。網(wǎng)絡(luò)服務(wù)器根據(jù)客戶端發(fā)送的數(shù)據(jù)庫(kù)操作請(qǐng)求類型(讀數(shù)據(jù)庫(kù)請(qǐng)求和寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求)的不同,分別訪問(wèn)讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,進(jìn)行數(shù)據(jù)的讀取和修改,并將返回?cái)?shù)據(jù)提供給客戶端,完成客戶端對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)過(guò)程。這樣,當(dāng)巨量的數(shù)據(jù)庫(kù)讀、寫(xiě)請(qǐng)求發(fā)送到網(wǎng)絡(luò)服務(wù)器時(shí),讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器分別承擔(dān)一部分訪問(wèn),這降低了單臺(tái)服務(wù)器的訪問(wèn)量,防止了巨量訪問(wèn)造成服務(wù)器發(fā)生癱瘓,同時(shí)也降低了對(duì)于讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的配置要求,一定程度上降低了系統(tǒng)對(duì)服務(wù)器資源的要求以及系統(tǒng)成本。
[0137](2)本發(fā)明以集群為單位進(jìn)行讀、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器之間的數(shù)據(jù)庫(kù)的同步,可減少兩個(gè)集群之間的數(shù)據(jù)交互量,提高同步的速度。
[0138](3)本發(fā)明中,網(wǎng)絡(luò)服務(wù)器將數(shù)據(jù)條數(shù)不超過(guò)1000條、而被訪問(wèn)量特別大的數(shù)據(jù)表存入自身的內(nèi)存中,進(jìn)一步減少了對(duì)兩類服務(wù)器的訪問(wèn)量,并提高了本發(fā)明的響應(yīng)速度。
[0139](4)本發(fā)明通過(guò)合并客戶端的請(qǐng)求,可以實(shí)現(xiàn)多個(gè)請(qǐng)求的一次性響應(yīng),這極大地提高了本發(fā)明的響應(yīng)速度。
[0140]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種訪問(wèn)數(shù)據(jù)庫(kù)的系統(tǒng),其特征在于,該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的客戶端;其中, 所述客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連; 所述客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù); 所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端; 所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的數(shù)據(jù); 所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)數(shù)據(jù)的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持冋步。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量均超過(guò)I臺(tái),所有讀數(shù)據(jù)庫(kù)服務(wù)器組成讀數(shù)據(jù)庫(kù)服務(wù)器集群,所有寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器組成寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群;則 所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器,從所述目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為 返回?cái)?shù)據(jù)提供給所述客戶端;從所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端; 各所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù)并與所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中的其他讀數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;向所述網(wǎng)絡(luò)服務(wù)器提供其要求的數(shù)據(jù); 各所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù)并與所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的其他寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;保存所述網(wǎng)絡(luò)服務(wù)器對(duì)數(shù)據(jù)的所述修改結(jié)果; 所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器集群,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中數(shù)據(jù)條數(shù)不超過(guò)1000條的數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存數(shù)據(jù)表,并周期性將該內(nèi)存數(shù)據(jù)表中的數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù),是則將該數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的數(shù)據(jù),是則修改所述內(nèi)存數(shù)據(jù)表中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)服務(wù)器還用于:按照合并規(guī)則,將2個(gè)以上的讀數(shù)據(jù)庫(kù)請(qǐng)求合并為合并讀數(shù)據(jù)庫(kù)請(qǐng)求,從所述讀數(shù)據(jù)庫(kù)服務(wù)器一次性獲得所述合并讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的所有數(shù)據(jù)作為返回?cái)?shù)據(jù)分別提供給相應(yīng)客戶端;按照所述合并規(guī)則,將2個(gè)以上的寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求合并為合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,根據(jù)該合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,一次性修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的所有相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)分別提供給相應(yīng)客戶端; 其中,所述合并規(guī)則包括: 請(qǐng)求執(zhí)行的操作的類型相同,則合并; 和/或,請(qǐng)求執(zhí)行的操作之間具有關(guān)聯(lián)性,則合并。
5.一種注冊(cè)系統(tǒng),其特征在于,該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的注冊(cè)客戶端;其中, 所述注冊(cè)客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連; 所述注冊(cè)客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù); 所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼作為返回?cái)?shù)據(jù)提供給所述注冊(cè)客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述注冊(cè)客戶端; 所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的注冊(cè)碼;所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)注冊(cè)碼的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中注冊(cè)碼的條數(shù)不超過(guò)1000條的注冊(cè)碼表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存注冊(cè)碼表,并周期性將該內(nèi)存注冊(cè)碼表中的注冊(cè)碼提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存注冊(cè)碼表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼,是則將該注冊(cè)碼作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的注冊(cè)碼作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存注冊(cè)碼表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的注冊(cè)碼,是則修改所述內(nèi)存注冊(cè)碼表中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)注冊(cè)碼,并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
7.一種訂票系統(tǒng),其特征在于,該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的訂票客戶端;其中, 所述訂票客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連; 所述訂票客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù); 所述網(wǎng)絡(luò)服務(wù)器用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述訂票客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述訂票客戶端; 所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的票務(wù)數(shù)據(jù); 所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)票務(wù)數(shù)據(jù)的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中票務(wù)數(shù)據(jù)的條數(shù)不超過(guò)1000條的票務(wù)數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存票務(wù)數(shù)據(jù)表,并周期性將該內(nèi)存票務(wù)數(shù)據(jù)表中的票務(wù)數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存票務(wù)數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù),是則將該票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的票務(wù)數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存票務(wù)數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的票務(wù)數(shù)據(jù),是則修改所述內(nèi)存票務(wù)數(shù)據(jù)表中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)票務(wù)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
9.一種網(wǎng)購(gòu)系統(tǒng),其特征在于,該系統(tǒng)包括:網(wǎng)絡(luò)服務(wù)器、讀數(shù)據(jù)庫(kù)服務(wù)器、寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器、一臺(tái)以上的網(wǎng)購(gòu)客戶端;其中, 所述網(wǎng)購(gòu)客戶端與所述網(wǎng)絡(luò)服務(wù)器通過(guò)網(wǎng)絡(luò)連接,所述網(wǎng)絡(luò)服務(wù)器分別與所述讀數(shù)據(jù)庫(kù)服務(wù)器和所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器相連; 所述網(wǎng)購(gòu)客戶端用于,向所述網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求及寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求;從所述網(wǎng)絡(luò)服務(wù)器獲得返回?cái)?shù)據(jù); 所述網(wǎng)絡(luò)服務(wù)器 用于,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述網(wǎng)購(gòu)客戶端;根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述網(wǎng)購(gòu)客戶端; 所述讀數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并向所述網(wǎng)絡(luò)服務(wù)器提供其要求的商品數(shù)據(jù); 所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器用于,存儲(chǔ)數(shù)據(jù)庫(kù),并保存所述網(wǎng)絡(luò)服務(wù)器對(duì)商品數(shù)據(jù)的所述修改結(jié)果;周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)服務(wù)器還用于,將所述數(shù)據(jù)庫(kù)中商品數(shù)據(jù)的條數(shù)不超過(guò)1000條的商品數(shù)據(jù)表保存到自身的內(nèi)存中,構(gòu)成內(nèi)存商品數(shù)據(jù)表,并周期性將該內(nèi)存商品數(shù)據(jù)表中的商品數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步;判斷所述內(nèi)存商品數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù),是則將該商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的商品數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;判斷所述內(nèi)存商品數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的商品數(shù)據(jù),是則修改所述內(nèi)存商品數(shù)據(jù)表中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端,否則,根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)商品數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端。
11.一種訪問(wèn)數(shù)據(jù)庫(kù)的方法,該方法基于權(quán)利要求1所述的系統(tǒng);其特征在于,該方法包括:步驟1:各客戶端向網(wǎng)絡(luò)服務(wù)器發(fā)送讀數(shù)據(jù)庫(kù)請(qǐng)求或?qū)憯?shù)據(jù)庫(kù)請(qǐng)求; 步驟2:所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù);所述網(wǎng)絡(luò)服務(wù)器根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù); 步驟3:所述網(wǎng)絡(luò)服務(wù)器將所述返回?cái)?shù)據(jù)提供給相應(yīng)的客戶端; 步驟4:所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器周期性將自身存儲(chǔ)的數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述讀數(shù)據(jù)庫(kù)服務(wù)器和寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量均超過(guò)I臺(tái),所有讀數(shù)據(jù)庫(kù)服務(wù)器組成讀數(shù)據(jù)庫(kù)服務(wù)器集群,所有寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器組成寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群;則 在所述步驟I之后,在所述步驟2之前,還包括步驟12-1:所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器;所述網(wǎng)絡(luò)服務(wù)器從所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器; 所述步驟2的方法為:所述網(wǎng)絡(luò)服務(wù)器從所述目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器獲得所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù)作為返回?cái)?shù)據(jù);所述網(wǎng)絡(luò)服務(wù)器根據(jù)所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,修改所述目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù);各所述讀數(shù)據(jù)庫(kù)服務(wù)器與所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中的其他讀數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步;各所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器與所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的其他寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器保持?jǐn)?shù)據(jù)庫(kù)的同步; 所述步驟4的方法為:所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群周期性將自身存儲(chǔ)的所述數(shù)據(jù)庫(kù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器集群,使二者存儲(chǔ)的數(shù)據(jù)庫(kù)保持同步。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中的讀數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量為M,所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中的寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)量為N,M和N均為大于I的整數(shù);則所述步驟12-1中: 所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器的方法為:所述網(wǎng)絡(luò)服務(wù)器將所述讀數(shù)據(jù)庫(kù)服務(wù)器集群中序號(hào)為i%M的讀數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述讀數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)讀數(shù)據(jù)庫(kù)服務(wù)器為所述讀數(shù)據(jù)庫(kù)請(qǐng)求的序號(hào),i%M為求模運(yùn)算; 所述網(wǎng)絡(luò)服務(wù)器從所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中選中一臺(tái)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器的方法為:所述網(wǎng)絡(luò)服務(wù)器將所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器集群中序號(hào)為j%N的寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器作為對(duì)應(yīng)于所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的目標(biāo)寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器;j為所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求的序號(hào),j%N為求模運(yùn)算。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,i和j均為靜態(tài)變量。
15.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述數(shù)據(jù)庫(kù)中數(shù)據(jù)條數(shù)不超過(guò)1000條的數(shù)據(jù)表保存到所述網(wǎng)絡(luò)服務(wù)器的內(nèi)存中,構(gòu)成內(nèi)存數(shù)據(jù)表;則 在所述步驟I之后,在所述步驟2之前,還包括步驟12-2:所述網(wǎng)絡(luò)服務(wù)器判斷所述內(nèi)存數(shù)據(jù)表是否包含所述讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的數(shù)據(jù),是則將該數(shù)據(jù)作為返回?cái)?shù)據(jù)提供給所述客戶端;所述網(wǎng)絡(luò)服務(wù)器判斷所述內(nèi)存數(shù)據(jù)表是否包含所述寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求所要求修改的數(shù)據(jù),是則修改所述內(nèi)存數(shù)據(jù)表中的相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù)提供給所述客戶端; 所述步驟4還包括:所述網(wǎng)絡(luò)服務(wù)器周期性將所述內(nèi)存數(shù)據(jù)表中的數(shù)據(jù)提供給所述讀數(shù)據(jù)庫(kù)服務(wù)器,保持?jǐn)?shù)據(jù)的同步。
16.根據(jù)權(quán)利要求11所述的方法,其特征在于,在所述步驟1之后,在所述步驟2之前,還包括步驟12-3:所述網(wǎng)絡(luò)服務(wù)器按照合并規(guī)則,將2個(gè)以上的讀數(shù)據(jù)庫(kù)請(qǐng)求合并為合并讀數(shù)據(jù)庫(kù)請(qǐng)求,將2個(gè)以上的寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求合并為合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求; 所述步驟2的方法為:所述網(wǎng)絡(luò)服務(wù)器從所述讀數(shù)據(jù)庫(kù)服務(wù)器一次性獲得所述合并讀數(shù)據(jù)庫(kù)請(qǐng)求所要求的所有數(shù)據(jù)作為返回?cái)?shù)據(jù);所述網(wǎng)絡(luò)服務(wù)器根據(jù)所述合并寫(xiě)數(shù)據(jù)庫(kù)請(qǐng)求,一次性修改所述寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器中的所有相應(yīng)數(shù)據(jù),并將修改結(jié)果作為返回?cái)?shù)據(jù); 所述步驟3的方法為:所述網(wǎng)絡(luò)服務(wù)器將所述返回?cái)?shù)據(jù)分別提供給相應(yīng)的客戶端; 其中,所述合并規(guī)則包括: 請(qǐng)求執(zhí)行的操作的類型相同,則合并; 和/或,請(qǐng)求執(zhí)行的操作之間具有關(guān)聯(lián)性,則合并。
【文檔編號(hào)】G06Q30/00GK103902548SQ201210572366
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2012年12月25日 優(yōu)先權(quán)日:2012年12月25日
【發(fā)明者】魏賀生, 甘景全, 李少維, 張巍, 谷永艷, 姜萬(wàn)良 申請(qǐng)人:航天信息股份有限公司