System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及計算機,尤其涉及一種序列號生成方法和裝置。
技術介紹
1、在分布式系統中,很多業務場景需要生成并使用全局唯一序列號(也稱為全局唯一標識符),比如銀行業核心業務系統中的賬戶序號、流水號、交易訂單號等,這類序號生成規則要求序列唯一性和遞增性。其中,賬戶序號類的遞增規則為每次累加1,但并發數要求相對不高,一般使用集中式數據進行累加的方法進行解決。而對于流水號類的序號,規則并發數特別高,每筆交易都需要生成該序號,傳統數據庫的解決方案可能無法滿足性能要求。
技術實現思路
1、本公開提供一種序列號生成方法和裝置,以至少在一定程度上解決相關技術中的技術問題之一。本公開的技術方案如下:
2、根據本公開實施例的第一方面,提供一種序列號生成方法,應用于微服務應用程序內的序列號生成組件,包括:接收所述微服務應用程序內任一實例發送的序列號申請請求;向全局序列管理服務發送注冊請求,以獲取所述全局序列管理服務為所述實例分配的實例標識;基于第一預設規則生成所述實例對應的時鐘標識,并初始化所述實例對應的本地順序號;其中,所述時鐘標識用于標識所述實例的時間窗口,所述本地順序號用于標識對應時間窗口內序列號的生成順序;根據當前時間戳、所述實例標識、所述時鐘標識和初始化后的本地順序號,生成目標序列號,并將所述目標序列號發送給所述實例。
3、根據本公開實施例的第二方面,提供了一種序列號生成裝置,應用于微服務應用程序內的序列號生成組件,包括:接收模塊,用于接收所述微服務應用程序內任一實例發送
4、根據本公開實施例的第三方面,提供一種電子設備,包括:處理器;用于存儲所述處理器可執行指令的存儲器;其中,所述處理器被配置為執行所述指令,以實現如本公開第一方面實施例所述的序列號生成方法。
5、根據本公開實施例的第四方面,提供一種計算機可讀存儲介質,當所述計算機可讀存儲介質中的指令由電子設備的處理器執行時,使得電子設備能夠執行如本公開第一方面實施例所述的序列號生成方法。
6、根據本公開實施例的第五方面,提供一種計算機程序產品,包括:計算機程序,所述計算機程序被處理器執行時實現如本公開第一方面實施例所述的序列號生成方法。
7、本公開的實施例提供的技術方案至少帶來以下有益效果:
8、在本技術方案中,接收微服務應用程序內任一實例發送的序列號申請請求;向全局序列管理服務發送注冊請求,以獲取全局序列管理服務為實例分配的實例標識;基于第一預設規則生成實例對應的時鐘標識,并初始化實例對應的本地順序號;其中,時鐘標識用于標識實例的時間窗口,本地順序號用于標識對應時間窗口內序列號的生成順序;根據當前時間戳、實例標識、時鐘標識和初始化后的本地順序號,生成目標序列號,并將目標序列號發送給實例,由此,在生成序列號的過程中,不采用集中式的序列號生成方法,而是利用分布式架構的思路將序列號生成組件集成到微服務應用程序中,并增加全局序列管理服務來統一管理序列,實現在本地直接生成序列號,極大提升了序列號生成的性能,能夠滿足金融場景下的分布式業務系統需求;其中,序列號由時間戳、實例標識、時鐘標識、順序號組成,由此,通過在序列號中增加時鐘標識,可在檢測到時鐘回撥后換時鐘標識,以避免生成的序列重復,解決大型分布式系統因時鐘校準等原因引起的時鐘回撥問題;其中,通過增加全局序列管理服務來分配、管理和回收實例標識,有效保證了分布式系統中各實例標識的全局唯一性。
9、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本公開。
本文檔來自技高網...【技術保護點】
1.一種序列號生成方法,其特征在于,應用于微服務應用程序內的序列號生成組件,包括:
2.根據權利要求1所述的方法,其特征在于,所述根據當前時間戳、所述實例標識、所述時鐘標識和初始化后的本地順序號,生成目標序列號,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述目標位數的設定類型的第一數值,生成所述目標序列號,包括:
4.根據權利要求2所述的方法,其特征在于,所述根據所述時鐘標識,確定本次生成序列號對應的時鐘標識,包括:
5.根據權利要求2所述的方法,其特征在于,所述根據初始化后的本地順序號或者上次生成目標序列號對應的本地順序號,確定本次生成目標序列號對應的本地順序號,包括:
6.根據權利要求5所述的方法,其特征在于,所述根據初始化后的本地順序號,確定本次生成目標序列號對應的本地順序號,包括:
7.根據權利要求5所述的方法,其特征在于,所述根據上次生成目標序列號對應的本地順序號,確定本次生成目標序列號對應的本地順序號,包括:
8.根據權利要求1所述的方法,其特征在于,所述方法,還包括:
9.根據權利要求1所述的方法,其特征在于,所述方法,還包括:
10.一種序列號生成裝置,其特征在于,應用于微服務應用程序內的序列號生成組件,包括:
...【技術特征摘要】
1.一種序列號生成方法,其特征在于,應用于微服務應用程序內的序列號生成組件,包括:
2.根據權利要求1所述的方法,其特征在于,所述根據當前時間戳、所述實例標識、所述時鐘標識和初始化后的本地順序號,生成目標序列號,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述目標位數的設定類型的第一數值,生成所述目標序列號,包括:
4.根據權利要求2所述的方法,其特征在于,所述根據所述時鐘標識,確定本次生成序列號對應的時鐘標識,包括:
5.根據權利要求2所述的方法,其特征在于,所述根據初始化后的本地順序號或者上次生成目標序列號對應的...
【專利技術屬性】
技術研發人員:曾海波,廖文勝,
申請(專利權)人:四川農村商業聯合銀行股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。