一種ldap集群數(shù)據(jù)同步方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,尤其涉及一種LDAP集群數(shù)據(jù)同步方法及系統(tǒng)。
【背景技術(shù)】
[0002] LDAP是基于TCP/IP協(xié)議的目錄訪問協(xié)議,是Internet上目錄服務(wù)的通用訪問協(xié) 議。LDAP的出現(xiàn)簡(jiǎn)化了 X. 500目錄的復(fù)雜度,降低了開發(fā)成本,是X. 500標(biāo)準(zhǔn)的目錄訪問協(xié) 議DAP的子集,同時(shí)也作為IETF的一個(gè)正式標(biāo)準(zhǔn)。
[0003] 現(xiàn)有LDAP集群數(shù)據(jù)同步方案中,需要對(duì)LDAP集群進(jìn)行配置;一個(gè)集群中,必須有 一個(gè)服務(wù)器為主,其他服務(wù)器為從。主服務(wù)器負(fù)責(zé)推送更新數(shù)據(jù)到從服務(wù)器,或者從服務(wù)器 從主設(shè)備上下載更新數(shù)據(jù)。
[0004] 該方式下,對(duì)主服務(wù)器的依賴性較強(qiáng)。主服務(wù)器一旦出現(xiàn)異常,則需要重新配置整 個(gè)集群中的主從關(guān)系,從而導(dǎo)致在一段時(shí)間內(nèi),該同步過程無(wú)法進(jìn)行,進(jìn)而導(dǎo)致整個(gè)同步過 程的可用性較低。
[0005] 因此,需要一種可靠性更高的LDAP集群數(shù)據(jù)同步方法。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本申請(qǐng)?zhí)峁┝艘环NLDAP集群數(shù)據(jù)同步方法,以解決現(xiàn)有技術(shù)中的LDAP 集群數(shù)據(jù)同步方法可用性低的問題。
[0007] 為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┤缦录夹g(shù)方案:
[0008] -種LDAP集群數(shù)據(jù)同步方法,應(yīng)用于LDAP集群數(shù)據(jù)同步系統(tǒng),該系統(tǒng)包括:同步 控制器及待同步LDAP集群,所述同步控制器包括:至少一個(gè)同步控制模塊和至少一個(gè)數(shù)據(jù) 同步模塊,所述至少一個(gè)同步控制模塊中包含有一個(gè)主同步控制模塊,所述待同步LDAP集 群包括至少一個(gè)待同步LDAP服務(wù)器,該方法應(yīng)用于所述同步控制器,包括:
[0009] 所述主同步控制模塊接收待同步數(shù)據(jù);
[0010] 將所述待同步數(shù)據(jù)按照預(yù)設(shè)規(guī)則劃分為至少一個(gè)待同步數(shù)據(jù)塊;
[0011] 為每一個(gè)待同步數(shù)據(jù)塊生成一個(gè)待同步任務(wù),所述待同步任務(wù)中至少包含有所述 待同步數(shù)據(jù)塊的標(biāo)識(shí);
[0012] 獲取所述至少一個(gè)數(shù)據(jù)同步模塊的狀態(tài)信息,所述狀態(tài)信息中至少包括所述數(shù)據(jù) 同步模塊當(dāng)前同步任務(wù)個(gè)數(shù)及任務(wù)權(quán)重值;
[0013] 從符合預(yù)設(shè)條件的數(shù)據(jù)同步模塊中,按照任務(wù)權(quán)重值由小到大的順序,選擇預(yù)設(shè) 個(gè)數(shù)的數(shù)據(jù)同步模塊作為目標(biāo)數(shù)據(jù)同步模塊;
[0014] 分別向各個(gè)目標(biāo)數(shù)據(jù)同步模塊發(fā)送與其對(duì)應(yīng)的至少一個(gè)待同步任務(wù);
[0015] 目標(biāo)數(shù)據(jù)同步模塊依次讀取與其對(duì)應(yīng)的至少一個(gè)待同步任務(wù)中,每個(gè)待同步任務(wù) 對(duì)應(yīng)的待同步數(shù)據(jù)塊,并在所述待同步任務(wù)對(duì)應(yīng)的依賴任務(wù)被完成的情況下,執(zhí)行將所述 待同步數(shù)據(jù)塊同步到所述待同步LDAP集群中的LDAP服務(wù)器中的步驟。
[0016] 優(yōu)選的,所述分別向各個(gè)目標(biāo)數(shù)據(jù)同步模塊發(fā)送與其對(duì)應(yīng)的至少一個(gè)待同步任務(wù) 之后還包括:
[0017] 依據(jù)各個(gè)目標(biāo)數(shù)據(jù)同步模塊對(duì)應(yīng)的至少一個(gè)待同步任務(wù)及其任務(wù)權(quán)重值,修改各 個(gè)目標(biāo)數(shù)據(jù)同步模塊的當(dāng)前同步任務(wù)個(gè)數(shù)及任務(wù)權(quán)重值;
[0018] 在所述目標(biāo)數(shù)據(jù)同步模塊將所述待同步數(shù)據(jù)塊同步到所述待同步LDAP集群中的 LDAP服務(wù)器中后還包括:
[0019] 將所述目標(biāo)數(shù)據(jù)同步模塊的當(dāng)前同步任務(wù)個(gè)數(shù)減一,并將所述任務(wù)權(quán)重值減去所 述待同步數(shù)據(jù)塊對(duì)應(yīng)的權(quán)重值。
[0020] 優(yōu)選的,還包括:
[0021] 當(dāng)執(zhí)行將所述待同步數(shù)據(jù)塊同步到所述待同步LDAP集群中的LDAP服務(wù)器中的 步驟失敗時(shí),等待預(yù)設(shè)時(shí)間后,再次執(zhí)行將所述待同步數(shù)據(jù)塊同步到所述至少一個(gè)待同步 LDAP服務(wù)器中的步驟,當(dāng)失敗次數(shù)達(dá)到預(yù)設(shè)次數(shù)時(shí),記錄失敗信息,并保存所述待同步數(shù) 據(jù)。
[0022] 優(yōu)選的,所述待同步數(shù)據(jù)塊的標(biāo)識(shí)為所述待同步數(shù)據(jù)的流水起始號(hào)和流水結(jié)束 號(hào)。
[0023] 優(yōu)選的,還包括:
[0024] 主同步控制模塊和所述數(shù)據(jù)同步模塊分別按照預(yù)設(shè)心跳周期更新心跳時(shí)間。
[0025] 優(yōu)選的,所述至少一個(gè)同步控制模塊中還包括至少一個(gè)從同步控制模塊。
[0026] 優(yōu)選的,還包括:當(dāng)所述主同步控制模塊異常時(shí),從所述至少一個(gè)從同步控制模塊 中選擇一個(gè)作為主同步控制模塊。
[0027] 優(yōu)選的,所述符合預(yù)設(shè)條件的數(shù)據(jù)同步模塊為:最后心跳時(shí)間距當(dāng)前時(shí)間不長(zhǎng)于 五個(gè)心跳周期。
[0028] -種LDAP集群數(shù)據(jù)同步系統(tǒng),包括:同步控制器及待同步LDAP集群,所述同步控 制器包括:至少一個(gè)同步控制模塊和至少一個(gè)數(shù)據(jù)同步模塊,所述至少一個(gè)同步控制模塊 中包含有一個(gè)主同步控制模塊,所述待同步LDAP集群包括至少一個(gè)待同步LDAP服務(wù)器,其 中:
[0029] 所述同步控制器中,所同步控制模塊用于接收待同步數(shù)據(jù),將所述待同步數(shù)據(jù)按 照預(yù)設(shè)規(guī)則劃分為至少一個(gè)待同步數(shù)據(jù)塊;為每一個(gè)待同步數(shù)據(jù)塊生成一個(gè)待同步任務(wù), 所述待同步任務(wù)中至少包含有所述待同步數(shù)據(jù)塊的標(biāo)識(shí);獲取所述至少一個(gè)數(shù)據(jù)同步模 塊的狀態(tài)信息,所述狀態(tài)信息中至少包括所述數(shù)據(jù)同步模塊當(dāng)前同步任務(wù)個(gè)數(shù)及任務(wù)權(quán)重 值;從符合預(yù)設(shè)條件的數(shù)據(jù)同步模塊中,按照任務(wù)權(quán)重值由小到大的順序,選擇預(yù)設(shè)個(gè)數(shù)的 數(shù)據(jù)同步模塊作為目標(biāo)數(shù)據(jù)同步模塊;分別向各個(gè)目標(biāo)數(shù)據(jù)同步模塊發(fā)送與其對(duì)應(yīng)的至少 一個(gè)待同步任務(wù);目標(biāo)數(shù)據(jù)同步模塊依次讀取與其對(duì)應(yīng)的至少一個(gè)待同步任務(wù)中,每個(gè)待 同步任務(wù)對(duì)應(yīng)的待同步數(shù)據(jù)塊,并在所述待同步任務(wù)對(duì)應(yīng)的依賴任務(wù)被完成的情況下,執(zhí) 行將所述待同步數(shù)據(jù)塊同步到所述待同步LDAP集群中的LDAP服務(wù)器中的步驟。
[0030] 經(jīng)由上述的技術(shù)方案可知,本申請(qǐng)實(shí)施例公開的LDAP集群數(shù)據(jù)同步方法,由獨(dú)立 于LDAP集群外的控制器來進(jìn)行同步控制,無(wú)需依賴于集群內(nèi)的主服務(wù)器,提高了同步方法 的可用性。
[0031] 并且,由控制器中的同步控制模塊對(duì)數(shù)據(jù)同步模塊進(jìn)行整體分析,對(duì)多個(gè)LDAP服 務(wù)器并行進(jìn)行同步操作,提高了控制器的工作效率及整個(gè)同步過程的效率、縮短了同步時(shí) 間。
【附圖說明】
[0032] 為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請(qǐng)的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。
[0033] 圖1為本申請(qǐng)實(shí)施例公開的數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)示意圖;
[0034] 圖2為本申請(qǐng)實(shí)施例公開的一種數(shù)據(jù)同步方法的流程圖;
[0035] 圖3為本申請(qǐng)實(shí)施例公開的又一數(shù)據(jù)同步方法的流程圖。
【具體實(shí)施方式】
[0036] 下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;?本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0037] 本申請(qǐng)公開的LDAP集群數(shù)據(jù)同步方法,應(yīng)用于LDAP集群數(shù)據(jù)同步系統(tǒng),該系統(tǒng)的 結(jié)構(gòu)如圖1所示,包括:同步控制器100及待同步LDAP集群200,所述同步控制器100包括: 至少一個(gè)同步控制模塊101和至少一個(gè)數(shù)據(jù)同步模塊102,所述至少一個(gè)同步控制模塊101 中包含有一個(gè)主同步控制模塊l〇la,所述待同步LDAP集群200包括至少一個(gè)待同步LDAP 服務(wù)器201??梢灶A(yù)先為每一個(gè)LDAP服務(wù)器設(shè)置一個(gè)對(duì)應(yīng)的服務(wù)信息表,如下LDAP服務(wù)信 息表所示:
[0039] 表 1
[0040] 其中,編號(hào)可以為ID可以是每個(gè)服務(wù)器在集群中的唯一編號(hào),例如001。服務(wù)IP 為該服務(wù)器的IP地址,例如192. 168. 1. 9。服務(wù)端口為該服務(wù)器通過哪一端口接收同步數(shù) 據(jù),例如A1 口。
[0041] 同理,同步控制模塊也可以對(duì)應(yīng)設(shè)置一個(gè)信息表,如下同步控制服務(wù)信息表所 示:
[0043] 表 2
[0044] 其中,最后心跳時(shí)間是指同步控制模塊最近一次進(jìn)行心跳同步的時(shí)間。而如果其 為主同步控制模塊,則在最后一項(xiàng)填"是",如果其為從同步控制模塊,則最后一項(xiàng)填"否"。 或者,填充其他能夠區(qū)別其為主同步控制模塊或者從同步控制模塊的標(biāo)識(shí)。
[0045] 該方法流程如圖2所示,包括:
[0046] 步驟S201 :所述主同步控制模塊接收待同步數(shù)據(jù);
[0047] 本實(shí)施例中,待同步數(shù)據(jù)可以為樹形存儲(chǔ)的數(shù)據(jù),如圖3所示,包括根節(jié)點(diǎn)A,一級(jí) 節(jié)點(diǎn)B1-B5,二級(jí)節(jié)點(diǎn)C1-C8。每個(gè)節(jié)點(diǎn)下面的數(shù)字代表其子節(jié)點(diǎn)的數(shù)目。每個(gè)節(jié)點(diǎn)的權(quán)重 為其子節(jié)點(diǎn)的數(shù)目。
[0048] 步驟S202 :將所述待同步數(shù)據(jù)按照預(yù)設(shè)規(guī)則劃分為至少一個(gè)待同步數(shù)據(jù)塊;
[0049]