[發明專利]一種分布式序列生成方法、裝置及系統有效
| 申請號: | 201910367543.X | 申請日: | 2019-05-05 |
| 公開(公告)號: | CN110162573B | 公開(公告)日: | 2021-04-30 |
| 發明(設計)人: | 苗海柱 | 申請(專利權)人: | 中國銀行股份有限公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F16/28;G06F16/22 |
| 代理公司: | 北京三友知識產權代理有限公司 11127 | 代理人: | 李輝 |
| 地址: | 100818 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 序列 生成 方法 裝置 系統 | ||
本說明書實施例公開了一種分布式序列生成方法、裝置及系統。所述方法包括接收目標服務器獲取序列的請求;獲取第一序列值,根據所述第一序列值和序列偏移量,獲得當前使用序列值,所述第一序列值是序列管理器從存儲服務器讀取的序列值,所述序列偏移量是在一個序列存儲周期內生成的最大序列數;在所述當前使用序列值基礎上遞增,獲得第二序列值,其中,所述序列管理器每隔所述序列存儲周期對所述第二序列值進行持久化存儲;將所述第二序列值與機器標識進行拼接,生成所述目標服務器的全局唯一序列。利用本說明書實施例可以根據實際場景生成全局唯一序列的同時,提高生成序列的效率。
技術領域
本說明書實施例方案屬于分布式系統技術領域,尤其涉及一種分布式序列生成方法、裝置及系統。
背景技術
隨著互聯網的飛速發展,大規模、分布式應用系統逐漸成為軟件系統的標配。在分布式系統中會存在許多臺服務器對外提供服務,許多場景下都需要為服務器分配在系統全局內的唯一序列ID,用來區分同一個服務請求具體是由哪臺服務器來提供的服務,例如業務上的訂單系統生成全局唯一訂單號、技術上的分庫分表系統生成全局唯一的數據庫表主鍵等。
目前,在分布式系統中為服務器生成全局唯一序列ID的方式有多種:一是使用統一服務器自身的序列ID生成機制來生成唯一序列ID,例如oracle數據庫、redis數據庫、zookeeper等都可以實現類似的功能。然而,該方式需要通過服務器特性來保證生成序列的唯一性,在高并發場景下使用單點服務器會成為單點瓶頸。例如使用oracle數據庫的序列生成機制,由于oracle數據庫本身就是一個單點,可接收的連接數是有限制的,所以當并發量達到一定程度時,oracle數據庫就會成為系統性能瓶頸。二是基于本地服務來生成分布式系統下全局唯一序列ID的雪花算法。雖然該方式是完全基于本地服務器來自行生成唯一序列,不存在單點瓶頸的問題,但雪花算法生成的序列是最大19位長度的序列,不可以自定義序列長度,當業務場景對序列長度有嚴格要求時,其并不適用。例如某業務應用場景要求序列為12位長度的定長序列,則雪花算法就不能滿足要求。
因此,業內亟需一種既可以保證生成的序列全局唯一,又可以使生成的序列適應不同分布式場景的解決方案。
發明內容
本說明書實施例目的在于提供一種分布式序列生成方法、裝置及系統,可以根據分布式序列的使用場景,在分布式系統內生成全局唯一的序列ID,從而可以在保證極高處理性能的同時有效提高生成序列的效率。
一方面本申請提供了一種分布式序列生成方法,包括:
接收目標服務器獲取序列的請求;
獲取第一序列值,根據所述第一序列值和序列偏移量,獲得當前使用序列值,所述第一序列值是序列管理器從存儲服務器讀取的序列值,所述序列偏移量是在一個序列存儲周期內生成的最大序列數;
在所述當前使用序列值基礎上遞增,獲得第二序列值,其中,所述序列管理器每隔所述序列存儲周期對所述第二序列值進行持久化存儲;
將所述第二序列值與機器標識進行拼接,生成所述目標服務器的全局唯一序列。
本說明書提供的所述方法的另一個實施例中,所述獲取第一序列值,根據所述第一序列值和序列偏移量,獲得當前使用序列值,所述第一序列值是序列管理器從存儲服務器讀取的序列值,包括:
判斷所述存儲服務器中是否存在持久化的序列值;
確定所述存儲服務器中存在持久化的序列值時,則從所述存儲服務器讀取最后一次持久化的序列值作為所述第一序列值。
本說明書提供的所述方法的另一個實施例中,還包括:
確定所述存儲服務器中不存在持久化的序列值時,則從所述存儲服務器讀取預設值作為所述第一序列值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國銀行股份有限公司,未經中國銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910367543.X/2.html,轉載請聲明來源鉆瓜專利網。





