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

在线考试系统网站建设云主机怎么做网站

在线考试系统网站建设,云主机怎么做网站,网站做虚假广告,90做网站文章目录问题及需求常用ID解决方案数据库自增IDUUIDRedis发号器Snowflake雪花算法分布式 ID 生成算法Snowflake原理关于bit与byte雪花算法的位数Snowflake必须注意的地方全局唯⼀、不能重复保证各个系统时间一致Snowflake雪花算法实现雪花算法测试结果问题及需求 单库下⼀般使… 文章目录问题及需求常用ID解决方案数据库自增IDUUIDRedis发号器Snowflake雪花算法分布式 ID 生成算法Snowflake原理关于bit与byte雪花算法的位数Snowflake必须注意的地方全局唯⼀、不能重复保证各个系统时间一致Snowflake雪花算法实现雪花算法测试结果问题及需求 单库下⼀般使用Mysql自增ID但是分库分表后会造成不同分片上的数据表主键会重复 需求性能强劲、全局唯一、防止恶意用户规矩id的规则来获取数据 常用ID解决方案 数据库自增ID 利用自增id, 设置不同的⾃增步长auto_increment_offset、auto-increment-increment DB1: 单数 //从1开始、每次加2 DB2: 偶数 //从2开始每次加2缺点 依靠数据库系统的功能实现但是未来扩容麻烦主从切换时的不⼀致可能会导致重复发号性能瓶颈存在单台sql上 UUID 性能非常高没有网络消耗 缺点 无序的字符串不具备趋势自增特性UUID太长不易于存储浪费存储空间很多场景不适用 Redis发号器 利用Redis的INCR和INCRBY来实现原子操作线程安全性能比Mysql强劲 缺点 需要占用网络资源增加系统复杂度 Snowflake雪花算法 twitter 开源的分布式 ID生成算法代码实现简单、不占用宽带、数据迁移不受影响生成的 id 中包含有时间戳所以生成的 id按照时间递增部署了多台服务器需要保证系统时间⼀样机器编号不⼀样 缺点 依赖系统时钟多台服务器时间⼀定要⼀样 分布式 ID 生成算法Snowflake原理 关于bit与byte bit(位)电脑中存储的最小单位可以存储⼆进制中的0或1 byte(字节)⼀个byte由8个bit组成 常规64位系统⾥⾯java数据类型存储字节大小 int4 个字节 short2 个字节 long8 个字节 byte1 个字节 float4 个字节 double8 个字节 char2 个字节 科普数据类型在不同位数机器的平台下长度不同 16位平台 int 2个字节16位 32位平台 int 4个字节32位 64位平台 int 4个字节32位 雪花算法的位数 雪花算法生成的数字long类所以是8个byte64bit 表示的值 -9223372036854775808-2的63次方~92233720368547758072的63次⽅-1 生成的唯⼀值⽤于数据库主键不能是负数所以值为0~92233720368547758072的63次方-1 第一个bit位代表符号位正数是0负数是1ID为正数所以固定为0毫秒级时间戳部分占41bit不是存储当前时间的时间截服务上线的时间毫秒级的时间戳(为当前时间-服务第一次上线时间)工作机器 id占10bit可支持210 1024个节点序列号部分占12bit可允许同一毫秒生成212 4096个Id则理论上一秒就可生成4096*1000 400万个ld组合起来刚好是64位Long类型 Snowflake必须注意的地方 全局唯⼀、不能重复 分布式部署就需要分配不同的workId, 如果workId相同 可能会导致⽣成的id相同 保证各个系统时间一致 分布式情况下需要保证各个系统时间⼀致如果服务器的时钟回拨就会导致⽣成的 id 重复 什么时候会系统回拨 人工去生产环境做了系统时间调整业务需求代码里面做了系统时间同步 Snowflake雪花算法实现 配置文件 增加 #配置workId spring.shardingsphere.sharding.tables.product_order.key-generator.props.worker.id1方式一订单id使用MybatisPlus的配置ProductOrder类配置 TableId(value id, type IdType.ASSIGN_ID) 默认实现类为DefaultIdentifierGenerator雪花算法方式二使用Sharding-Jdbc配置文件注释DO类里面的id分配策略 #id⽣成策略 spring.shardingsphere.sharding.tables.product_order.key-generator.columnid spring.shardingsphere.sharding.tables.product_order.key-generator.typeSNOWFLAKE方式三 进阶动态指定sharding jdbc 的雪花算法中的属性work.id属性 使用sharding-jdbc中的使用IP后几位来做workId但在某些情况下会出现生成重复ID的情况 解决办法 在启动时给每个服务分配不同的workId, 引⼊redis/zk都行缺点就是多了依赖 雪花算法测试结果 可以看出id全局不重复并呈现出递增增长
http://www.hkea.cn/news/14441912/

相关文章:

  • 金启网站建设动易网站建设实训报告
  • 徐州网站设计师肥城网站建设价格
  • 餐饮网站建设优化建站ps软件破解版
  • 平台建站广州专业seo公司
  • 采光板及采光瓦营销型网站建设wordpress阅读最多插件
  • 桐柏县建设局网站自动优化app
  • 网络教学网站建设哈尔滨网络公司如何
  • 零基础学pytho 网站开发标书制作一般给多少钱
  • 怎么创建一个属于自己的网站初创公司网站设计苏州
  • 义乌网站备案专业seo整站优化
  • 注册个人网站的方法组装电脑报价网站源码
  • 网站开发的常用流程网页设计实训总结报告3000字
  • 中山网站优化营销门户网站系统设计
  • nginx优化wordpress网站速度wordpress主页显示博客
  • 亳州市网站建设公司初创公司网站设计苏州
  • 手机网站 像素wordpress媒体文件位置
  • 贵州建设厅特殊工种考试网站中国建设银行曲江支行网站
  • 定制营销型网站自在源码网
  • 网上做兼职正规网站有哪些云南网站建设价格低
  • 网站注册 英文小程序开发定制公司北京
  • 一个产品的宣传和推广方案seo关键词推广价格
  • 做网站厦门有哪些好的做兼职网站有哪些
  • 网站备案会过期吗个人网站被黑了
  • 吉林网络公司网站建设短视频推广平台
  • 企业网站制作的市场wordpress 换语言
  • 网站建设如何盈利邯郸移动网站建设公司
  • centos网站开发聊城网站优化
  • html5响应式网站建设平台c 网站开发案例详解光盘
  • erp网站开发好听的工程公司名字
  • 做网站公众号多少钱网站建设调研提纲