大企业才用的分布式唯一Id,它比GUID好

这篇具有很好参考价值的文章主要介绍了大企业才用的分布式唯一Id,它比GUID好。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

支持.Net Core(2.0及以上)与.Net Framework(4.5及以上)

可以部署在Docker, Windows, Linux, Mac。

分布式唯一Id,顾名思义,是指在全世界任何一台计算机上都不会重复的唯一Id。

在单机/单服务器/单数据库的小型应用中,不需要用到这类东西。但在高并发、海量数据、大型分布式应用中,分布式唯一Id却是构建整个系统的最核心一环。

 

设想一下如下场景:

在某个大型电商系统A中,“订单”这类大数据(比如,每天产生1500万条订单)必定不会存储在1台数据库服务器中,而是分布式的存储在多台数据库服务器组成的一个集群中(比如,1000台数据库服务器组成一个集群)。由于海量数据+高并发等特性时常会伴随“订单”发生,所以,如何确保“订单Id”在整个系统中唯一不重复,已经有些设计难度了。

 

若此时,另外一家公司的电商系统B,要与你家的电商系统A合并(甚至还有更多公司的C、D、E、等等),那么这些系统合并时“订单Id”出现重复的概率是很大的。要把这些重复修改成唯一,又会要费一番不小的改造功夫,十分麻烦…

 

但是,若我们一开始就使用分布式唯一Id来实现“订单Id”,则不会有这些麻烦,一切迎刃而解,且十分轻松…

 

DeveloperSharp包中,提供了全网最完善的分布式唯一Id生成工具,使用示例如下:

若是在.Net Core环境下,代码如下:

using DeveloperSharp.Framework.CoreUtility; //从NuGet引用DeveloperSharp包
--------------------------

   //首先在Startup.cs或Program.cs文件中进行工具预载
   Services.AddTransient<IUtility, Utility>();
--------------------------

   //IU是在相关文件中,通过依赖注入方式获取的IUtility类型对象
   var Id = IU.GenerateId("Order");//产生分布式唯一Id

 

若是在.Net Framework环境下,代码如下:

using DeveloperSharp.Framework.CoreUtility;//从NuGet引用DeveloperSharp包
------------------------

     IUtility IU = new Utility();
     var Id = IU.GenerateId("Order");//产生分布式唯一Id

说明:(1)“分布式唯一Id”的长度较长,具有全球唯一性,最早起源于facebook、twitter的应用。

           (2)“分布式唯一Id”比GUID更好。GUID偶尔还是会有重复出现,而且它是无序的,会导致数据库查询性能下降,而“分布式唯一Id”是相对有序的。

经验:其实,无论是单机小型应用,还是多机大型分布式应用,从今天开始,你都应采用“分布式唯一Id”作为数据库中、每个表的“主键”。因为与所谓可读性、长短、自增Id比起来,它的扩展性好太多、太多...

 

GenerateId方法详细说明如下:

GenerateId
声明:string GenerateId(string Prefix)
用途:生成主键Id (此处生成的是一种分布式唯一Id)
参数:(1)string Prefix -- 前缀词
返回:String -- 主键Id

 

首发原文链接:http://www.developersharp.cc/content5.html

结尾


关注下方公众号,助力升职加薪。

你也可以加入我们(添加微信:894988403,备注“进群”),向大佬学习,探行业内幕,享时代机遇。

大企业才用的分布式唯一Id,它比GUID好

 文章来源地址https://www.toymoban.com/news/detail-699048.html

到了这里,关于大企业才用的分布式唯一Id,它比GUID好的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 集群高并发环境下如何保证分布式唯一全局ID生成?

    在集群高并发环境下保证分布式唯一全局ID生成是一个具有挑战性的问题。下面笔者将为大家提供几种常见的解决方案: UUID是一个128位的全局唯一标识符,它可以在不同的计算机和时间上生成。UUID的生成是基于MAC地址、时间戳等信息,因此可以保证在分布式环境下的唯一性

    2024年02月13日
    浏览(47)
  • JAVA实用工具: 改良版雪花算法-分布式唯一ID神器

    Seata内置了一个分布式UUID生成器,用于辅助生成全局事务ID和分支事务ID。具体如下特点: 高性能 全局唯一 趋势递增 这个分布式UUID生成器是基于雪花算法进行改良的,本文针对改良的方法、目的等进行总结 改良版雪花算法的实现原理参考如下: Seata基于改良版雪花算法的分

    2024年02月14日
    浏览(43)
  • 【Spring Boot 3】【Redis】分布式唯一ID生成器

    软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时

    2024年01月20日
    浏览(46)
  • 关于分布式唯一ID的思考-雪花算法及美团Leaf方案详解

    首先,我们看一下日常开发中常见的雪花算法工具类: 引入hutool 工具类 代码所涉及的具体含义,会在下文中逐一分析,那么这么一个看似复杂的雪花算法背后,是否还有着鲜为人知的问题呢,为什么美团会基于最基础的雪花算法开发自己的Leaf解决方案呢,那让我们带着疑惑

    2023年04月17日
    浏览(44)
  • 【Redis】4、全局唯一 ID生成、单机(非分布式)情况下的秒杀和一人一单

    🍀 id 字段不是 自增 AUTO_INCREMENT 的 每个店铺都可以发布优惠券: 用户抢购的时候会生成订单并保存到 tb_voucher_order 这张表中 如订单 id 使用数据库自增 ID 会出现以下问题: 🍀 id 规律性太明显(可能会被用户猜测到优惠券的 id) 🍀 受单表数据量的限制(优惠券订单可能很多

    2024年02月16日
    浏览(43)
  • 【分布式】分布式ID

    分布式场景下,一张表可能分散到多个数据结点上。因此需要一些分布式ID的解决方案。 分布式ID需要有几个特点: 全局唯一(必要) :在多个库的主键放在一起也不会重复 有序(必要) :避免频繁触发索引重建 信息安全 :ID连续,可以根据订单编号计算一天的单量,造成

    2024年02月07日
    浏览(51)
  • 分布式id实战

    目录 常用方式 特征 潜在问题 信息安全 高性能 UUID 雪花算法 数据库生成 美团Leaf方案 Leaf-segment 数据库方案 Leaf-snowflake 方案 uuid 雪花算法 数据库主键 全局唯一 趋势递增 信息安全 如果id连续递增, 容易被爬虫, 批量下载数据 如果订单id是连续递增, 容易被竞争对手推算出日交

    2024年02月21日
    浏览(46)
  • 分布式ID(2):雪花算法生成ID

    1 雪花算法简介 这种方案大致来说是一种以划分命名空间(UUID也算,由于比较常见,所以单独分析)来生成ID的一种算法,这种方案把64-bit分别划分成多段,分开来标示机器、时间等,比如在snowflake中的64-bit分别表示如下图(图片来自网络)所示: 41-bit的时间可以表示(1L

    2024年01月20日
    浏览(48)
  • 架构设计-分布式ID

    1.不要用主键ID作为业务单号的唯一标识,因为一是数据同步麻烦,第二一旦业务数据扩张涉及到分库分表则数据维护麻烦,因为此时主键ID容易造成重复 。 2.对于有相似属性的业务ID如直播或者录播ID存储在业务表中的一个字段,一旦程序员哪天状态不好忘记区分类型,就很

    2024年02月03日
    浏览(88)
  • 算法、语言混编、分布式锁与分布式ID、IO模型

    数据结构和算法是程序的基石。我们使用的所有数据类型就是一种数据结构(数据的组织形式),写的程序逻辑就是算法。 算法是指用来操作数据、解决程序问题的一组方法。 对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源(空间

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包