.Net下的分布式唯一ID

分布式唯一ID,顧名思義,是指在全世界任何一臺計算機上都不會重復的唯一Id 。
在單機/單服務器/單數據庫的小型應用中,不需要用到這類東西 。但在高并發、海量數據、大型分布式應用中,這類卻是構建整個系統的最核心一環 。
設想一下如下場景:
在某個大型電商系統A中,“訂單”這類大數據(比如,每天產生1500萬條訂單)必定不會存儲在1臺數據庫服務器中,而是分布式的存儲在多臺數據庫服務器組成的一個集群中(比如,1000臺數據庫服務器組成一個集群) 。由于海量數據+高并發等特性時常會伴隨“訂單”發生,所以,如何確保“訂單Id”在整個系統中唯一不重復,已經有些設計難度了 。
若此時,另外一家公司的電商系統B , 要與你家的電商系統A合并(甚至還有更多公司的C、D、E、等等),那么這些系統合并時“訂單Id”出現重復的概率是很大的 。要把這些重復修改成唯一,又會要費一番不小的改造功夫,十分麻煩…
但是,若我們一開始就使用分布式唯一Id來實現“訂單Id” , 則不會有這些麻煩,一切迎刃而解,且十分輕松…
以下代碼提供了十分完善的分布式唯一Id生成(支持.Net/.Net Core/.Net Framework),可在需要時采用:
using DeveloperSharp.Framework.CoreUtility;//從NuGet引用DeveloperSharp包------------------------     IUtility IU = new Utility();     var Id = IU.GenerateId("Order");//產生分布式唯一Id附注:其實,無論是單機小型應用 , 還是多機大型分布式應用 , 現在都應采用“分布式唯一Id”作為數據庫中表的“主鍵” 。因為與所謂可讀性、自增Id比起來,它的擴展性好太多、太多...
IUtility.GenerateId方法詳細說明如下:
GenerateId聲明:string GenerateId(string Prefix)用途:生成主鍵Id (此處生成的是一種分布式唯一Id)參數:(1)string Prefix  --  前綴詞返回:String   --  主鍵Id【附注】:文中所有示例均已成功運行通過??!茧H踅渙?支持,請微信掃描二維碼,備注“進群”!
【.Net下的分布式唯一ID】

    推薦閱讀