[發明專利]分布式系統的序列號生成方法及裝置在審
| 申請號: | 201810439457.0 | 申請日: | 2018-05-09 |
| 公開(公告)號: | CN108647308A | 公開(公告)日: | 2018-10-12 |
| 發明(設計)人: | 劉瑞賢;許濤;張晉鋒;王榕 | 申請(專利權)人: | 曙光信息產業(北京)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;H04L29/08 |
| 代理公司: | 北京德恒律治知識產權代理有限公司 11409 | 代理人: | 章社杲;盧軍峰 |
| 地址: | 100193 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 分布式系統 生成序列號 客戶端 | ||
本發明公開了一種分布式系統的序列號生成方法及裝置,該序列號生成方法包括:劃分多個分片,其中每個分片的分片號互不相同;生成分片內的序列號以生成序列號,所述序列號包括所述分片號和所述分片內的序列號;所述分布式系統中的客戶端根據所述分片號獲取所述序列號。本發明的上述技術方案至少具有通用性好、性能較高的優勢。
技術領域
本發明涉及一種分布式系統的序列號生成方法及序列號生成裝置。
背景技術
在業務系統中,對動態生成的新數據常常需要一個序列號來唯一確定一條數據,表現在關系型數據庫中,一般是獨立的ID字段,但序列號的應用不局限于數據庫ID。其中,ID也稱為序列號或帳號,是某個體系中相對唯一的編碼。相當于是一種“身份證”在某一具體的事物中,身份標識號一般是不變的,可由設計者自己制定的規則來確定。
序列號有多種生成策略,如數據庫或第三方框架提供的自增ID、UUID(Universally Unique Identifier,通用唯一識別碼,其目的是讓分布式系統中的所有元素都能有唯一的辨識信息),或由業務系統自定義的序列號生成策略,如以時間戳或業務特定的不會重復的字符串為序列號等。
現有的自增的序列號簡單、性能好,但是如果業務上有特殊要求就不能用,比如作為訂單號會暴露自家的業務量,或者做了互為主從,用數據庫自增就可能重復。
UUID因為不會重復,天然適合分布式,但它不是數值型,長度又很長,建立索引的性能較差。
有時因為業務需求,需要業務相關的自定義序列號,如某些訂單號,要在售后流程中使用,需要操作人員輸入,不能太長,又要方便客服快速劃分領域,就有了自定義規則序列號,限制長度,同時規定好第幾位表示什么含義。但是這種策略只能用在特定的業務系統,做不到普遍適用。
發明內容
針對相關技術中存在的問題,本發明提出一種分布式系統的序列號生成方法及序列號生成裝置,至少具有通用性好、性能較高的優勢。
本發明的技術方案是這樣實現的:
根據本發明的一個方面,提供了一種分布式系統的序列號生成方法,包括:
劃分多個分片,其中每個分片的分片號互不相同;
生成分片內的序列號以生成序列號,序列號包括分片號和分片內的序列號;
分布式系統中的客戶端根據分片號獲取序列號。
在一個實施例中,根據分片號獲取序列號包括:客戶端根據客戶端的特征信息映射到相應的分片號,并獲取序列號。
在一個實施例中,序列號生成方法還包括:將序列號加1后回寫以表示序列號被占用。
在一個實施例中,特征信息為MAC地址或主機名。
在一個實施例中,通過共享的存儲系統記錄序列號;共享的存儲系統為緩存系統或者數據庫。
根據本發明的另一方面,提供了一種分布式系統的序列號生成裝置,分布式系統包括客戶端,序列號生成裝置包括:
共享的存儲系統,包括:
第一生成模塊,用于劃分多個分片,其中每個分片的分片號互不相同;
第二生成模塊,用于生成分片內的序列號以生成序列號,序列號包括分片號和分片內的序列號;
客戶端的獲取模塊,用于根據分片號獲取序列號。
在一個實施例中,獲取模塊包括:映射子模塊,用于根據客戶端的特征信息映射到相應的分片號并獲取序列號。
在一個實施例中,獲取模塊包括:回寫子模塊,用于將序列號加1后回寫共享的存儲系統以表示序列號被占用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于曙光信息產業(北京)有限公司,未經曙光信息產業(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810439457.0/2.html,轉載請聲明來源鉆瓜專利網。





