System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及分布式,尤其涉及一種分布式系統的數據存儲方法、裝置、電子設備和存儲介質。
技術介紹
1、隨著經濟的發展,包括金融在內的行業交易量和數據量也快速增長,傳統的集中式數據庫處理海量數據、高并訪問方面面臨嚴峻挑戰。所以出現了采用單元化部署或分庫分表的分布式架構,以應對交易量和數據量的增長。
2、基于分布式架構下,數據庫自增序列作為數據庫主鍵,無法滿足全局唯一性要求,所以在分布式數據庫中,生成全局唯一的標識(如id)是一個挑戰。常見的解決方案包括數據庫uuid、redis生成id、雪花算法等。其中雪花算法(snowflake)可生成長度17-19位的long型整數,單節點支持并發數4096,基于時間遞增以及主鍵總體有序,可以保證存儲和查詢效率,所以雪花算法的應用廣泛。
3、但是使用雪花算法生成全局唯一標識時,對于不同的微服務實例需要配置不同的工作序號以保證序號的唯一性,而在分布式微服務架構,多個節點上的微服務實例的唯一工作序號難以獲得,使得全局唯一性標識的生成過程復雜。
技術實現思路
1、本申請實施例提供一種分布式系統的數據存儲方法、裝置、電子設備和存儲介質,用以達到降低各個應用微服務的工作序號的獲取難度,保障各個工作序號的唯一性,實現提高數據處理效率的效果。
2、第一方面,本申請實施例提供一種分布式系統的數據處理方法,包括:
3、響應于目標數據的存儲指令,確定所述目標數據所存儲的數據庫所在的目標應用微服務;
4、基于序號
5、基于主鍵生成組件和所述工作序號,生成所述目標數據的主鍵;
6、根據所述目標數據和所述目標數據的主鍵,將所述目標數據存儲至所述數據庫中。
7、在一種可能的實施方式中,所述基于序號微服務獲得所述目標應用微服務的工作序號,包括:
8、基于序號微服務生成的工作序號表中,獲得所述目標應用微服務的工作序號,所述工作序號表用于記錄所有應用微服務的工作序號。
9、在一種可能的實施方式中,所述響應于目標數據的存儲指令,確定所述目標數據所存儲的數據庫所在的目標應用微服務之前,還包括:
10、響應于目標應用微服務的啟動指令,調用序號微服務生成所述目標應用微服務的工作序號;
11、從工作序號表查詢是否存在對應的工作序號;
12、若否,則將所述目標應用微服務的工作序號保存到所述工作序號表中;
13、若是,則調用序號微服務重新生成所述目標應用微服務的工作序號。
14、在一種可能的實施方式中,序號微服務生成所述目標應用微服務的工作序號,包括:
15、獲取目標應用微服務的應用參數,所述應用參數包括目標應用微服務名稱、ip地址和端口中的至少一種;
16、基于所述應用參數生成所述目標應用微服務的工作序號。
17、在一種可能的實施方式中,所述基于所述應用參數生成所述目標應用微服務的工作序號,包括:
18、對所述應用參數進行哈希計算,將獲得的哈希值確定為所述目標應用微服務的工作序號。
19、在一種可能的實施方式中,所述響應于目標數據的存儲指令,確定所述目標數據所存儲的數據庫所在的目標應用微服務之前,還包括:
20、搭建序號微服務,獲取各個應用微服務的注冊中心信息;
21、基于所述注冊中心信息,注冊所述序號微服務,以使所述序號微服務與各個應用微服務關聯在同一個系統中。
22、第二方面,本申請實施例提供一種分布式系統的數據處理裝置,包括:
23、確定模塊,用于響應于目標數據的存儲指令時,確定所述目標數據所存儲的數據庫所在的目標應用微服務;
24、獲取模塊,用于基于序號微服務獲得所述目標應用微服務的工作序號;
25、主鍵生成模塊,基于主鍵生成組件和所述工作序號,生成所述目標數據的主鍵;
26、數據處理模塊,用于根據所述目標數據和所述目標數據的主鍵,將所述目標數據存儲至所述數據庫中。
27、第三方面,本申請實施例提供一種電子設備,包括:存儲器,處理器;
28、所述存儲器存儲計算機執行指令;
29、所述處理器執行所述存儲器存儲的計算機執行指令,使得所述處理器執行如上第一方面和/或第一方面各種可能的實施方式。
30、第四方面,本申請實施例提供一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有計算機執行指令,所述計算機執行指令被處理器執行時用于實現如上第一方面各種可能的實施方式。
31、第五方面,本申請實施例提供一種計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現如上第一方面各種可能的實施方式。
32、本申請實施例提供的分布式系統的數據存儲方法、裝置、電子設備和存儲介質,通過序號微服務生成應用微服務的工作序號,應用微服務對目標數據進行存儲處理時,可直接獲得該工作序號,并基于雪花算法生成該目標數據的主鍵,進而基于該主鍵將目標數據存儲到數據庫中,其中,序號微服務生成應用微服務的工作序號,則無需通過參數配置的方式來獲得各個應用微服務的工作序號,降低各個應用微服務的工作序號的獲取難度,且基于序號微服務統一生成各個應用微服務的工作序號,可以保障工作序號的唯一性,進而保障主鍵的全局唯一性,實現提升數據主鍵的生成效率的同時,保障主鍵的全局唯一性,提升分布式系統的數據處理效率的效果。
本文檔來自技高網...【技術保護點】
1.一種分布式系統的數據處理方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述基于序號微服務獲得所述目標應用微服務的工作序號,包括:
3.根據權利要求2所述的方法,其特征在于,所述響應于目標數據的存儲指令,確定所述目標數據所存儲的數據庫所在的目標應用微服務之前,還包括:
4.根據權利要求3所述的方法,其特征在于,序號微服務生成所述目標應用微服務的工作序號,包括:
5.根據權利要求4所述的方法,其特征在于,所述基于所述應用參數生成所述目標應用微服務的工作序號,包括:
6.根據權利要求1至5中任意一項所述的方法,其特征在于,所述響應于目標數據的存儲指令,確定所述目標數據所存儲的數據庫所在的目標應用微服務之前,還包括:
7.一種分布式系統的數據處理裝置,其特征在于,包括:
8.一種電子設備,其特征在于,包括:存儲器,處理器;
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質中存儲有計算機執行指令,所述計算機執行指令被處理器執行時用于實現如權利要求1-6任一
10.一種計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現權利要求1-6任一項所述的方法。
...【技術特征摘要】
1.一種分布式系統的數據處理方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述基于序號微服務獲得所述目標應用微服務的工作序號,包括:
3.根據權利要求2所述的方法,其特征在于,所述響應于目標數據的存儲指令,確定所述目標數據所存儲的數據庫所在的目標應用微服務之前,還包括:
4.根據權利要求3所述的方法,其特征在于,序號微服務生成所述目標應用微服務的工作序號,包括:
5.根據權利要求4所述的方法,其特征在于,所述基于所述應用參數生成所述目標應用微服務的工作序號,包括:
6.根據權利...
【專利技術屬性】
技術研發人員:安凱,
申請(專利權)人:中國銀行股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。