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

站酷官网入口网站代理备案价格

站酷官网入口,网站代理备案价格,网站建设未来趋势,辽宁建设工程信息网站常见的几种ID生成方式对比: 种类 全局唯一 高性能 高可用 趋势递增 中心服务 缺点 UUID 是 高(本地生成,(无网络开销) 低(无序,不适用) 否 否 无序、字符串 数据库自增 单表唯一 中 中(宕机就会使业务服务中断) 是 否 安全性差,能猜出来规律 对于分库分表场景无法唯一 数据库自…

常见的几种ID生成方式对比:

种类

全局唯一

高性能

高可用

趋势递增

中心服务

缺点

UUID

高(本地生成,(无网络开销)

低(无序,不适用)

无序、字符串

数据库自增

单表唯一

中(宕机就会使业务服务中断)

安全性差,能猜出来规律

对于分库分表场景无法唯一

数据库自增-集群

中(宕机就会使业务服务中断)

通过设置初始值及步长进行自增

不好扩展,增加节点可能导致不唯一

数据库号段模式

低(需要频繁更新表maxId)

中(宕机就会使业务服务中断)

依赖数据库,需要频繁更新数据库maxId

乐观锁方式保证高可用

数据库号段模式+缓存

在号段模式基础上增加缓存buffer

缓存数据同步到数据库需要保证强一致性,增加了复杂度

redis的incr

单模块唯一

多模块不适用

中(宕机就会使业务服务中断)

多服务情况下单台redis无法满足

多redis集群时,主master宕机,会在较短时间内存在ID重复

雪花算法

高(不考虑回拨情况下)

高(本地生成,(无网络开销)

中(趋势递增)

存在时钟回拨问题

多节点时可能需要自定义datacenterId和machineId的生成(IP)

百度uid generator

高(本地生成,(无网络开销)

高(趋势递增)

在雪花算法基础上增加启动服务时获取workId(或初始化workId)

项目启动时间会被拉长,依赖数据库

美团Leaf

高(本地生成,(无网络开销,需要自己实现)

中(中心服务)

高(自定义方式较复杂)

百度uid模式下衍生而来

可以实现自己的ID生成中心,即leaf-server,由该项目提供获取ID的方法供调用,但该方式比较耗IO,性能会有所下降

依赖数据库或zookeper

为了提升性能,需要自己在项目里面自定义实现Leaf server

滴滴TynyId

高(本地生成,(无网络开销,需要自己实现)

中(中心服务)

高(自定义方式较复杂)

美团Leaf模式下衍生而来

可以实现自己的ID生成中心,即TynyId-server,由该项目提供获取ID的方法供调用,但该方式比较耗IO,性能会有所下降

依赖数据库或zookeper

为了提升性能,需要自己在项目里面自定义实现TynyId server

----------------------------------------------------------------------------------------------

数据库自增

一, 引入依赖:

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.19</version>
</dependency>
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version>
</dependency>

二, 新建表

CREATE TABLE `auto_generate` (`id` bigint NOT NULL AUTO_INCREMENT,`name` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

三, resources目录下编写自动生成代码配置文件: generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--mysql 连接数据库jar 这里选择自己本地位置;如果不知道maven本地仓库地址,可以使用EveryThing工具全局搜索mysql-connector-java,找到jar包位置;也可以手动下载一个jar放在指定位置,进行引用。--><classPathEntry location="/Users/lizhihao/.m2/repository/mysql/mysql-connector-java/8.0.19/mysql-connector-java-8.0.19.jar"/><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自动生成的注释,true:是,false:否 --><property name="suppressAllComments" value="true"/></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/generate_id" userId="root"password="root"></jdbcConnection><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- 指定javaBean生成的位置targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录--><javaModelGenerator targetPackage="org.com.spi.model" targetProject="src/main/java"><!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,
http://www.yayakq.cn/news/85286/

相关文章:

  • 设计网站推荐素材网站安卓应用开发环境
  • 微商网站制作王野天个人简历
  • 云南建设人才网站首页六安网站建设公司
  • 中英文网站案例手机上怎么赚钱啊 正规
  • 枣阳网站建设吧logo在线制作神器
  • 专做废旧电子电路板配件回收的网站湘潭网站建设电话
  • 传统企业公司网站优化案例深圳手机端网站建设专业公司
  • 德州聊城网站建设企业网络推广方案的制定
  • 南京微网站开发做胃镜多少钱那好天津津门网站a
  • 常州外贸网站淄博网站建设
  • 帝国网站做图片轮播南京企业网站做优化
  • 做网站听的纯音乐网站开发结论
  • 南昌网站建设博客做喜报的网站
  • 游戏网站做代理seo关键词优化举例
  • 青海网站建设哪家好dkp网站开发
  • 正常开发一个网站需要多少钱山西建设工程执业注册中心网站
  • 购物网站图片的放大怎么做的自己创建网站怎么赚钱
  • 网站展示 包括什么网站怎么做留言提交功能
  • 墨客网站建设网站开发什么语言比较好
  • 静宁网站建设百度收录网站方法
  • 企业商城网站建设方案提高seo排名
  • 林芝做网站wordpress前台发文章
  • 视频网站开发策划书大气简约企业网站模板免费下载
  • 做一电影网站怎么赚钱吗建设部一建注册公示网站
  • 手机网站建设的趋势网页设计font代码
  • 网站如何进行建设怎么做网站地图的样式
  • 网站漂浮图怎么做长沙优化网站服务
  • 阿里国际网站官网入口wordprees可以做棋类网站吗
  • 网站开发设计需求文档常州化龙巷
  • 网站代码 如何做层级关系百度账户推广登陆