本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)同步方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們通過(guò)網(wǎng)絡(luò)獲取各種各樣的信息已經(jīng)成為生活中不可獲取的一部分。
目前,為了方便人們方便記憶提供信息的服務(wù)器的互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址,服務(wù)器的IP地址可由一個(gè)域名代替,并把域名對(duì)外提供給用戶(hù),后續(xù),用戶(hù)可在瀏覽器的地址欄中輸入域名,終端將該域名攜帶在信息獲取請(qǐng)求中發(fā)送給域名服務(wù)器,域名服務(wù)器將域名解析成IP地址,并根據(jù)解析后的IP地址,將信息獲取請(qǐng)求發(fā)送給IP地址對(duì)應(yīng)的服務(wù)器,并從服務(wù)器中獲取信息。
在實(shí)際應(yīng)用中,由于域名服務(wù)器采用的主從模式,即,一個(gè)主域名服務(wù)器,多個(gè)從域名服務(wù)器,而用戶(hù)在對(duì)保存在主域名服務(wù)器中的域名進(jìn)行修改的時(shí)候,是通過(guò)訪(fǎng)問(wèn)主域名服務(wù)器進(jìn)行修改的,也就是說(shuō),用戶(hù)對(duì)保存在主域名服務(wù)器中的域名進(jìn)行修改的,而不會(huì)對(duì)從域名服務(wù)器中保存的域名進(jìn)行修改,因此,需要將主域名服務(wù)器中修改的域名同步到從域名服務(wù)器中。
在現(xiàn)有技術(shù)中,為了避免主域名服務(wù)器在給所有的從域名服務(wù)器同時(shí)同步的過(guò)程中因負(fù)載過(guò)大而導(dǎo)致主域名服務(wù)器宕機(jī),因此,在將主域名的服務(wù)器中保存的域名同步到所有從域名服務(wù)器過(guò)程中,需要先將所有從域名服務(wù)器按照主域名服務(wù)器承受負(fù)載的要求分成不同的組,并針對(duì)任一組,主域名服務(wù)器同時(shí)與該組內(nèi)包含的所有從域名服務(wù)器建立同步連接,并進(jìn)行數(shù)據(jù)同步,當(dāng)該組內(nèi)的從域名服務(wù)器均同步完成后,針對(duì)剩余組中的任一一組中包含的從域名服務(wù)器建立同步連接,進(jìn)行數(shù)據(jù)同步,直至所有組中包含的從域名服務(wù)器都完成數(shù)據(jù)同步。
但是,在現(xiàn)有技術(shù)中,當(dāng)從域名服務(wù)器存在大量時(shí),則將主域名服務(wù)器中已經(jīng)修改的域名同步到所有的從域名服務(wù)器中,勢(shì)必會(huì)需要大量的時(shí)間去進(jìn)行數(shù)據(jù)同步,數(shù)據(jù)同步的及時(shí)性較低。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)同步方法及裝置,用以解決將主域名服務(wù)器中已經(jīng)修改的域名同步到所有的從域名服務(wù)器中,數(shù)據(jù)同步的及時(shí)性較低的問(wèn)題。
本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)同步方法,包括:
在多個(gè)域名服務(wù)器對(duì)應(yīng)的數(shù)據(jù)庫(kù)中修改網(wǎng)站的域名;
將修改后的域名同步到所述多個(gè)域名服務(wù)器中。
本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)同步裝置,包括:
修改模塊,用于在多個(gè)域名服務(wù)器對(duì)應(yīng)的所述裝置中修改網(wǎng)站的域名;
同步模塊,用于將修改后的域名同步到所述多個(gè)域名服務(wù)器中。
本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)同步方法及裝置,該方法在多個(gè)域名服務(wù)器對(duì)應(yīng)的數(shù)據(jù)庫(kù)中修改網(wǎng)站的域名,將修改后的域名同步到所述多個(gè)域名服務(wù)器中。通過(guò)上述方法,即使存在大量的域名服務(wù)器,也可將已經(jīng)修改的域名同時(shí)更新到所有的域名服務(wù)器,有效的提高了數(shù)據(jù)同步的及時(shí)性。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)同步方法的過(guò)程示意圖;
圖2為本申請(qǐng)實(shí)施例提供的第一種數(shù)據(jù)同步系統(tǒng)結(jié)構(gòu)示意圖;
圖3為本申請(qǐng)實(shí)施例提供的第二種數(shù)據(jù)同步系統(tǒng)結(jié)構(gòu)示意圖;
圖4為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
圖1為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)同步過(guò)程,具體包括以下步驟:
S101:在多個(gè)域名服務(wù)器對(duì)應(yīng)的數(shù)據(jù)庫(kù)中修改網(wǎng)站的域名。
由于將域名服務(wù)器分為主域名服務(wù)器以及從域名服務(wù)器的模式,會(huì)為了保證主域名服務(wù)器在與從域名服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí),主域名服務(wù)器不會(huì)因?yàn)樨?fù)載過(guò)大而造成宕機(jī),從而對(duì)同時(shí)與主域名服務(wù)器進(jìn)行數(shù)據(jù)同步的從域名服務(wù)器的數(shù)量進(jìn)行了限制,如果存在大量的從域名服務(wù)器,這樣會(huì)造成數(shù)據(jù)同步不能及時(shí)同步到所有從域名服務(wù)器中,及時(shí)性較低。
因此,在本申請(qǐng)中,不再將域名服務(wù)器分成主域名服務(wù)器和從域名服務(wù)器,而是將域名服務(wù)器均作為同一級(jí)別的域名服務(wù)器,并且,將所有的域名服務(wù)器都與同一個(gè)數(shù)據(jù)庫(kù)相連,如圖2所示。
進(jìn)一步的,在實(shí)際應(yīng)用中,用戶(hù)在注冊(cè)申請(qǐng)到一個(gè)自己的網(wǎng)站的域名后,后續(xù)有可能會(huì)存在用戶(hù)對(duì)自己注冊(cè)的網(wǎng)站的域名進(jìn)行修改的情況,在本申請(qǐng)中,用戶(hù)在對(duì)自己注冊(cè)的網(wǎng)站的域名進(jìn)行修改的過(guò)程中,具體是在圖2中所示的數(shù)據(jù)庫(kù)中完成的。
另外,本申請(qǐng)也提供了修改網(wǎng)站的域名的整個(gè)過(guò)程,具體的,數(shù)據(jù)庫(kù)可接收用戶(hù)發(fā)送的攜帶有待修改域名的標(biāo)識(shí)以及待修改域名的內(nèi)容的域名修改請(qǐng)求,根據(jù)該待修改域名的標(biāo)識(shí),確定該待修改域名對(duì)應(yīng)的包含有待修改域名的記錄,根據(jù)該待修改域名的內(nèi)容,對(duì)包含有待修改域名的記錄中保存的域名進(jìn)行修改,并在該待修改域名對(duì)應(yīng)的序列號(hào)上加一。
在此需要說(shuō)明的是,域名具體是存儲(chǔ)在zone文件中的,一個(gè)域名對(duì)應(yīng)的一個(gè)zone文件,而zone文件是存儲(chǔ)在數(shù)據(jù)庫(kù)中的記錄中的,并且,數(shù)據(jù)庫(kù)中一個(gè)記錄中可以只保存一個(gè)用戶(hù)申請(qǐng)注冊(cè)的網(wǎng)站的域名,也即,數(shù)據(jù)庫(kù)中一個(gè)記錄中可以只保存一個(gè)包含用戶(hù)申請(qǐng)注冊(cè)的網(wǎng)站的域名的zone文件。
并且,由于后續(xù)需要對(duì)域名進(jìn)行同步操作,因此,必須需要知道數(shù)據(jù)庫(kù)中保存的哪個(gè)域名是被修改過(guò)的,在本申請(qǐng)中,可采用序列號(hào)的形式來(lái)標(biāo)識(shí)域名是否被修改過(guò),具體的,可針對(duì)任一域名,在數(shù)據(jù)庫(kù)中開(kāi)始建立該域名時(shí)候,需要為該域名建立一個(gè)初始序列號(hào),后續(xù),每修改一次域名,則可在序列號(hào)上加一,并把加一后的序列號(hào)作為該域名新的序列號(hào),當(dāng)然也可以加二,甚至加N(N大于1的正整數(shù)),只要保證修改前該域名的序列號(hào)與修改后該域名的序列號(hào)不一致即可,并且,每個(gè)域名的初始序列號(hào)可以相同,也可以不同。
另外,還需要說(shuō)明的是,在接收用戶(hù)發(fā)送的域名修改請(qǐng)求時(shí),可以直接由數(shù)據(jù)庫(kù)接收,也可以由Web服務(wù)器(如,webdns平臺(tái))接收用戶(hù)發(fā)送的域名修改請(qǐng)求,再由Web服務(wù)器轉(zhuǎn)發(fā)給數(shù)據(jù)庫(kù),如圖3所示。
進(jìn)一步的,由于在主域名服務(wù)器和從域名服務(wù)器的模式下,用戶(hù)在修改自己的域名時(shí)通常都是在主域名服務(wù)器中進(jìn)行修改的,并且,如果多個(gè)用戶(hù)均對(duì)某域名進(jìn)行修改時(shí),主域名服務(wù)器會(huì)將最后一個(gè)用戶(hù)的修改的域名作為最終保存的域名,但是,如果第一個(gè)修改域名的用戶(hù)突然卡死或網(wǎng)絡(luò)延遲造成該第一個(gè)修改域名的用戶(hù)變成了最后一個(gè)修改域名的用戶(hù),這樣主域名服務(wù)器保存的是其實(shí)是第一個(gè)修改域名的用戶(hù)所修改的域名,顯然,這有可能會(huì)造成修改的錯(cuò)誤,為了保證用戶(hù)在修改域名的過(guò)程中的準(zhǔn)確性,因此,當(dāng)用戶(hù)在主域名服務(wù)器中進(jìn)行域名修改時(shí),會(huì)為該用戶(hù)的操作行為進(jìn)行上鎖,也就是說(shuō),為該用戶(hù)的操作行為進(jìn)行上鎖后,在上鎖的過(guò)程中,只有該用戶(hù)才可以在主域名服務(wù)器進(jìn)行操作,其他用戶(hù)需要排隊(duì)等待,當(dāng)該用戶(hù)在主域名服務(wù)器中操作完成后,主域名服務(wù)器會(huì)自動(dòng)為該用戶(hù)進(jìn)行解鎖,這樣下一個(gè)用戶(hù)可在主域名服務(wù)器進(jìn)行操作。
從上述也可以看出,當(dāng)存在大量的用戶(hù)去修改自己的網(wǎng)站的域名時(shí),勢(shì)必會(huì)造成用戶(hù)的等待時(shí)間過(guò)長(zhǎng),針對(duì)上述出現(xiàn)的問(wèn)題,在本申請(qǐng)中,可以采用數(shù)據(jù)庫(kù)自帶的行鎖解決,具體的,數(shù)據(jù)庫(kù)中每個(gè)記錄都會(huì)有一個(gè)行鎖,該行鎖只會(huì)對(duì)該行鎖對(duì)應(yīng)的記錄進(jìn)行加鎖,當(dāng)用戶(hù)在修改某個(gè)記錄中包含的域名時(shí),該行鎖就會(huì)對(duì)該用戶(hù)進(jìn)行加鎖,當(dāng)前加鎖的這段時(shí)間段內(nèi),只有該用戶(hù)才可以對(duì)該記錄進(jìn)行操作,其他用戶(hù)也想對(duì)記錄進(jìn)行操作時(shí)需要排隊(duì)等待,但是其他用戶(hù)想對(duì)數(shù)據(jù)庫(kù)中別的記錄中包含的域名進(jìn)行修改時(shí),則可進(jìn)行操作,這樣大大的降低了用戶(hù)的等待時(shí)間。
S102:將修改后的域名同步到所述多個(gè)域名服務(wù)器中。
當(dāng)用戶(hù)在數(shù)據(jù)庫(kù)中對(duì)自己注冊(cè)的網(wǎng)站的域名進(jìn)行修改完成后,數(shù)據(jù)庫(kù)可分別與每個(gè)域名服務(wù)器建立連接,并將修改后的域名同步到多個(gè)域名服務(wù)器中,當(dāng)然,多個(gè)域名服務(wù)器可每隔一定的周期時(shí)間向數(shù)據(jù)庫(kù)發(fā)送更新詢(xún)問(wèn)請(qǐng)求,以此確定數(shù)據(jù)庫(kù)中是否發(fā)生了更新,如果數(shù)據(jù)庫(kù)中發(fā)生了更新,則數(shù)據(jù)庫(kù)在接收到更新詢(xún)問(wèn)請(qǐng)求后,可分別與每個(gè)域名服務(wù)器建立連接,如果數(shù)據(jù)庫(kù)中沒(méi)有發(fā)生更新,則不用做任何操作處理。
進(jìn)一步的,本申請(qǐng)?zhí)峁┝藢⑿薷暮蟮挠蛎降蕉鄠€(gè)域名服務(wù)器中的方式,具體的,數(shù)據(jù)庫(kù)將攜帶有各域名的標(biāo)識(shí)以及各域名的序列號(hào)發(fā)送給每個(gè)域名服務(wù)器,域名服務(wù)器根據(jù)各域名的標(biāo)識(shí),找到各域名,并根據(jù)各域名的序列號(hào),確定哪些域名是需要同步的域名(即,待同步的域名),將確定出的待同步的域名的標(biāo)識(shí)攜帶在數(shù)據(jù)同步請(qǐng)求中發(fā)送給數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)根據(jù)待同步的域名的標(biāo)識(shí),在數(shù)據(jù)庫(kù)中查找出待同步的域名,并將待同步的域名發(fā)送給每個(gè)域名服務(wù)器,完成整個(gè)數(shù)據(jù)同步。
另外,在此需要說(shuō)明的是,數(shù)據(jù)庫(kù)中所修改的不僅僅只有域名,也有可能是包含域名存儲(chǔ)路徑的配置文件,如,named.conf配置文件,可通過(guò)該配置文件查找到保存域名,如果包含域名存儲(chǔ)路徑的配置文件發(fā)生了修改,則需要通過(guò)上述方式將配置文件同步到多個(gè)域名服務(wù)器中。
由于在現(xiàn)有技術(shù)中所涉及的主域名服務(wù)器和從域名服務(wù)器模式中,從域名服務(wù)器中所保存的zone文件的文件格式為data格式,而主域名服務(wù)器中所保存的zone文件的文件格式為txt格式,后續(xù),如果主域名服務(wù)器發(fā)生了宕機(jī),則切換到從域名服務(wù)器,用戶(hù)是無(wú)法對(duì)從域名服務(wù)器中所保存的zone文件中的域名進(jìn)行修改的,并且,可讀性很差,因此,針對(duì)上述情況,本申請(qǐng)可在同一級(jí)別的域名服務(wù)器中設(shè)置所保存文件的文件格式,讓每個(gè)域名服務(wù)器中所包含的文件的文件格式均為txt格式,這樣后續(xù)無(wú)論哪個(gè)域名服務(wù)器發(fā)生了宕機(jī),都可以使用其他域名服務(wù)器代替進(jìn)行域名解析工作。
最后,在此需要說(shuō)明的是,本申請(qǐng)中所涉及的圖2中的數(shù)據(jù)庫(kù)只是在數(shù)據(jù)同步中發(fā)揮作用,而正常的dns查詢(xún)和解析是在域名服務(wù)器中進(jìn)行的,也就是說(shuō),當(dāng)用戶(hù)輸入網(wǎng)站的網(wǎng)址后,終端將該域名攜帶在信息獲取請(qǐng)求中發(fā)送給多個(gè)域名服務(wù)器中的任意一個(gè),域名服務(wù)器將域名解析成IP地址,并根據(jù)解析后的IP地址,將信息獲取請(qǐng)求發(fā)送給IP地址對(duì)應(yīng)的服務(wù)器,并從服務(wù)器中獲取信息。
以上為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)同步方法,基于同樣的思路,本申請(qǐng)實(shí)施例還提供一種數(shù)據(jù)同步裝置。
如圖4所示,本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)同步裝置包括:
修改模塊401,用于在多個(gè)域名服務(wù)器對(duì)應(yīng)的所述裝置中修改網(wǎng)站的域名;
同步模塊402,用于將修改后的域名同步到所述多個(gè)域名服務(wù)器中。
所述修改模塊401具體用于,接收用戶(hù)發(fā)送的域名修改請(qǐng)求,其中,所述域名修改請(qǐng)求中攜帶有待修改域名的標(biāo)識(shí)以及待修改域名的內(nèi)容,根據(jù)所述待修改域名的標(biāo)識(shí),確定所述待修改域名對(duì)應(yīng)的記錄,根據(jù)所述待修改域名的內(nèi)容,對(duì)所述記錄中保存的數(shù)據(jù)進(jìn)行修改,并在所述待修改域名對(duì)應(yīng)的序列號(hào)上加一。
所述同步模塊402具體用于,分別與每個(gè)所述域名服務(wù)器建立連接,將攜帶有各域名的標(biāo)識(shí)以及各域名的序列號(hào)發(fā)送給每個(gè)域名服務(wù)器;其中,域名服務(wù)器根據(jù)所述各域名的標(biāo)識(shí)以及所述各域名的序列號(hào),確定待同步的域名,并將確定出的待同步的域名的標(biāo)識(shí)攜帶在數(shù)據(jù)同步請(qǐng)求中發(fā)送給所述同步模塊402;
所述同步模塊402還具體用于,根據(jù)所述待同步的域名的標(biāo)識(shí),將待同步的域名發(fā)送給每個(gè)所述域名服務(wù)器。
所述修改模塊401具體用于,通過(guò)Web服務(wù)器接收用戶(hù)發(fā)送的域名修改請(qǐng)求。
所述域名服務(wù)器中包含txt格式的文件。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性?xún)?nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類(lèi)型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(pán)(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪(fǎng)問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
以上所述僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。