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