主從式服務(wù)器系統(tǒng)的應(yīng)用方法及該系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及通信技術(shù)領(lǐng)域,具體地說,涉及一種主從式服務(wù)器系統(tǒng)的應(yīng)用方法及該系統(tǒng)。
【背景技術(shù)】
[0002]近年來,隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,無論是移動(dòng)互聯(lián)網(wǎng)的使用范圍還是使用頻率都日益增長。
[0003]無論是網(wǎng)站服務(wù)器還是應(yīng)用服務(wù)器,都將隨著發(fā)展而導(dǎo)致訪問量增長。這些直接會(huì)導(dǎo)致服務(wù)器的負(fù)載變得越來越重,需要處理器具備更高的處理能力。除了升級(jí)服務(wù)器配置來提升處理能力外,還可以通過改變服務(wù)器架構(gòu)來提升處理能力。在改變服務(wù)器架構(gòu)的時(shí)候,服務(wù)器的網(wǎng)絡(luò)配置或者在服務(wù)器上部署的業(yè)務(wù)內(nèi)容都會(huì)隨著一同改變。在服務(wù)器的網(wǎng)絡(luò)配置發(fā)生改變后,在客戶端中,就要相應(yīng)的從原有的服務(wù)器切換至新的服務(wù)器上。
[0004]除此之外,一些企業(yè)級(jí)應(yīng)用對于系統(tǒng)整體的穩(wěn)定性有很高的要求。因此,通常會(huì)設(shè)置至少一臺(tái)備用服務(wù)器來應(yīng)對主服務(wù)器宕機(jī)這種情況的發(fā)生。一旦主服務(wù)器發(fā)生宕機(jī),就需要客戶端在主服務(wù)器和備服務(wù)器中進(jìn)行切換。
[0005]目前很多服務(wù)是通過LVS技術(shù)去操控的,其布置一般基于LVS或是KeepAlive技術(shù)進(jìn)行,缺點(diǎn)有幾個(gè),一個(gè)是不能布置在阿里云或是亞馬遜云服務(wù)器上,因?yàn)槠湫枰鎸?shí)固定的IP環(huán)境,另外其布置一般過于復(fù)雜,增加了解決方案的復(fù)雜性,因?yàn)槿绻鰡栴}的是LVS或是KeepAl ive,通常需要花很長時(shí)間去維護(hù)。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本申請所要解決的技術(shù)問題是提供了一種主從式服務(wù)器系統(tǒng)的應(yīng)用方法及系統(tǒng),解決集群在提供服務(wù)的過程中,由于其他原因或硬件故障或網(wǎng)絡(luò)異常,導(dǎo)致主服務(wù)器不能提供服務(wù),系統(tǒng)偵測到主服務(wù)器異常時(shí),將從服務(wù)器自動(dòng)提升為主服務(wù)器,保證集群連續(xù)不斷的對外提供讀寫服務(wù),從而保證不會(huì)因?yàn)榈墓收隙鴮?dǎo)致其他系統(tǒng)服務(wù)不可用。
[0007]為了解決上述技術(shù)問題,本申請有如下技術(shù)方案:
[0008]—種主從式服務(wù)器系統(tǒng)的應(yīng)用方法,其特征在于,包括:
[0009]數(shù)據(jù)庫哨兵服務(wù)器監(jiān)控主數(shù)據(jù)庫服務(wù)器和多個(gè)從數(shù)據(jù)庫服務(wù)器的工作情況,生成可用的數(shù)據(jù)庫服務(wù)器集群列表;若發(fā)現(xiàn)主數(shù)據(jù)庫服務(wù)器不可用,則從從數(shù)據(jù)庫服務(wù)器集群中選擇一個(gè)可用的從數(shù)據(jù)庫服務(wù)器,提升為新的主數(shù)據(jù)庫服務(wù)器;若發(fā)現(xiàn)一個(gè)或多個(gè)從數(shù)據(jù)庫服務(wù)器不可用,則將一個(gè)或多個(gè)不可用的從數(shù)據(jù)庫服務(wù)器從所述數(shù)據(jù)庫服務(wù)器集群列表中刪除;
[0010]數(shù)據(jù)庫監(jiān)控服務(wù)器從數(shù)據(jù)庫哨兵服務(wù)器中獲取可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表,并將所述列表保存到Zookeeper中;
[0011]集群服務(wù)器從Zookeeper獲取可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器列表,自動(dòng)選擇連接到可用的主數(shù)據(jù)服務(wù)器和從數(shù)據(jù)庫服務(wù)器,對外提供服務(wù)。
[0012]優(yōu)選地,其中:
[0013]所述集群服務(wù)器自動(dòng)選擇連接到可用的主數(shù)據(jù)服務(wù)器和從數(shù)據(jù)庫服務(wù)器,自主進(jìn)行讀寫分離操作。
[0014]優(yōu)選地,其中:
[0015]所述集群服務(wù)器自動(dòng)選擇連接到可用的主數(shù)據(jù)服務(wù)器和從數(shù)據(jù)庫服務(wù)器,自主進(jìn)行讀寫分離操作,進(jìn)一步為:
[0016]所述集群服務(wù)器自動(dòng)選擇連接到可用的主數(shù)據(jù)服務(wù)器,執(zhí)行寫操作;所述集群服務(wù)器自動(dòng)連接到可用的從數(shù)據(jù)庫服務(wù)器,執(zhí)行讀操作。
[0017]優(yōu)選地,其中:
[0018]數(shù)據(jù)庫監(jiān)控服務(wù)器從數(shù)據(jù)庫哨兵服務(wù)器中獲取可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表,并將所述列表保存到Zookeeper中,進(jìn)一步為:
[0019]數(shù)據(jù)庫監(jiān)控服務(wù)器從數(shù)據(jù)庫哨兵服務(wù)器中獲取可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表,并將所述列表保存到Zookeeper中的DatabaseList節(jié)點(diǎn)。
[0020]—種實(shí)現(xiàn)上述方法的主從式服務(wù)器系統(tǒng),其特征在于,包括:主數(shù)據(jù)庫服務(wù)器、多個(gè)從數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫哨兵服務(wù)器、數(shù)據(jù)庫監(jiān)控服務(wù)器、Zookeeper、集群服務(wù)器,
[0021]所述主數(shù)據(jù)庫服務(wù)器和所述從數(shù)據(jù)服務(wù)器,用于向所述集群服務(wù)器提供服務(wù)數(shù)據(jù);
[0022]所述數(shù)據(jù)庫哨兵服務(wù)器,用于監(jiān)控主數(shù)據(jù)庫服務(wù)器和多個(gè)從數(shù)據(jù)庫服務(wù)器的工作情況,生成可用的數(shù)據(jù)庫服務(wù)器集群列表;若發(fā)現(xiàn)主數(shù)據(jù)庫服務(wù)器不可用,則從從數(shù)據(jù)庫服務(wù)器集群中選擇一個(gè)可用的從數(shù)據(jù)庫服務(wù)器,提升為新的主數(shù)據(jù)庫服務(wù)器;若發(fā)現(xiàn)一個(gè)或多個(gè)從數(shù)據(jù)庫服務(wù)器不可用,則將一個(gè)或多個(gè)不可用的從數(shù)據(jù)庫服務(wù)器從所述數(shù)據(jù)庫服務(wù)器集群列表中刪除;
[0023]所述數(shù)據(jù)庫監(jiān)控服務(wù)器,用于從數(shù)據(jù)庫哨兵服務(wù)器中獲取可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表,并將所述列表保存到Zookeeper中;
[0024]所述Zookeeper,用于保存所述可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表;
[0025]所述集群服務(wù)器,連接到Zookeeper,用于從Zookeeper獲取可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器列表,自動(dòng)選擇連接到可用的主數(shù)據(jù)服務(wù)器和從數(shù)據(jù)庫服務(wù)器,對外提供服務(wù)。
[0026]優(yōu)選地,其中:
[0027]所述集群服務(wù)器進(jìn)一步用于自動(dòng)選擇連接到可用的主數(shù)據(jù)服務(wù)器和從數(shù)據(jù)庫服務(wù)器,自主進(jìn)行讀寫分離操作。
[0028]優(yōu)選地,其中:
[0029]所述集群服務(wù)器進(jìn)一步用于自動(dòng)選擇連接到可用的主數(shù)據(jù)服務(wù)器,執(zhí)行寫操作;所述集群服務(wù)器自動(dòng)連接到可用的從數(shù)據(jù)庫服務(wù)器,執(zhí)行讀操作。
[0030]優(yōu)選地,其中:
[0031]所述數(shù)據(jù)庫監(jiān)控服務(wù)器進(jìn)一步用于從數(shù)據(jù)庫哨兵服務(wù)器中獲取可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表,并將所述列表保存到Zookeeper中的DatabaseLi st節(jié)點(diǎn)。
[0032]與現(xiàn)有技術(shù)相比,本申請所述的方法和系統(tǒng),達(dá)到了如下效果:
[0033]第一,本發(fā)明所述主從式服務(wù)器系統(tǒng)的應(yīng)用方法和主從式服務(wù)器系統(tǒng),在主數(shù)據(jù)庫服務(wù)器出現(xiàn)故障不可用時(shí),能夠從從數(shù)據(jù)庫服務(wù)器集群中選擇一個(gè)可用的從數(shù)據(jù)庫服務(wù)器,將其提升為新的主數(shù)據(jù)庫服務(wù)器,從而使得新的主數(shù)據(jù)庫服務(wù)器能夠正常發(fā)揮主數(shù)據(jù)庫服務(wù)器在整個(gè)系統(tǒng)中的作用。另外,當(dāng)有從數(shù)據(jù)庫服務(wù)器不可用時(shí),還能夠?qū)⒉豢捎玫膹臄?shù)據(jù)庫從數(shù)據(jù)庫服務(wù)器集群列表中刪除,因而能夠?qū)崟r(shí)提供最新的數(shù)據(jù)庫服務(wù)器集群列表。
[0034]第二,本發(fā)明所述主從式服務(wù)器系統(tǒng)的應(yīng)用方法和主從式服務(wù)器系統(tǒng)中,當(dāng)任一數(shù)據(jù)庫服務(wù)器發(fā)生變化時(shí),例如主從數(shù)據(jù)庫服務(wù)器切換或從數(shù)據(jù)庫服務(wù)器刪除等,數(shù)據(jù)庫監(jiān)控服務(wù)器都能在第一時(shí)間從數(shù)據(jù)庫哨兵服務(wù)器獲取到最新可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表并存儲(chǔ)到Zookeeper中,由于各集群服務(wù)器都關(guān)注了 Zookeeper,因此各集群服務(wù)器就能夠?qū)崟r(shí)準(zhǔn)確的獲取到數(shù)據(jù)庫服務(wù)器發(fā)生的變化,從而選擇重新連接到可用的數(shù)據(jù)庫服務(wù)器上。因此本發(fā)明所提供的系統(tǒng)能夠7*24小時(shí)連續(xù)不斷地對用戶提供接入服務(wù),有利于保證云服務(wù)的不中斷和連續(xù)性。
[0035]第三,本發(fā)明所述主從式服務(wù)器系統(tǒng)的應(yīng)用方法和主從式服務(wù)器系統(tǒng)中,數(shù)據(jù)庫監(jiān)控服務(wù)器將最新可用的主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器集群列表保存到Zookeeper中的DatabaseLi st節(jié)點(diǎn),DatabaseLi st節(jié)點(diǎn)描述了數(shù)據(jù)庫的主從信息,集群服務(wù)器可通過DatabaseLi st節(jié)點(diǎn)獲取最新列表信息,并自主選擇進(jìn)行讀寫分離操作和主備負(fù)載均衡操作。
[0036]第四,本發(fā)明所述主從式服務(wù)器系統(tǒng)結(jié)構(gòu)簡單,可以方便地布置在阿里云或是亞馬遜云服務(wù)器上,維護(hù)方便。
【附圖說明】
[0037