本發明涉及數據同步處理技術領域,主要應用于系統間的數據同步,具體涉及一種基于賬號的跨系統的數據同步方法及系統。
背景技術:
隨著互聯網業務在各行各業的逐步開展與實施,行業間的交互從線下走到了線上,線上不同組織系統間的數據同步及時性與可靠性越來越被系統設計人員看重。
目前不同的互聯網企業之間如果開展業務合作,首先要做的便是彼此間賬號信息的關聯。由于涉及不同企業間的數據同步,常用的數據同步方式有:
其一是基于實時數據接口之間的數據傳遞,這種方式傳遞的實時性高,效果比較好,但需要系統間提供可靠的網絡及系統資源;
其二是基于第一種方案的補充機制,系統間通過輪詢的方式對變更數據進行接口拉取,以保障不同系統之間的數據不丟失,但針對業務規模比較龐大的系統,輪詢每個業務的增量數據在系統性能和效率上,無疑要付出高額的代價。例如,現今,基于電商資源整合的運營平臺,他們需要為商家提供在不同電商平臺上的對接服務,如國內的淘寶、京東,國外的ebay、amazon等,這些電商平臺均提供商家合作api,運營平臺可以對接不同電商平臺的api來幫助商家提供資源一體化管理,運營平臺需要不間斷地通過api拉取各電商平臺的相關數據,如訂單、財務、庫存等。伴隨著用戶量的增加,如何提升數據同步效率、控制數據拉取丟失率、保障同步系統可靠性的解決方案十分重要。
技術實現要素:
為解決現有技術的局限性和不足,本發明目的是,提供一種基于賬號的跨系統數據同步方法及系統,通過綁定跨系統的賬號與有同步需求的業務,形成基于賬號的業務數據同步任務,按照不同業務的同步需求配置同步執行時間,使不同賬號在不同業務場景內定時執行業務數據的同步,實現不同賬號的數據同步個性化定制,支持系統間業務數據同步的差異化;通過將同步任務的規劃、執行及監控劃分,形成獨立的同步規劃系統、同步執行系統及同步監控系統,形成以處理同步任務為核心的系統,有效抵抗用戶量增長帶來的系統壓力。
通過定時任務將全量賬號進行數據同步而導致的效率降低、數據通過可靠性降低、系統擴展性弱的問題;其中,所述全量賬號是指所管理的全部第三方系統的賬號;
本發明的技術方案如下:一種基于賬號的跨系統數據同步系統,包括兩個系統:同步規劃系統和同步執行系統;
所述同步規劃系統包括賬號規劃同步子系統、業務規劃同步子系統(同步任務的創建)、規劃任務發布子系統(同步任務的發布及分配)、規劃檢查子系統(識別處理分配異常及執行異常):
所述執行系統主要負責執行同步規劃系統分配出的任務,保證系統整體執行的高效性,同步執行系統采用分布式的多點部署方式,對于規劃系統中防止異常丟失的情況。
所述賬號規劃同步子系統用于檢測平臺內狀態變更的賬號,并將這些發生變更的賬號數據發送給業務規劃同步子系統,業務規劃同步子系統根據賬戶綁定的業務情況進行具體業務規劃的開啟和中止;
所述業務規劃同布子系統是根據賬號開通的業務服務數據,為相應的業務創建以時間為維度的規劃任務,創建完畢后再根據賬號的數據動態設定下一次需要規劃的時間;
所述規劃任務發布子系統是將規劃出的任務分配到執行系統進行任務執行操作,期間由于異常丟失的任務由規劃檢查子系統檢測并重新發布。
所述同步執行系統主要負責執行同步規劃系統分配出的任務,保證系統整體執行的高效性,執行系統采用分布式的多點部署方式,對于規劃系統中防止異常丟失的情況。
在所述同步規劃系統和同步執行系統的基礎上,還包括同步規劃任務庫、同步執行任務庫、同步監控系統;同步規劃系統按照規劃周期,定期地從同步規劃任務庫中提取需要做執行規劃的同步任務,經規劃完畢的同步執行任務存儲在執行任務庫中,待到達執行時間時,同步規劃系統從同步執行任務庫中抓取同步執行任務,并發送至同步規劃執行系統完成同步執行任務的實施;每一次的同步執行任務規劃過程和同步執行任務實施過程中的運行數據,均上傳至同步監控系統;
所述同步規劃任務庫,用于存放與跨系統賬號相關聯的、有業務數據同步需求、待規劃執行的任務;
所述同步執行任務庫,用于存放已完成執行規劃的同步任務;
所述同步監控系統,用于定期收集所有規劃系統和規劃執行系統的運行情況,對規劃和執行同步數據過程中的異常做預警操作,實時控制規劃系統與執行系統,包括系統起停、任務狀態實時調整、任務分配。
在所述同步規劃系統和同步執行系統的基礎上,還包括規劃任務庫、執行任務庫、同步監控系統;規劃系統按照規劃周期,定期地從規劃任務庫中提取需要做執行規劃的同步任務,經規劃完畢的同步執行任務存儲在執行任務庫中,待到達執行時間時,規劃系統從執行任務庫中抓取同步執行任務,并發送至規劃執行系統完成同步執行任務的實施;每一次的執行任務規劃過程和執行任務實施過程中的運行數據,均上傳至監控系統;
所述規劃任務庫,用于存放與跨系統賬號相關聯的、有業務數據同步需求、待規劃執行的任務;
所述執行任務庫,用于存放已完成執行規劃的同步任務;
所述同步監控系統,用于定期收集所有規劃系統和規劃執行系統的運行情況,對規劃和執行同步數據過程中的異常做預警操作,實時控制規劃系統與執行系統,包括系統起停、任務狀態實時調整、任務分配;
一種基于賬號的跨系統數據同步方法,其特征在于通過綁定跨系統的賬號與有同步需求的業務,形成基于賬號的業務數據同步任務,按照不同業務的同步需求配置同步執行時間,使不同賬號在不同業務場景內定時執行業務數據的同步,實現不同賬號的數據同步個性化定制,支持系統間業務數據同步的差異化,具體步驟包括:
步驟1:建立跨系統的用戶賬號與有數據同步需求的業務之間的關聯:在數據同步覆蓋的業務場景中,為每一個賬號創建與業務相關的同步規劃任務,形成與賬號綁定的業務同步規劃任務,并將同步規劃任務放入同步規劃任務庫中;
所述同步規劃任務指明需要定期同步更新數據的任務類型,存儲在規劃任務庫中;
步驟2:當達到同步規劃任務需進行執行的時間點時,即過一個業務數據同步規劃周期,同步規劃任務系統觸發數據同步執行任務的創建;
當達到同步執行任務需進行規劃的時間點時,即過一個業務數據同步規劃周期,同步規劃系統觸發數據同步執行任務的創建,具體為:業務規劃同步子系統從規劃任務庫中提取“未執行”的規劃任務,并按照規劃任務,對規劃任務的即將執行進行初始化,包括具體任務內容及期望執行時間的初始化,經規劃后的同步執行任務放入執行任務庫中;
其中,所述具體任務內容指明任務編號、同步執行任務類型、任務信息、任務執行狀態;
所述期望執行時間是指某一項同步任務的即將執行的時間;
特別地,針對規劃系統實施的任務規劃過程及本次規劃時間段內出現的相關異常,將定期同步錄入監控系統中,統一進行數據歸檔;
特別地,數據同步執行任務的創建按照具體需求,創建一個或多個;
步驟3:由同步規劃任務系統發布及分配同步執行任務:當時間達到同步執行任務的期望時間點,同步規劃任務系統中規劃任務發布子系統從執行任務庫中,提取所有“期望執行時間在當前時間點”且“任務執行狀態為待執行”的同步執行任務,并向同步規劃任務系統中同步執行系統發布任務,通知進行數據同步任務執行;
步驟4:同步執行系統獲取到規劃系統發送的同步執行任務,按照任務的具體內容,在指定時刻完成數據同步;同步執行系統在執行任務的過程中,將同步任務的執行情況定期同步至同步規劃任務系統中監控系統進行數據歸檔;
特別地,在數據同步任務執行過程中,若遇到異常導致同步需要暫時停止,更新同步執行任務的期望時間,待到更新后的期望時間點后,再次執行數據同步;
特別地,如若在分布式環境中,同步執行系統分布在多個節點上,每個節點上的同步執行系統將當前節點正在執行的任務編號發送給規劃檢查子系統,由規劃檢查子系統對執行系統中的任務狀態和規劃系統維護的任務狀態核對,如果節點存在任務丟失情況則將對應任務重新發布到執行系統。
特別地,在數據同步任務執行過程中,若遇到異常導致同步需要暫時停止,更新同步執行任務的期望時間,待到更新后的期望時間點后,再次執行數據同步;
特別地,規劃系統和規劃執行系統的所有運行情況均由監控系統實時采集;同時,監控系統不僅對規劃和執行同步數據過程中的異常做預警操作;也實時控制規劃系統與執行系統,包括系統起停、任務狀態實時調整、任務分配;
步驟5:當步驟四的數據同步任務執行完畢,同步規劃任務系統記錄本次數據同步任務的結束時間;
步驟6:按照業務數據同步周期,當進入在下一個規劃期時,同步規劃任務系統繼續按照步驟2的方法,規劃同步任務的執行。
進一步,在步驟1所述為每一個賬號創建與業務相關的同步規劃任務過程中,涉及到的信息包括對接系統的關聯賬號信息、數據同步的業務類型、業務數據同步規劃周期、同步規劃任務的啟停狀態;
其中,所述業務數據同步規劃周期,用于指明從規劃任務庫中提取規劃任務,做執行時間和任務信息的規劃周期;
所述規劃任務的啟停狀態,包括未執行、暫停、已執行,用于標識同步規劃任務在當前時刻的執行狀態;當出現執行異常的情況,通過設置規劃任務的啟停狀態,控制規劃任務的暫停和重試。
進一步,步驟2的具體流程為:業務規劃同步子系統從規劃任務庫中提取“未執行”的規劃任務,并按照規劃任務,對規劃任務的即將執行進行初始化,包括具體任務內容及期望執行時間的初始化,經規劃后的同步執行任務放入執行任務庫中;
數據同步執行任務的創建按照具體需求,創建一個或多個;針對規劃系統實施的任務規劃過程及本次規劃時間段內出現的相關異常,將定期同步錄入監控系統中,統一進行數據歸檔;
其中,所述具體任務內容指明任務編號、同步執行任務類型、任務信息、任務執行狀態;所述期望執行時間是指某一項同步任務的即將執行的時間。
進一步,在所述步驟4中,如若是在分布式環境中,同步執行系統分布在多個節點上,每個節點上的同步執行系統將當前節點正在執行的任務編號發送給規劃檢查子系統,由規劃檢查子系統對同步執行系統中的任務狀態和規劃系統維護的任務狀態核對,如節點存在任務丟失情況則將對應任務重新發布到同步執行系統。
有益效果
(1)本發明以跨系統的賬號為基礎,通過將賬號與有同步需求的業務進行綁定,使業務數據的同步執行能按照業務當前同步執行的需求,實施規劃、執行及監控,支持不同賬號在不同業務場景內定時、自動地同步數據,實現多系統間數據同步的定制化,并提高不同賬號在執行數據同步過程中的完整性和靈活性;
(2)本發明通過將數據同步的規劃、執行及監控過程獨立劃分,使數據同步任務不僅實現整體系統結構的水平擴展性,也能抵抗用戶量增長帶來的系統壓力;
(3)本發明以系統間賬號為單位,在同步任務規劃和同步任務執行過程中,通過實時收集、記錄和監控每一個賬號的每一次業務數據的同步情況,保證對異常及故障的發生過程、發源地的快捷及準確定位;
附圖說明
圖1為本發明實施例中一種基于賬號的跨系統的數據同步系統結構圖;
圖2為本發明實施例中同步規劃系統的結構圖;
圖3為本發明實施例中基于賬號的跨系統的數據同步方法實施流程圖;
圖4為本發明實施例中基于規劃和執行時間的數據同步執行過程展示圖。
具體實施例
為了讓本技術領域的人能夠更好的理解本申請實例中的技術方案,下面結合附圖對本申請實施中的本發明的技術方案做進一步的說明。
圖1為本發明實施例中一種基于賬號的跨系統的數據同步系統結構圖,具體包括規劃任務庫101、執行任務庫102、同步規劃系統103、同步執行系統104、同步監控系統105;其中規劃系統按照規劃周期,定期地從規劃任務庫中提取需要做執行規劃的同步任務,經規劃完畢的同步執行任務存儲在執行任務庫中,待到達執行時間時,規劃系統從執行任務庫中抓取同步執行任務,并發送至規劃執行系統完成同步執行任務的實施;每一次的執行任務規劃過程和執行任務實施過程中的運行數據,均上傳至監控系統。
所述規劃任務庫101用于存放與跨系統賬號相關聯的、有業務數據同步需求、待規劃執行的任務;
所述執行任務庫102用于存放已完成執行規劃的同步任務;
所述同步規劃系統103,一方面通過檢索賬號,為有新業務同步需求的賬號,創建與賬號綁定的規劃任務;另一方面按照規劃周期,定期地根據規劃任務庫中的任務,創建相關規劃任務的執行任務,并對執行任務在未來時刻的實施做規劃;
具體包括賬號規劃同步子系統103-1、業務規劃同步子系統103-2(同步任務的創建)、規劃任務發布子系統103-3(同步任務的發布及分配)、規劃檢查子系統103-4(識別處理分配異常及執行異常);
所述同步執行系統104:對規劃系統規劃出的同步執行任務進行實施,定時將自己正在執行的同步任務上報給規劃系統進行核對,防止有任務丟失;
所述同步監控系統105:定期收集所有規劃系統和規劃執行系統的運行情況,對規劃和執行同步數據過程中的異常做預警操作,保障系統能夠穩定高效的運行。
參見圖2為本發明實施例中同步規劃系統的結構圖,其中,所述賬號規劃同步子系統103-1用于檢測同步狀態變更的賬號(同步狀態包括有新的業務同步需求、停止某幾項業務同步、關閉所有的業務同步),并將這些發生變更的賬號數據發送給業務規劃同步子系統,業務規劃同步子系統根據賬戶綁定的業務情況進行具體業務規劃的開啟和中止;
所述業務規劃同步子系統103-2負責同步執行任務的創建;根據賬號開通的業務服務數據,為相應的業務創建以時間為維度的規劃任務,創建完畢后再根據賬號的數據動態設定下一次需要規劃的時間;
所述規劃任務發布子系統103-3負責將同步執行任務對外發布至同步執行系統104;在發布過程中,因異常而丟失的任務由規劃檢查子系統103-4檢測并重新發布;
圖3為本發明實施例中一種基于賬號的跨系統的數據同步方法實施流程圖,通過綁定跨系統的賬號與有同步需求的業務,形成基于賬號的業務數據同步任務,按照不同業務的同步需求配置同步執行時間,使不同賬號在不同業務場景內定時執行業務數據的同步,實現不同賬號的數據同步個性化定制,支持系統間業務數據同步的差異化,具體包括:
步驟301:建立跨系統的用戶賬號與有數據同步需求的業務之間的關聯:在數據同步覆蓋的業務場景中,為每一個賬號創建與業務相關的同步規劃任務,形成與賬號綁定的業務同步規劃任務,并將同步規劃任務放入規劃任務庫中;
在創建過程中涉及到的信息具體包括:對接系統的關聯賬號信息、數據同步的業務類型、業務數據同步規劃周期、同步規劃任務的啟停狀態;
所述同步規劃任務指明了需要定期執行同步更新數據的任務類型,存儲在規劃任務庫101中;
所述業務數據同步規劃周期,用于指明從規劃任務庫中提取規劃任務,做執行時間和任務信息的規劃周期;
所述規劃任務的啟停狀態,包括未執行、暫停、已執行,用于標識同步規劃任務在當前時刻的執行狀態;當出現執行異常的情況,通過設置規劃任務的啟停狀態,控制任務的暫停和重試;
步驟302:當達到同步執行任務需進行規劃的時間點時,即過一個業務數據同步規劃周期,同步規劃系統103觸發數據同步執行任務的創建,具體為:業務規劃同步子系統103-2從規劃任務庫中提取“未執行”的規劃任務,并按照規劃任務,對規劃任務的即將執行進行初始化,包括具體任務內容及期望執行時間的初始化,經規劃后的同步執行任務放入執行任務庫102中;
其中,所述具體任務內容指明任務編號、同步執行任務類型、任務信息、任務執行狀態;
所述期望執行時間是指某一項同步任務的即將執行的時間;
特別地,針對同步規劃系統103實施的任務規劃過程及本次規劃時間段內出現的相關異常,將定期同步錄入監控系統105中,統一進行數據歸檔;
特別地,數據同步執行任務的創建按照具體需求,創建一個或多個;
步驟303:由規劃系統103發布及分配同步執行任務:當時間達到同步執行任務的期望時間點,規劃任務發布子系統103-3從執行任務庫中,提取所有“期望執行時間在當前時間點”且“任務執行狀態為待執行”的同步執行任務,并向同步執行系統104發布任務,通知進行數據同步任務執行;
步驟304:同步執行系統104獲取到規劃系統發送的同步執行任務,按照任務的具體內容,在指定時刻完成數據同步;執行系統在執行同步任務的過程中,將任務的執行情況定期同步至監控系統105進行數據歸檔;
特別地,采用分布式的方法,同步執行系統分布在多個節點上,每個節點上的同步執行系統將當前節點正在執行的任務編號發送給規劃檢查子系統103-4,由規劃檢查子系統103-4對執行系統104中的任務狀態和規劃系統103維護的任務狀態核對,如節點存在任務丟失情況則將對應任務重新發布到執行系統104。
特別地,在數據同步任務執行過程中,若遇到異常導致同步需要暫時停止,更新同步執行任務的期望時間,待到更新后的期望時間點后,再次執行數據同步;
步驟305:當步驟四的數據同步任務執行完畢,同步規劃系統記錄本次數據同步任務的結束時間;
步驟306:按照業務數據同步周期,當進入在下一個規劃期時,同步規劃系統繼續按照步驟二的方法,規劃同步任務的執行;
圖4為本發明實施例中基于規劃和執行時間的數據同步執行過程展示圖;在本發明實施例的同步執行展示圖中,將規劃時間和執行時間分為兩個時間維度,其中縱軸為規劃時間,用于記錄規劃任務的規劃頻率,比如9:00,9:30,10:00;橫軸為執行時間,用于記錄某一個同步執行任務的期望執行時間,比如9:00,9:30,10:00,10:30。
在同步執行任務創建前,根據系統數據同步覆蓋的業務場景為每一個賬號創建相應的同步規劃任務,比如:商品、訂單的數據需要進行跨系統的數據同步,那么就為一個賬號創建對應的商品同步規劃任務和訂單同步規劃任務;系統根據每個賬戶設定的業務數據同步間隔對規劃任務的下一次規劃時間進行刷新;在本發明實施例中,建立用戶賬號和“訂單同步”規劃任務的關聯,并將“訂單同步”規劃任務存儲在規劃任務庫中,當達到“訂單同步”規劃時刻,創建該任務的具體執行信息,比如“拉取9:00-9:30的amazon訂單,實現系統間的訂單同步”,期望執行時間是9:00;
當橫軸“執行時間”達到“拉取9:00-9:30的amazon訂單”的期望執行時間,即9:00,執行任務“拉取9:00-9:30的amazon訂單”從執行任務庫中提取,發送至執行系統進行執行操作,如果任務執行中遇到異常情況需要暫停一段時間(如10分鐘)后再執行,那么當前執行任務的期望時間將會更新到9:10,下一次當時間過了9:10,該執行任務將會被規劃系統提取出做二次執行。