本發(fā)明涉及通信,具體而言,涉及一種時間同步方法、云服務器、電子設備及存儲介質。
背景技術:
1、通常,為了確保了系統(tǒng)在分布式環(huán)境中的時間一致性,提出可以在一臺云服務器設備上部署多個同構時間戳的服務器,均采用docker容器化技術。在這個多容器環(huán)境中,由時間數(shù)據(jù)記錄系統(tǒng)的活動順序、交易發(fā)生時間以及其他一些關鍵事件,因此,容器時間同步的準確和及時,對系統(tǒng)的正常運行和業(yè)務數(shù)據(jù)一致性至關重要。
2、然而,由于容器化環(huán)境的特性,面臨著容器時間同步的挑戰(zhàn)。其中,在多容器環(huán)境中,容器之間的時間同步問題可能會導致時間數(shù)據(jù)的不一致性和混亂;以及,容器之間的時間偏移可能會產生數(shù)據(jù)一致性問題,并可能導致事件發(fā)生順序的混亂,從而影響系統(tǒng)的可追溯性和一致性;此外,由于容器共享宿主機的系統(tǒng)時間,容器之間的時間同步問題可能會導致容器之間的時間干擾,進而影響系統(tǒng)的穩(wěn)定性和安全性。
3、因此,亟需提供一種多容器的時間同步隔離方案。
技術實現(xiàn)思路
1、本發(fā)明的目的在于,針對上述現(xiàn)有技術中的不足,提供一種時間同步方法、云服務器、電子設備及存儲介質,以便提供一種多容器的時間同步隔離方案。
2、為實現(xiàn)上述目的,本技術實施例采用的技術方案如下:
3、第一方面,本技術實施例提供了一種時間同步方法,所述方法包括:
4、獲取當前容器同步時的第一同步時間參數(shù)與隨機生成的量子密鑰,所述第一同步時間參數(shù)包括:時間偏移量、同步系統(tǒng)時間、同步系統(tǒng)運行時間,所述時間偏移量用于指示所述當前容器的本地時間與由可靠時間源提供的可靠時間之間的偏移量,所述同步系統(tǒng)時間用于指示所述當前容器與所述可靠時間源啟動遠程時鐘同步時的本地時間,所述同步系統(tǒng)運行時間用于指示所述當前容器與所述可靠時間源啟動遠程時鐘同步時從開機至完成時鐘同步的運行時長;
5、根據(jù)所述時間偏移量、所述同步系統(tǒng)時間與所述量子密鑰,生成第一哈希值,并將所述第一哈希值與所述第一同步時間參數(shù)存儲至預設的數(shù)據(jù)庫中;
6、獲取所述數(shù)據(jù)庫中當前實際存儲的實際哈希值與實際同步時間參數(shù);
7、根據(jù)所述實際哈希值、所述實際同步時間參數(shù)與所述量子密鑰,確定所述第一同步時間參數(shù)是否被篡改;
8、若否,則獲取所述當前容器驗證時的當前時間參數(shù),其中,所述當前時間參數(shù)包括:當前系統(tǒng)時間與當前系統(tǒng)運行時間,所述當前系統(tǒng)時間用于指示所述當前容器驗證時的本地時間,所述當前系統(tǒng)運行時間用于指示所述當前容器從開機至完成驗證的運行時長;
9、根據(jù)所述當前系統(tǒng)時間、所述當前系統(tǒng)運行時間、所述同步系統(tǒng)時間、所述同步系統(tǒng)運行時間與所述時間偏移量,生成所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間。
10、可選地,所述根據(jù)所述實際哈希值、所述實際同步時間參數(shù)與所述量子密鑰,確定所述第一同步時間參數(shù)是否被篡改,包括:
11、根據(jù)所述實際同步時間參數(shù)與所述量子密鑰,生成驗證哈希值;
12、根據(jù)所述實際哈希值與所述驗證哈希值的比對結果,確定所述第一同步時間參數(shù)是否被篡改。
13、可選地,所述根據(jù)所述實際哈希值與所述驗證哈希值的比對結果,確定所述第一同步時間參數(shù)是否被篡改,包括:
14、若所述實際哈希值與所述驗證哈希值的比對結果為一致,則確定所述第一同步時間參數(shù)未被篡改;
15、若所述實際哈希值與所述驗證哈希值的比對結果為不一致,則確定所述第一同步時間參數(shù)已被篡改。
16、可選地,所述根據(jù)所述當前系統(tǒng)時間、所述當前系統(tǒng)運行時間、所述同步系統(tǒng)時間、所述同步系統(tǒng)運行時間與所述時間偏移量,生成所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間,包括:
17、確定所述當前系統(tǒng)時間與所述當前系統(tǒng)運行時間的第一差值;
18、確定所述同步系統(tǒng)時間與所述同步系統(tǒng)運行時間的第二差值;
19、確定所述第一差值與所述第二差值的誤差值;
20、根據(jù)所述誤差值,生成所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間。
21、可選地,所述根據(jù)所述誤差值,生成所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間,包括:
22、確定所述誤差值是否落入預先設定的誤差區(qū)間;
23、若是,則確定所述當前時間參數(shù)未被修改,并根據(jù)所述當前系統(tǒng)時間與所述時間偏移量,生成所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間;
24、若否,則確定所述當前時間參數(shù)已被修改,并使用網(wǎng)絡時間協(xié)議生成所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間。
25、可選地,所述根據(jù)所述當前系統(tǒng)時間與所述時間偏移量,生成所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間,包括:
26、確定所述當前系統(tǒng)時間與所述時間偏移量的求和結果,并將所述求和結果作為所述當前容器與所述可靠時間源啟動遠程時鐘同步后的同步時間。
27、可選地,所述獲取當前容器的初始同步時間參數(shù),包括:
28、使用網(wǎng)絡時間協(xié)議與所述可靠時間源啟動遠程時鐘同步,并獲取所述當前容器的時間偏移量、同步系統(tǒng)時間與同步系統(tǒng)運行時間。
29、可選地,還包括:
30、若所述第一同步時間參數(shù)已被篡改,則重新獲取并存儲所述當前容器再次同步時的新的第一同步時間參數(shù)。
31、第二方面,本技術實施例還提供了一種云服務器,所述云服務器上部署有多個容器,各容器之間相互隔離,通過在各容器上執(zhí)行上述第一方面提供的項所述的方法步驟實現(xiàn)各容器的時間同步。
32、第三方面,本技術實施例還提供了一種電子設備,包括:處理器、存儲介質和總線,所述存儲介質存儲有所述處理器可執(zhí)行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲介質之間通過總線通信,所述處理器執(zhí)行所述機器可讀指令,以執(zhí)行如第一方面提供的所述方法的步驟。
33、第四方面,本技術實施例還提供了一種計算機可讀存儲介質,所述存儲介質上存儲有計算機程序,所述計算機程序被處理器運行時執(zhí)行如第一方面提供的所述方法。
34、本技術的有益效果是:
35、本技術實施例提供一種時間同步方法、云服務器、電子設備及存儲介質,在本方案中,為了進一步提升時間數(shù)據(jù)的精確性和系統(tǒng)的安全性,引入了量子隨機數(shù)生成技術,先獲取隨機生成的量子密鑰,同時,基于容器隔離技術,云服務器上部署的每個容器內整個系統(tǒng)是在一個標準時間基準下進行時間同步,即獲取當前容器與可靠時間源啟動遠程時鐘同步時的第一同步時間參數(shù),第一同步時間參數(shù)包括:時間偏移量、同步系統(tǒng)時間、同步系統(tǒng)運行時間,并利用量子密鑰對時間偏移量與同步系統(tǒng)時間進行哈希值計算,生成第一哈希值,將第一哈希值與第一同步時間參數(shù)存儲至預設的數(shù)據(jù)庫中;在驗證時,從數(shù)據(jù)庫中讀取當前實際存儲的實際哈希值與實際同步時間參數(shù),并基于量子密鑰、實際哈希值與實際同步時間參數(shù),驗證第一同步時間參數(shù)是否被篡改,確保了時間數(shù)據(jù)在存儲過程中的完整性和不可篡改性;若未被篡改,則獲取當前容器驗證時的當前系統(tǒng)時間與當前系統(tǒng)運行時間,并根據(jù)當前系統(tǒng)時間、當前系統(tǒng)運行時間、同步系統(tǒng)時間與同步系統(tǒng)運行時間,生成當前容器與可靠時間源啟動遠程時鐘同步后的同步時間,以使得根據(jù)同步后的同步時間進行業(yè)務場景的時間計算。因此,在本方案中,各容器與可靠時間源啟動遠程時鐘同步操作時是互相隔離、互不影響,即每個容器的時間同步操作不會影響其他容器,實現(xiàn)了對云服務器上部署的各容器與可靠時間源之間的時間同步,從而提高系統(tǒng)的穩(wěn)定性和安全性,有效解決同一個宿主機下多個docker容器之間,時間同步不隔離問題。
36、可選地,本方案提供的時間同步方法,先是基于同步時獲取到的第一同步時間參數(shù)、從數(shù)據(jù)庫中讀取到的當前實際存儲的實際哈希值與實際同步時間參數(shù)以及量子密鑰,驗證第一同步時間參數(shù)是否被篡改;若未篡改,又基于當前系統(tǒng)時間、當前系統(tǒng)運行時間、同步系統(tǒng)時間與同步系統(tǒng)運行時間,驗證當前系統(tǒng)時間是否被外部篡改,以進一步確保當前系統(tǒng)時間和準確性。即本方案提出了對當前容器的時間數(shù)據(jù)進行雙重驗證,這樣,可以確保最終同步后的同步時間的準確性,且還可以增強各容器時間數(shù)據(jù)的隔離性,提升了對潛在數(shù)據(jù)篡改的防護能力。