一種數(shù)據(jù)庫(kù)集群功能實(shí)現(xiàn)方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)庫(kù)管理和應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)集群功能實(shí)現(xiàn)方法和系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)今時(shí)代是一個(gè)信息化的時(shí)代,人們的生活、工作和學(xué)習(xí)都離不開(kāi)信息系統(tǒng)。而信息系統(tǒng)對(duì)數(shù)據(jù)的處理及存儲(chǔ)需以數(shù)據(jù)庫(kù)系統(tǒng)為支撐,基于此,數(shù)據(jù)庫(kù)系統(tǒng)在當(dāng)今的信息化時(shí)代變得尤為重要。
[0003]目前的數(shù)據(jù)庫(kù)系統(tǒng)多為僅采用單一數(shù)據(jù)庫(kù)節(jié)點(diǎn)的單數(shù)據(jù)庫(kù)系統(tǒng),隨著各行各業(yè)數(shù)據(jù)量的快速增長(zhǎng),數(shù)據(jù)庫(kù)系統(tǒng)在正確記錄數(shù)據(jù)結(jié)果的同時(shí),還面臨著單一數(shù)據(jù)庫(kù)帶來(lái)的性能瓶頸問(wèn)題,以銀行系統(tǒng)為例,每天都有大量客戶到銀行系統(tǒng)辦理各種業(yè)務(wù),筆數(shù)峰值每天可能達(dá)到一億筆以上,而銀行系統(tǒng)對(duì)并發(fā)量、可用性以及可擴(kuò)展性都有著很高的要求,一旦銀行系統(tǒng)癱瘓將帶來(lái)巨大的經(jīng)濟(jì)損失和社會(huì)影響,從而,對(duì)于有著大并發(fā)量、高實(shí)時(shí)性和高擴(kuò)展性要求的銀行系統(tǒng)來(lái)講,如何較好地解決單一數(shù)據(jù)庫(kù)帶來(lái)的性能瓶頸問(wèn)題成為當(dāng)前亟需解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)庫(kù)集群功能實(shí)現(xiàn)方法和系統(tǒng),旨在通過(guò)實(shí)現(xiàn)一種數(shù)據(jù)庫(kù)集群功能來(lái)有效擴(kuò)展數(shù)據(jù)庫(kù),進(jìn)而解決單一數(shù)據(jù)庫(kù)帶來(lái)的性能瓶頸問(wèn)題。
[0005]為此,本發(fā)明公開(kāi)如下技術(shù)方案:
[0006]—種數(shù)據(jù)庫(kù)集群功能實(shí)現(xiàn)方法,所述數(shù)據(jù)庫(kù)集群包括多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn),所述多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)分別存放有互不相同的第一類型數(shù)據(jù),所述方法包括:
[0007]接收發(fā)送方的第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求,所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求包括第一業(yè)務(wù)要素及第一類型數(shù)據(jù)操作任務(wù);
[0008]基于所述第一業(yè)務(wù)要素,確定目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn);
[0009]將所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn),以使所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)對(duì)所述第一類型數(shù)據(jù)操作任務(wù)進(jìn)行處理。
[0010]上述方法,優(yōu)選的,所述基于所述第一業(yè)務(wù)要素,確定目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn),包括:
[0011]基于預(yù)先配置的業(yè)務(wù)要素與數(shù)據(jù)庫(kù)節(jié)點(diǎn)間的對(duì)應(yīng)關(guān)系,確定出與所述第一業(yè)務(wù)要素相對(duì)應(yīng)的目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)。
[0012]上述方法,優(yōu)選的,將所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)包括:
[0013]建立與所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)間的數(shù)據(jù)庫(kù)連接;
[0014]生成與所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求相對(duì)應(yīng)的結(jié)構(gòu)化查詢語(yǔ)言SQL語(yǔ)句;
[0015]利用所述數(shù)據(jù)庫(kù)連接,將所述SQL語(yǔ)句提交至所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)。
[0016]上述方法,優(yōu)選的,還包括:
[0017]將所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)產(chǎn)生的返回結(jié)果數(shù)據(jù)反饋至所述發(fā)送方。
[0018]上述方法,優(yōu)選的,當(dāng)所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)的個(gè)數(shù)為多個(gè)時(shí),所述將所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)產(chǎn)生的返回結(jié)果數(shù)據(jù)反饋至所述發(fā)送方包括:
[0019]整合多個(gè)所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)產(chǎn)生的多份返回結(jié)果數(shù)據(jù),并將整合結(jié)果反饋至所述發(fā)送方。
[0020]上述方法,優(yōu)選的,還包括:
[0021 ]當(dāng)所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)發(fā)生故障時(shí),將所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)備份數(shù)據(jù)庫(kù)節(jié)點(diǎn),所述目標(biāo)備份數(shù)據(jù)庫(kù)節(jié)點(diǎn)用于對(duì)所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)中的第一類型數(shù)據(jù)進(jìn)行備份。
[0022]上述方法,優(yōu)選的,所述多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)還分別存放有相同的第二類型數(shù)據(jù),則所述方法還包括:
[0023]在接收到發(fā)送方的第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求時(shí),獲取所述第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求包含的操作類型;
[0024]如果所述操作類型為需要更新數(shù)據(jù)庫(kù)的類型,則將所述第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述數(shù)據(jù)庫(kù)集群包括的各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)進(jìn)行同步處理;
[0025]如果所述操作類型為無(wú)需更新數(shù)據(jù)庫(kù)的類型,則將所述第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述數(shù)據(jù)庫(kù)集群中的任意一數(shù)據(jù)庫(kù)節(jié)點(diǎn)進(jìn)行處理。
[0026]—種數(shù)據(jù)庫(kù)集群功能實(shí)現(xiàn)系統(tǒng),所述數(shù)據(jù)庫(kù)集群包括多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn),所述多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)分別存放有互不相同的第一類型數(shù)據(jù),所述系統(tǒng)包括:
[0027]接收模塊,用于接收發(fā)送方的第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求,所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求包括第一業(yè)務(wù)要素及第一類型數(shù)據(jù)操作任務(wù);
[0028]確定模塊,用于基于所述第一業(yè)務(wù)要素,確定目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn);
[0029]第一分配模塊,用于將所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn),以使所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)對(duì)所述第一類型數(shù)據(jù)操作任務(wù)進(jìn)行處理。
[0030]上述系統(tǒng),優(yōu)選的,所述確定模塊包括:
[0031]確定單元,用于基于預(yù)先配置的業(yè)務(wù)要素與數(shù)據(jù)庫(kù)節(jié)點(diǎn)間的對(duì)應(yīng)關(guān)系,確定出與所述第一業(yè)務(wù)要素相對(duì)應(yīng)的目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)。
[0032]上述系統(tǒng),優(yōu)選的,所述第一分配模塊包括:
[0033]連接建立單元,用于建立與所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)間的數(shù)據(jù)庫(kù)連接;
[0034]生成單元,用于生成與所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求相對(duì)應(yīng)的SQL語(yǔ)句;
[0035]提交單元,用于利用所述數(shù)據(jù)庫(kù)連接,將所述SQL語(yǔ)句提交至所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)。
[0036]上述系統(tǒng),優(yōu)選的,還包括:
[0037]結(jié)果反饋模塊,用于將所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)產(chǎn)生的返回結(jié)果數(shù)據(jù)反饋至所述發(fā)送方。
[0038]上述系統(tǒng),優(yōu)選的,當(dāng)所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)的個(gè)數(shù)為多個(gè)時(shí),所述結(jié)果反饋模塊具體用于整合多個(gè)所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)產(chǎn)生的多份返回結(jié)果數(shù)據(jù),并將整合結(jié)果反饋至所述發(fā)送方。
[0039]上述系統(tǒng),優(yōu)選的,還包括:
[0040]節(jié)點(diǎn)故障處理模塊,用于在所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)發(fā)生故障時(shí),將所述第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)備份數(shù)據(jù)庫(kù)節(jié)點(diǎn);所述目標(biāo)備份數(shù)據(jù)庫(kù)節(jié)點(diǎn)用于對(duì)所述目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)中的第一類型數(shù)據(jù)進(jìn)行備份。
[0041]上述系統(tǒng),優(yōu)選的,所述多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)還分別存放有相同的第二類型數(shù)據(jù),則所述系統(tǒng)還包括:
[0042]獲取模塊,用于在接收到發(fā)送方的第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求時(shí),獲取所述第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求包含的操作類型;
[0043]第二分配模塊,用于在所述操作類型為需要更新數(shù)據(jù)庫(kù)的類型時(shí),將所述第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述數(shù)據(jù)庫(kù)集群包括的各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)進(jìn)行同步處理;
[0044]第三分配模塊,用于在所述操作類型為無(wú)需更新數(shù)據(jù)庫(kù)的類型時(shí),將所述第二類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求分配至所述數(shù)據(jù)庫(kù)集群中的任意一數(shù)據(jù)庫(kù)節(jié)點(diǎn)進(jìn)行處理。
[0045]由以上方案可知,本申請(qǐng)公開(kāi)的數(shù)據(jù)庫(kù)集群功能實(shí)現(xiàn)方法和系統(tǒng),將現(xiàn)有僅包括單一數(shù)據(jù)庫(kù)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)系統(tǒng)擴(kuò)展為包括多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)集群,并在所述數(shù)據(jù)庫(kù)集群的各個(gè)節(jié)點(diǎn)中分別存放互不相同的第一類型數(shù)據(jù),在此基礎(chǔ)上,當(dāng)接收到發(fā)送方的第一類型數(shù)據(jù)業(yè)務(wù)請(qǐng)求時(shí),基于所述請(qǐng)求中包括的業(yè)務(wù)要素,來(lái)為該請(qǐng)求指定一個(gè)相匹配的目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn),之后將該請(qǐng)求分配至所指定的目標(biāo)數(shù)據(jù)庫(kù)節(jié)點(diǎn)進(jìn)行處理。由此可見(jiàn),本申請(qǐng)通過(guò)在數(shù)據(jù)庫(kù)集群的不同節(jié)點(diǎn)存放不同數(shù)據(jù),并通過(guò)有效的業(yè)務(wù)路由實(shí)現(xiàn)了一種數(shù)據(jù)庫(kù)集群功能,基于該功能可有效實(shí)現(xiàn)數(shù)據(jù)庫(kù)擴(kuò)展,從而解決了單一數(shù)據(jù)庫(kù)帶來(lái)的性能瓶頸問(wèn)題。
【附圖說(shuō)明