多機房部署系統(tǒng)及跨機房的業(yè)務數(shù)據(jù)處理方法
【技術領域】
[0001]本發(fā)明涉及計算機網(wǎng)絡技術領域,具體涉及一種多機房部署系統(tǒng)及跨機房的業(yè)務數(shù)據(jù)處理方法。
【背景技術】
[0002]隨著網(wǎng)絡服務的日益普及,經(jīng)常需要將一些常用的數(shù)據(jù)(如業(yè)務數(shù)據(jù)等)同時存儲在多個機房的服務器上。例如,為了向全國各地的用戶提供相同的服務,分別在北京、廣州和西藏設置了三個機房,用戶通過任一機房節(jié)點都能訪問到所需的服務,一般情況下用戶訪問最近的機房節(jié)點即可。這時,北京、廣州和西藏三個地區(qū)的機房中存儲的數(shù)據(jù)均相同。另外,有時為了防止因一個機房中的服務器掛掉而導致服務中斷的情況發(fā)生,也會同時部署多個存儲有相同數(shù)據(jù)的機房,以便在一個機房掛掉后能夠通過另外的機房為用戶提供可靠服務。
[0003]在上述情況中,多個機房中的數(shù)據(jù)需要保持一致,一旦各機房中的數(shù)據(jù)出現(xiàn)了不一致的情況就會影響用戶的正常使用。由于業(yè)務數(shù)據(jù)經(jīng)常發(fā)生變更,一旦某機房中的數(shù)據(jù)變更后,其他機房沒有及時進行同步更新就會導致數(shù)據(jù)不一致的情況發(fā)生,因此,目前還沒有一種有效的機制能夠確保多個機房中的數(shù)據(jù)的強一致性。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的多機房部署系統(tǒng)及跨機房的業(yè)務數(shù)據(jù)處理方法。
[0005]根據(jù)本發(fā)明的一個方面,提供了多機房部署系統(tǒng),包括:主機房和備機房,所述主機房包括至少一個業(yè)務服務器以及用于存儲業(yè)務數(shù)據(jù)的主緩存數(shù)據(jù)庫和主數(shù)據(jù)庫,所述備機房包括至少一個業(yè)務服務器以及用于存儲業(yè)務數(shù)據(jù)的備緩存數(shù)據(jù)庫和備數(shù)據(jù)庫;所述主緩存數(shù)據(jù)庫和所述備緩存數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù),所述主數(shù)據(jù)庫與所述備數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù);
[0006]所述備機房的至少一個業(yè)務服務器用于:在接收到業(yè)務數(shù)據(jù)讀請求時,從所述主數(shù)據(jù)庫中讀取業(yè)務數(shù)據(jù);以及,在接收到業(yè)務數(shù)據(jù)寫請求時,向所述主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù)。
[0007]根據(jù)本發(fā)明的另一方面,提供了跨機房的業(yè)務數(shù)據(jù)處理方法,包括:
[0008]主機房的主緩存數(shù)據(jù)庫和備機房的備緩存數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù),主機房的主數(shù)據(jù)庫與備機房的備數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù);
[0009]當備機房的業(yè)務服務器接收到業(yè)務數(shù)據(jù)讀請求時,從所述主數(shù)據(jù)庫中讀取業(yè)務數(shù)據(jù);或者,當備機房的業(yè)務服務器接收到業(yè)務數(shù)據(jù)寫請求時,向所述主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù)。
[0010]根據(jù)本發(fā)明提供的多機房部署系統(tǒng)及跨機房的業(yè)務數(shù)據(jù)處理方法,主備機房都部署有各自的緩存數(shù)據(jù)庫和數(shù)據(jù)庫,主備機房的緩存數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù),數(shù)據(jù)庫之間也雙向同步業(yè)務數(shù)據(jù)。當備機房的業(yè)務服務器接收到業(yè)務數(shù)據(jù)讀請求時,從主機房的主數(shù)據(jù)庫讀取業(yè)務數(shù)據(jù),當備機房的業(yè)務服務器接收到業(yè)務數(shù)據(jù)寫請求時,向主機房的主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù)。該系統(tǒng)中,業(yè)務數(shù)據(jù)的更新主要發(fā)生在主數(shù)據(jù)庫,在主數(shù)據(jù)庫和備數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù)時,以主數(shù)據(jù)庫的業(yè)務數(shù)據(jù)為主,使得備數(shù)據(jù)庫與主數(shù)據(jù)庫的數(shù)據(jù)能夠保持強一致性。而且,這種部署方式也提高了主數(shù)據(jù)庫和備數(shù)據(jù)庫之間同步數(shù)據(jù)的便捷性,避免了主數(shù)據(jù)庫和備數(shù)據(jù)的業(yè)務數(shù)據(jù)同時發(fā)生不同程度的更新而造成的數(shù)據(jù)同步困難的問題,降低了主備同步的難度。
[0011]上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0012]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0013]圖1示出了根據(jù)本發(fā)明一個實施例的多機房部署系統(tǒng)的功能框圖;
[0014]圖2示出了根據(jù)本發(fā)明另一個實施例的多機房部署系統(tǒng)的功能框圖;
[0015]圖3示出了根據(jù)本發(fā)明一個實施例的跨機房的業(yè)務數(shù)據(jù)處理方法的流程圖。
【具體實施方式】
[0016]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。
[0017]圖1示出了根據(jù)本發(fā)明一個實施例的多機房部署系統(tǒng)的功能框圖。如圖1所示,該系統(tǒng)包括:主機房和備機房。主機房包括至少一個業(yè)務服務器以及用于存儲業(yè)務數(shù)據(jù)的主緩存數(shù)據(jù)庫和主數(shù)據(jù)庫,備機房包括至少一個業(yè)務服務器以及用于存儲業(yè)務數(shù)據(jù)的備緩存數(shù)據(jù)庫和備數(shù)據(jù)庫;主緩存數(shù)據(jù)庫和備緩存數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù),主數(shù)據(jù)庫與備數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù)。
[0018]主機房的至少一個業(yè)務服務器用于:在接收到業(yè)務數(shù)據(jù)讀請求時,從主緩存數(shù)據(jù)庫或主數(shù)據(jù)庫中讀取業(yè)務數(shù)據(jù);以及,在接收到業(yè)務數(shù)據(jù)寫請求時,依次向主數(shù)據(jù)庫和主緩存數(shù)據(jù)庫中寫入業(yè)務數(shù)據(jù)。
[0019]備機房的至少一個業(yè)務服務器用于:在接收到業(yè)務數(shù)據(jù)讀請求時,從主數(shù)據(jù)庫中讀取業(yè)務數(shù)據(jù);以及,在接收到業(yè)務數(shù)據(jù)寫請求時,向主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù)。
[0020]主機房作為主要機房,其承擔了大部分的業(yè)務服務。主機房部署有多個業(yè)務服務器,如果I個業(yè)務服務器能同時處理500個業(yè)務請求,那么N個業(yè)務服務器就能同時處理500*N個業(yè)務請求。通過部署多個業(yè)務服務器能夠大大提高主機房的并發(fā)處理能力,在面對一些高并發(fā)的場景,保證主機房能有效應對。主機房的業(yè)務服務器與主緩存數(shù)據(jù)庫、主數(shù)據(jù)庫都建立有通信連接。在接收到業(yè)務數(shù)據(jù)讀請求時,主機房的業(yè)務服務器可以從主緩存數(shù)據(jù)庫或主數(shù)據(jù)庫中讀取業(yè)務數(shù)據(jù);在接收到業(yè)務數(shù)據(jù)寫請求時,主機房的業(yè)務服務器向主緩存數(shù)據(jù)庫和主數(shù)據(jù)庫中寫入業(yè)務數(shù)據(jù)。
[0021]備機房作為備用機房,部署它的主要目的是在主機房掛掉后使之能夠接替主機房提供服務。但為了保證備用機房的可用性,在主機房能正常提供業(yè)務服務時,備機房也在同時運轉(zhuǎn),只不過備機房承擔的業(yè)務量遠遠小于主機房。備機房也部署有多個業(yè)務服務器,通過部署多個業(yè)務服務器能夠大大提高備機房的并發(fā)處理能力,在面對一些高并發(fā)的場景,保證備機房也能有效應對。備機房的業(yè)務服務器與備緩存數(shù)據(jù)庫、主數(shù)據(jù)庫建立有通信連接。在接收到業(yè)務數(shù)據(jù)讀請求時,備機房的業(yè)務服務器從主數(shù)據(jù)庫中讀取業(yè)務數(shù)據(jù);以及,在接收到業(yè)務數(shù)據(jù)寫請求時,備機房的業(yè)務服務器向主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù)。
[0022]由上面的描述可以看出,當備機房的業(yè)務服務器有業(yè)務數(shù)據(jù)讀請求或?qū)懻埱髸r,備機房的業(yè)務服務器不向自己的備數(shù)據(jù)庫讀寫數(shù)據(jù),而是向主機房的主數(shù)據(jù)庫讀寫數(shù)據(jù)。采用這種方式的優(yōu)點在于,業(yè)務數(shù)據(jù)的更新主要發(fā)生在主數(shù)據(jù)庫,在主數(shù)據(jù)庫和備數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù)時,以主數(shù)據(jù)庫的業(yè)務數(shù)據(jù)為主,使得備數(shù)據(jù)庫與主數(shù)據(jù)庫的數(shù)據(jù)能夠保持強一致性。而且,這種方式也提高了主數(shù)據(jù)庫和備數(shù)據(jù)庫之間同步數(shù)據(jù)的便捷性,避免了主數(shù)據(jù)庫和備數(shù)據(jù)庫的業(yè)務數(shù)據(jù)同時發(fā)生不同程度的更新而造成的數(shù)據(jù)同步困難的問題,降低了主備同步的難度。
[0023]進一步的,備機房的業(yè)務服務器用于:在接收到業(yè)務數(shù)據(jù)寫請求時,先向主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù),而后向備緩存數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù);在接收到業(yè)務數(shù)據(jù)讀請求時,先查詢備緩存數(shù)據(jù)庫是否存儲有業(yè)務數(shù)據(jù),若是,則從備緩存數(shù)據(jù)庫中讀取業(yè)務數(shù)據(jù);若否,則從主數(shù)據(jù)庫中查詢并讀取業(yè)務數(shù)據(jù);以及,若在接收到業(yè)務數(shù)據(jù)讀請求后,未在備緩存數(shù)據(jù)庫中查詢到業(yè)務數(shù)據(jù),則在從主數(shù)據(jù)庫讀取到業(yè)務數(shù)據(jù)后,將業(yè)務數(shù)據(jù)寫入到備緩存數(shù)據(jù)庫中。
[0024]備機房部署有備緩存數(shù)據(jù)庫,一方面,能加快備機房的業(yè)務服務器對短期內(nèi)存儲在該備緩存數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)的讀取速度;另一方面,在寫業(yè)務數(shù)據(jù)時,先向主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù),再向備緩存數(shù)據(jù)庫寫入數(shù)據(jù);在讀業(yè)務數(shù)據(jù)時,先從備緩存數(shù)據(jù)庫中讀數(shù)據(jù),如果沒有,在從主數(shù)據(jù)庫讀數(shù)據(jù),這樣可以解決主數(shù)據(jù)庫負載過高的問題。而且,備緩存數(shù)據(jù)庫與主緩存數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù),保證緩存之間數(shù)據(jù)的強一致性。
[0025]根據(jù)本實施例提供的多機房部署系統(tǒng),主備機房都部署有各自的緩存數(shù)據(jù)庫和數(shù)據(jù)庫,主備機房的緩存數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù),數(shù)據(jù)庫之間也雙向同步業(yè)務數(shù)據(jù)。當備機房的業(yè)務服務器接收到業(yè)務數(shù)據(jù)讀請求時,從主機房的主數(shù)據(jù)庫讀取業(yè)務數(shù)據(jù),當備機房的業(yè)務服務器接收到業(yè)務數(shù)據(jù)寫請求時,向主機房的主數(shù)據(jù)庫寫入業(yè)務數(shù)據(jù)。該系統(tǒng)中,業(yè)務數(shù)據(jù)的更新主要發(fā)生在主數(shù)據(jù)庫,在主數(shù)據(jù)庫和備數(shù)據(jù)庫之間雙向同步業(yè)務數(shù)據(jù)時,以主數(shù)據(jù)庫的業(yè)務數(shù)據(jù)為主,使得備數(shù)據(jù)庫與主數(shù)據(jù)庫的數(shù)據(jù)能夠保持強一致性。而且,這種部署方式也提高了主數(shù)據(jù)庫和備數(shù)據(jù)庫之間同步數(shù)據(jù)的便捷性,避免了主數(shù)據(jù)庫和備數(shù)據(jù)的業(yè)務數(shù)據(jù)同時發(fā)生不同程度的更新而造成的數(shù)據(jù)同步困難的問題,降低了主備同步的難度。
[0026]圖2示出了根據(jù)本發(fā)明另一個實施例的多機房部署系統(tǒng)的功能框圖。如圖2所示,本實施例與圖1所示的實施例的不同之處在于,主數(shù)據(jù)庫進一步包括MySQL主數(shù)據(jù)庫和SSDB主數(shù)據(jù)庫,備數(shù)據(jù)庫包括MySQL備數(shù)據(jù)庫和SSDB備數(shù)據(jù)庫,其中