首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
.Net下的分布式唯一ID
返回列表
发新帖
.Net下的分布式唯一ID
[复制链接]
发表于 2022-9-29 15:53:23
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
分布式唯一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
复制
代码
【附注】:文中所有示例均已成功运行通过!!技术交流/支持,请微信扫描二维码,备注“进群”!
回复
使用道具
举报
返回列表
浏览过的版块
DevOps与敏捷开发
网络安全
数据仓库与分析
Oracle
linux
人工智能
分布式数据库
物联网
SQL-Server
没腿的鸟
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表