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

中小型企业网站建设如何申请单位邮箱

中小型企业网站建设,如何申请单位邮箱,东莞松山湖招聘,北京软件外包公司排行榜分布式 ID 介绍 什么是 ID#xff1f; ID 就是 数据的唯一标识。 什么是分布式 ID#xff1f; 分布式 ID 是 分布式系统中的 ID#xff0c;它不存在于现实生活#xff0c;只存在于分布式系统中。 分库分表#xff1a; 一个项目#xff0c;在上线初期使用的是单机 My…分布式 ID 介绍 什么是 ID ID 就是 数据的唯一标识。 什么是分布式 ID 分布式 ID 是 分布式系统中的 ID它不存在于现实生活只存在于分布式系统中。 分库分表 一个项目在上线初期使用的是单机 MySQL。但随着需求不断增长单机 MySQL 已经无法满足当前的需求我们需要进行分库分表。 分库分表后数据分布在不同服务器的数据库上数据库的自增主键无法满足 ID 的唯一性了。此时我们如何为不同的节点生成全局唯一的主键呢—— 分布式 ID。 分布式 ID 需要满足哪些要求 1、全局唯一 2、高可用生成分布式 ID 的服务要保证可能性接近 100% 3、高性能生成速度要快 4、方便易用 以上四点为分布式 ID 的基本要求一个好的分布式 ID 还需要满足下列需求 1、安全 2、有序递增 3、有具体的业务含义生成的 ID 如果能有具体的业务含义可以让定位问题以及开发更加透明化 4、独立部署分布式系统专门有一个服务用来生成分布式 ID可以和业务相关的服务解耦。 分布式 ID 常见的解决方案有哪些 数据库 数据库主键自增 通过关系型数据库的自增主键来产生唯一 ID 以 MySQL 为例 CREATE TABLE sequence_id ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, stub char(10) NOT NULL DEFAULT , PRIMARY KEY (id), UNIQUE KEY stub (stub) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; 创建一个表其主键自增。 BEGIN; REPLACE INTO sequence_id (stub) VALUES (stub); SELECT LAST_INSERT_ID(); COMMIT; 插入数据我们使用 replace into 代替 insert into解释如下 这种方式的优缺点—— 优点实现简单 缺点并发量不大存在数据库单点问题、ID 没有业务含义、安全问题通过 ID 自增量来判断每天的订单量、每次获取 ID 都要访问数据库 数据库号段模式 对于数据库主键自增的方法每有一个订单就需要访问一次数据库性能比较差。我们可以通过批量获取存在内存中需要用到的时候直接从内存中取即可。 以 MySQL 为例 1、创建一个数据库表 CREATE TABLE sequence_id_generator ( id int(10) NOT NULL, current_max_id bigint(20) NOT NULL COMMENT 当前最⼤id, step int(10) NOT NULL COMMENT 号段的⻓度, version int(20) NOT NULL COMMENT 版本号, biz_type int(20) NOT NULL COMMENT 业务类型, PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; current_max_id 和 step 都是用来获取批量 ID获取的批量 ID 为current_max_id -- current_max_id step version 解决并发问题乐观锁 2、插入一行数据 INSERT INTO sequence_id_generator (id, current_max_id, step, version, biz_type) VALUES(1, 0, 100, 0, 101); 3、通过 select 获取指定业务下的批量唯一 ID SELECT current_max_id, step,version FROM sequence_id_generator where biz_type 101 4、不够用更新后重新 select UPDATE sequence_id_generator SET current_max_id 0100, versionversion1 WHERE version 0 AND biz_type 101 SELECT current_max_id, step,version FROM sequence_id_generator where biz_type 101 优缺点 —— 优点ID 有序递增 缺点数据库单点问题、ID 没有业务含义、安全问题 NoSQL 一般情况下NoSQL 方案使用 Redis 多一些。我们通过 Redis 的 incr 命令即可实现对 ID 原子顺序递增。 127.0.0.1:6379 set sequence_id_biz_type 1 OK 127.0.0.1:6379 incr sequence_id_biz_type (integer) 2 127.0.0.1:6379 get sequence_id_biz_type 2 为了提高可用性和并发我们可以使用 Redis 集群。Redis Cluster 优缺点 —— 优点性能不错且 ID 有序递增 缺点和数据库主键自增方案缺点类似 算法 UUID UUIDUniversal Unique Identifier通用唯一标识符。UUID 包含 32 个 16 进制数字。8-4-4-4-12 JDK 提供了现成的生成 UUID 的方法 UUID.randomUUID(); UUID 可以保证唯一性因为其生成规则包括 MAC 地址、时间戳、名字空间、随机或伪随机数、时序等元素UUID 不会重复。但虽然 UUID 可以做到全局唯一性但是我们很少使用它。 UUID 作为 MySQL 主键的时候非常不合适 1、主键要尽量越短越好 2、UUID 无序InnoDB 引擎中数据库主键的无序性会严重影响性能B 树 UUID 优缺点 ——  优点生成速度快、简单易用 缺点空间消耗大、不安全MAC 地址泄露、无序、没有具体业务含义、需要解决重复 ID 问题机器时间不对的情况下可能生成重复 ID Snowflake雪花算法 基于 Snowflake 算法的开源实现比如美团的 Leaf. 优缺点 —— 优点生成速度快ID 有序自增、比较灵活根据业务加入业务ID 缺点需要解决重复 ID 问题机器时间不对导致重复 ID 开源框架 UidGenerator Leaf团子 Tinyid滴滴
http://www.w-s-a.com/news/338346/

相关文章:

  • 高密做网站哪家好网站建设预算
  • 免费wordpress网站模板重庆如何做聚政网站
  • 人才网站app建设建议系统开发生命周期法的优点表现
  • 门户网站想要微信登录怎么做湖南网站seo推广
  • 襄阳 网站建设管理系统网站
  • 重庆工程建设招标投标交易信息网广州外贸seo优化
  • 一个一起做网站东莞设计兼职网站建设
  • 杭州网站程序开发公司在哪个公司建设网站好
  • 网店的网站设计方案济南手机建站价格
  • 网站做了301重定向域名会自动跳转吗唐山地方志网站建设
  • 学校网站建设说明书海南省建设执业资格注册管理中心网站
  • 东莞哪家网站建设好网站风格设定
  • 自驾游网站模板搭建wordpress步骤
  • wordpress视频网站上传视频提升学历是什么意思
  • 江西省城乡建设厅建设网站浙江建设
  • 网站联系我们页面临平做网站
  • 如何用网站做cpa交互比较好的网站
  • 一家只做特卖的网站wordpress修改模板教程
  • 与恶魔做交易的网站成都到西安高铁票价
  • 太原网站制作哪家便宜长春昆仑建设股份有限公司网站
  • 优质做网站价格设计手机商城网站建设
  • 高校网站建设制度无锡网站建设排名
  • 做网站的软件wd的叫啥无锡公司网站建设服务
  • 网站建设一般需要多久网站服务器基本要素有哪些
  • 大连开发区网站开发公司免费网站建设哪个好?
  • 关于建设门户网站的通知海曙区建设局网站
  • 韩国建设部网站温州企业网站制作
  • 苏州网站建设优化贵州网站建设lonwone
  • 网站建设与推广方案模板网站建设教程搭建浊贝湖南岚鸿给力
  • 网站建设内部下单流程图昆明网站制作公司