據(jù);或者,當(dāng)備機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),向主數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù)。
[0049]其中,在步驟S302中,當(dāng)備機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求時(shí),查詢備緩存數(shù)據(jù)庫(kù)是否存儲(chǔ)有業(yè)務(wù)數(shù)據(jù);若查詢備緩存數(shù)據(jù)庫(kù)存儲(chǔ)有業(yè)務(wù)數(shù)據(jù),則從備緩存數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù);若查詢備緩存數(shù)據(jù)庫(kù)沒(méi)有存儲(chǔ)業(yè)務(wù)數(shù)據(jù),則從主數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù)。進(jìn)一步的,在從主數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù)之后,還將業(yè)務(wù)數(shù)據(jù)寫(xiě)入到備緩存數(shù)據(jù)庫(kù)中。
[0050]當(dāng)備機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),首先向主數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù),然后向備緩存數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù)。
[0051]進(jìn)一步的,該方法還包括:當(dāng)主機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求時(shí),從主緩存數(shù)據(jù)庫(kù)或主數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù);或者,當(dāng)主機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),依次向主數(shù)據(jù)庫(kù)和主緩存數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù)。
[0052]本實(shí)施例提供的方法可適用于上述圖1或圖2所示的系統(tǒng)中,主數(shù)據(jù)庫(kù)包括MySQL主數(shù)據(jù)庫(kù)和SSDB主數(shù)據(jù)庫(kù),備數(shù)據(jù)庫(kù)包括MySQL備數(shù)據(jù)庫(kù)和SSDB備數(shù)據(jù)庫(kù);主機(jī)房的主數(shù)據(jù)庫(kù)與備機(jī)房的備數(shù)據(jù)庫(kù)之間雙向同步業(yè)務(wù)數(shù)據(jù)進(jìn)一步包括=MySQL主數(shù)據(jù)庫(kù)和MySQL備數(shù)據(jù)庫(kù)之間雙向同步業(yè)務(wù)數(shù)據(jù),SSDB主數(shù)據(jù)庫(kù)和SSDB備數(shù)據(jù)庫(kù)中間雙向同步業(yè)務(wù)數(shù)據(jù)。
[0053]MySQL主數(shù)據(jù)庫(kù)用于采用分表技術(shù)存儲(chǔ)業(yè)務(wù)數(shù)據(jù);當(dāng)主備機(jī)房的業(yè)務(wù)服務(wù)器從主數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù)時(shí),并發(fā)地從MySQL主數(shù)據(jù)庫(kù)的多個(gè)數(shù)據(jù)表中查詢業(yè)務(wù)數(shù)據(jù),根據(jù)查詢結(jié)果讀取業(yè)務(wù)數(shù)據(jù)。假設(shè)MySQL主數(shù)據(jù)庫(kù)中共有10個(gè)數(shù)據(jù)表,業(yè)務(wù)服務(wù)器可并發(fā)地同時(shí)在10個(gè)數(shù)據(jù)表中查找數(shù)據(jù),在查找到數(shù)據(jù)的數(shù)據(jù)表中讀取數(shù)據(jù)。
[0054]進(jìn)一步的,該方法還包括:當(dāng)主機(jī)房的業(yè)務(wù)服務(wù)器接收到用戶注冊(cè)請(qǐng)求時(shí),為用戶生成符合第一規(guī)則的用戶賬號(hào),將用戶賬號(hào)和用戶注冊(cè)信息寫(xiě)入主緩存數(shù)據(jù)庫(kù)和主數(shù)據(jù)庫(kù)中;當(dāng)備機(jī)房的業(yè)務(wù)服務(wù)器接收到用戶注冊(cè)請(qǐng)求時(shí),為用戶生成符合第二規(guī)則的用戶賬號(hào),將用戶賬號(hào)和用戶注冊(cè)信息寫(xiě)入備緩存數(shù)據(jù)庫(kù)和主數(shù)據(jù)庫(kù)中。第一規(guī)則不同于第二規(guī)則。有關(guān)第一規(guī)則和第二規(guī)則的描述可參見(jiàn)上述實(shí)施例。
[0055]本方法中,主數(shù)據(jù)庫(kù)中存儲(chǔ)有系統(tǒng)賬號(hào)打通表,系統(tǒng)賬號(hào)打通表內(nèi)記錄有本系統(tǒng)的用戶賬號(hào)和與本系統(tǒng)關(guān)聯(lián)的其它系統(tǒng)的用戶賬號(hào)。
[0056]在主機(jī)房的業(yè)務(wù)服務(wù)器和/或備機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求或業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),查詢系統(tǒng)賬號(hào)打通表,根據(jù)系統(tǒng)賬號(hào)打通表內(nèi)是否記錄業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求或業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求攜帶的用戶賬號(hào)來(lái)確定是否提供業(yè)務(wù)數(shù)據(jù)讀寫(xiě)服務(wù)。
[0057]根據(jù)本實(shí)施例提供的跨機(jī)房的業(yè)務(wù)數(shù)據(jù)處理方法,主備機(jī)房的緩存數(shù)據(jù)庫(kù)之間雙向同步業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)庫(kù)之間也雙向同步業(yè)務(wù)數(shù)據(jù)。當(dāng)備機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求時(shí),從主機(jī)房的主數(shù)據(jù)庫(kù)讀取業(yè)務(wù)數(shù)據(jù),當(dāng)備機(jī)房的業(yè)務(wù)服務(wù)器接收到業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),向主機(jī)房的主數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù)。本方法中,業(yè)務(wù)數(shù)據(jù)的更新主要發(fā)生在主數(shù)據(jù)庫(kù),在主數(shù)據(jù)庫(kù)和備數(shù)據(jù)庫(kù)之間雙向同步業(yè)務(wù)數(shù)據(jù)時(shí),以主數(shù)據(jù)庫(kù)的業(yè)務(wù)數(shù)據(jù)為主,使得備數(shù)據(jù)庫(kù)與主數(shù)據(jù)庫(kù)的數(shù)據(jù)能夠保持強(qiáng)一致性。而且,本方法也提高了主數(shù)據(jù)庫(kù)和備數(shù)據(jù)庫(kù)之間同步數(shù)據(jù)的便捷性,避免了主數(shù)據(jù)庫(kù)和備數(shù)據(jù)的業(yè)務(wù)數(shù)據(jù)同時(shí)發(fā)生不同程度的更新而造成的數(shù)據(jù)同步困難的問(wèn)題,降低了主備同步的難度。本方法中還可采用MySQL分表技術(shù)與緩存查詢相結(jié)合,大大提升數(shù)據(jù)讀寫(xiě)速度,使得系統(tǒng)能有效應(yīng)對(duì)高并發(fā)場(chǎng)景。
[0058]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0059]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
[0060]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。[0061 ] 本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0062]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0063]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的多機(jī)房部署系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0064]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0065]本發(fā)明公開(kāi)了:
[0066]Al、一種多機(jī)房部署系統(tǒng),包括:主機(jī)房和備機(jī)房,所述主機(jī)房包括至少一個(gè)業(yè)務(wù)服務(wù)器以及用于存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的主緩存數(shù)據(jù)庫(kù)和主數(shù)據(jù)庫(kù),所述備機(jī)房包括至少一個(gè)業(yè)務(wù)服務(wù)器以及用于存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的備緩存數(shù)據(jù)庫(kù)和備數(shù)據(jù)庫(kù);所述主緩存數(shù)據(jù)庫(kù)和所述備緩存數(shù)據(jù)庫(kù)之間雙向同步業(yè)務(wù)數(shù)據(jù),所述主數(shù)據(jù)庫(kù)與所述備數(shù)據(jù)庫(kù)之間雙向同步業(yè)務(wù)數(shù)據(jù);
[0067]所述備機(jī)房的至少一個(gè)業(yè)務(wù)服務(wù)器用于:在接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求時(shí),從所述主數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù);以及,在接收到業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),向所述主數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù)。
[0068]A2、根據(jù)Al所述的系統(tǒng),所述備機(jī)房的至少一個(gè)業(yè)務(wù)服務(wù)器進(jìn)一步用于:在接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求時(shí),先查詢所述備緩存數(shù)據(jù)庫(kù)是否存儲(chǔ)有業(yè)務(wù)數(shù)據(jù),若是,則從所述備緩存數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù);若否,則從所述主數(shù)據(jù)庫(kù)中查詢并讀取業(yè)務(wù)數(shù)據(jù)。
[0069]A3、根據(jù)A2所述的系統(tǒng),所述備機(jī)房的至少一個(gè)業(yè)務(wù)服務(wù)器進(jìn)一步用于:若在接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求后,未在所述備緩存數(shù)據(jù)庫(kù)中查詢到業(yè)務(wù)數(shù)據(jù),則在從所述主數(shù)據(jù)庫(kù)讀取到業(yè)務(wù)數(shù)據(jù)后,將業(yè)務(wù)數(shù)據(jù)寫(xiě)入到所述備緩存數(shù)據(jù)庫(kù)中。
[0070]A4、根據(jù)A1-A3任一項(xiàng)所述的系統(tǒng),所述備機(jī)房的至少一個(gè)業(yè)務(wù)服務(wù)器進(jìn)一步用于:在接收到業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),先向所述主數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù),而后向所述備緩存數(shù)據(jù)庫(kù)寫(xiě)入業(yè)務(wù)數(shù)據(jù)。
[0071]A5、根據(jù)A1-A4任一項(xiàng)所述的系統(tǒng),所述主機(jī)房的至少一個(gè)業(yè)務(wù)服務(wù)器用于:在接收到業(yè)務(wù)數(shù)據(jù)讀請(qǐng)求時(shí),從所述主緩存數(shù)據(jù)庫(kù)或主數(shù)據(jù)庫(kù)中讀取業(yè)務(wù)數(shù)據(jù);以及,在接收到業(yè)務(wù)數(shù)據(jù)寫(xiě)請(qǐng)求時(shí),依次向所述主數(shù)據(jù)庫(kù)和所述主緩存數(shù)據(jù)庫(kù)中寫(xiě)入業(yè)務(wù)數(shù)據(jù)。
[0072]A6、根據(jù)A1-A5任一項(xiàng)所述的系統(tǒng),所述主數(shù)據(jù)庫(kù)包括MySQL主數(shù)據(jù)庫(kù)和SSDB主數(shù)據(jù)庫(kù),所述備數(shù)據(jù)庫(kù)包括MySQL備數(shù)據(jù)庫(kù)和SSDB備數(shù)據(jù)庫(kù);
[0073]所述MySQL主數(shù)據(jù)庫(kù)和所述MySQL備數(shù)據(jù)庫(kù)之間雙向同步業(yè)務(wù)數(shù)據(jù),所述SSDB主數(shù)據(jù)庫(kù)和所述SSDB備數(shù)據(jù)庫(kù)中間雙向同步業(yè)務(wù)數(shù)據(jù)。
[0074]A7、根據(jù)A6所述的系統(tǒng),所述MySQL主數(shù)