当前位置: 首页 > news >正文

购物网站流量怎么做广州网站建

购物网站流量怎么做,广州网站建,五台县建设局网站,南通网站建设兼职1、分布式id使用场景 分布式ID是指在分布式系统中用于唯一标识每个元素的数字或字符串。在分布式系统中#xff0c;各个节点或服务可能独立运行在不同的服务器、数据中心或地理位置#xff0c;因此需要一种机制来确保每个生成的ID都是全局唯一的#xff0c;以避免ID冲突。 …1、分布式id使用场景 分布式ID是指在分布式系统中用于唯一标识每个元素的数字或字符串。在分布式系统中各个节点或服务可能独立运行在不同的服务器、数据中心或地理位置因此需要一种机制来确保每个生成的ID都是全局唯一的以避免ID冲突。 以下是分布式ID的一些关键特点 全局唯一性分布式ID必须保证在全系统中的唯一性即使在大规模分布式环境中也能确保没有重复。 高可用性分布式ID的生成机制需要高可用确保在任何时候都能生成ID。 高性能ID生成过程应该快速且对系统性能影响小。 高并发在高并发场景下分布式ID生成机制应能支持大量ID的生成。 无单点依赖分布式ID的生成不应依赖于单个中心服务以避免成为系统瓶颈。 易于分配分布式ID应易于在各个节点上分配和生成。 可扩展性随着系统规模的扩大ID生成机制应能够水平扩展以满足需求。 安全性分布式ID不应包含敏感信息且不易被预测。 有序性虽然不是严格要求但在某些场景下有序的ID可以帮助优化数据库存储和查询性能。 2、常见的分布式id生成算法 UUIDUniversally Unique Identifier基于特定算法生成的全局唯一标识符。数据库自增ID依赖于数据库的自增字段来保证唯一性。Redis生成ID使用Redis的原子操作来生成唯一ID。Snowflake算法由Twitter开发的算法生成一个64位的长整型ID。分段步长从数据库批量获取ID段然后由应用逐步分配。 3、mongodb分布式id解决方案 3.1、分布式id生成规则 MongoDB内置分布式id是指在MongoDB数据库中有一个内置的机制可以生成全局唯一的、递增的分布式id。这个分布式id被称为ObjectId。每当在MongoDB中创建一个新文档时都会自动生成一个ObjectId作为该文档的唯一标识符。 mongodb分布式id思想有点类似于雪花算法。 ObjectId是一个12字节的唯一标识符由以下三个部分组成 时间戳前4个字节表示该ObjectId的生成时间戳可以精确到秒级别。这样可以保证新创建的文档的ObjectId总是比旧的文档的ObjectId大。机器标识符接下来的3个字节表示MongoDB服务器的唯一标识符如果是在同一台机器上创建的文档那么这部分是相同的。进程标识符接下来的2个字节是MongoDB进程的唯一标识符用于区分同一机器上不同的MongoDB进程。随机数最后的3个字节是一个随机数用于避免在同一秒内生成相同的ObjectId。 由于ObjectId是全局唯一的因此可以在分布式系统中使用它作为文档的唯一标识符而不需要进行复杂的分布式id生成和管理。 对于一个特定的id比如6641a6afda7b897ba34d5a81 前4个字节8个十六进制即6641a6af将十六进制转为10进制的1715578543单位为秒数再乘以1000得到时间戳毫秒数用js计算得到的即为生成id的时间精确到秒 最后3个字节6个十六进制即4d5a81表示一个计数器用于保证在同一秒产生的id不重复。3个字节总共有3*8位最大可表示2^2416777216一千六百多万绝对够用的。 3.2、不同集合也能保证全局唯一 网上大部分都是说这个id只保证在同一个集合表里是唯一的在不同集合是没有保证的。也就是说假设有ABC三张表自动生成的id保证在三张表内部是唯一的但不同表之间的id可以重复。针对这个说法笔者做了一个演示。 循环1w次每次循环生成表1的id和表2的id分别把生成id放到一个有序的集合里。 最后发现两个集合没有交集也就是说两个表的id不会重复生成的id是全集合唯一的。 public void testUid() {SetString set1 new LinkedHashSet();SetString set2 new LinkedHashSet();for (int i 0; i 10000; i) {Table1 t new Table1();table1Repository.insert(t);set1.add(t.getId());Table2 t2 new Table2();table2Repository.insert(t2);set2.add(t2.getId());}System.out.println(set1);System.out.println(set2);System.out.println(两个表id交集 Sets.intersection(set1, set2));} 从生成的id 表1的第一个id为e9表2的第一个元素为ea表1的第二个id为eb表2的第二个元素为ec... 刚好是十六进制的递增顺序。 至于出现这种情况是否为巧合可能需要从mongodb源码找到答案。 3.3、客户端生成API 虽然mongodo生成的id是全局唯一的但过度依赖数据库生成id可能会给数据库带来压力因此也可以选择客户端api在应用程序内部生成id再设置到数据库里。如下为java版本相关API存放于org.mongodb.bson依赖
http://www.dnsts.com.cn/news/271879.html

相关文章:

  • 二建官网报名入口无锡网站排名优化
  • 刘娇娇做网站骗钱的网站建设英文术语
  • 整站优化如何自做网站
  • 写作网站起点直播平台推荐
  • 织梦同时运行多个网站丽水市做网站的
  • 优秀国外网站wordpress商品列表对比插件
  • 怎样做才能让网站有排名wordpress静态设置
  • 网站推广排名教程上海本地app有哪些
  • 网站建设如何找客户临城网站建设
  • 网站建设多长时间能学会厦门免费自助建站模板
  • wordpress 关闭自动保存功能win7优化大师下载
  • dw网站开发环境麦客网做网站
  • asp网站开发国内外现状江门网页建站模板
  • 学做家常菜的网站 知乎个人网站怎么建立
  • 网站引导页下载深圳培训网站建设
  • 做优惠网站多少钱创同盟做网站
  • 做淘宝客注册网站好做吗深圳网站关键词排名查询
  • 门户网站首页wordpress代码高亮插件张戈
  • 中国建设银行网站会员注册网站空间域名购买
  • 建设工程信息网站宜宾网站建设公司
  • 网站设置手机才能播放宁波市建筑业管理信息网
  • 网站主页面布局怎么做内部网站建设软件
  • illustrator 学习网站wordpress prevent copy paste
  • 网站开发 男生网站建设客户开发方案
  • 门户型网站建设方案wordpress白屏问题
  • 淄博网站建设公司有几家山东济南seo整站优化
  • 给个网站好人有好报2021手机网站报名链接怎么做
  • 网站建设平台案例南宁住建局官方网
  • photoshop画简单网站开发者管理
  • 网站建设意思vps wordpress cpu占用过高