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

织梦网站每天被挂马家电网站制作

织梦网站每天被挂马,家电网站制作,周口微网站制作,成都网站建设 常凡云欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 1 分布式ID2 问题2.1 时钟回拨2.1.1 毫秒级时钟回…

欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。

目录

  • 1 分布式ID
  • 2 问题
    • 2.1 时钟回拨
      • 2.1.1 毫秒级时钟回拨则进行等待
      • 2.1.2 引入时钟回拨位
      • 2.1.3 基于外部
      • 2.1.4 混合时间戳
    • 2.2 序列号耗尽
      • 2.2.1 等待时间戳
      • 2.2.2 调整结构,增加序列号位数
      • 2.2.3 多ID生成器

现在典型的八股都是凝练了问题,背后有着对问题的认知和解决思路。
一直想写一个八股系列,从问题到原理。从这篇开始吧。

面试题:分布式ID时钟回拨怎么处理?序列号耗尽了怎么办?

1 分布式ID

分布式ID均会有一些需求。
高性能:有序
可维护:包含时间
可用:唯一

结构经常是多段结构,以UUIDv7为例

[ 48位毫秒时间戳 ] [ 4位版本号'7' ] [ 76位随机数 ]

基于此,经常面临的问题如下。

2 问题

2.1 时钟回拨

2.1.1 毫秒级时钟回拨则进行等待

毫秒级时钟回拨,且对延迟不敏感场景。让ID生成器等待系统时钟追赶上上一次时间。

long generateId() {long currentTimestamp = getCurrentTimeMillis();while (currentTimestamp < lastTimestamp) {// 检测到时钟回拨,等待Thread.sleep(1);currentTimestamp = getCurrentTimeMillis();}// 继续生成IDif (currentTimestamp == lastTimestamp) {sequence = (sequence + 1) & 4095; // 序列号递增if (sequence == 0) {// 序列号用尽,等待下一毫秒currentTimestamp = waitNextMillis(currentTimestamp);}} else {sequence = 0; // 新毫秒,重置序列号}lastTimestamp = currentTimestamp;return (currentTimestamp << 22) | (machineId << 12) | sequence;
}

2.1.2 引入时钟回拨位

引入时钟回拨位。在ID结构中预留几位作为“时钟回拨位”(rollback bits),当检测到时钟回拨时,递增回拨位以区分ID,避免重复。

2.1.3 基于外部

即给予外部服务的时钟,避免依赖本地时钟,如使用Redis生成递增ID。

  • 在Redis中每天生成一个Key(如date:20250615),通过INCR操作生成递增序列号。
  • ID格式:日期 + 机器ID + Redis递增序列号。

2.1.4 混合时间戳

结合物理时钟和逻辑时钟,生成混合时间戳,确保即使发生回拨,ID仍保持唯一性和递增性。

使用Google的TrueTime或类似机制,维护一个时间区间([min, max]),确保时间戳在安全范围内。
检测到回拨时,使用逻辑计数器递增,确保ID唯一。

2.2 序列号耗尽

在分布式ID生成中(如Snowflake算法),序列号耗尽是指在同一时间戳(通常是毫秒级)内,序列号部分达到了最大值(例如,12位序列号的最大值是4095),无法继续生成新的唯一ID。这是一个常见问题,尤其在高并发场景下,同一毫秒内可能需要生成大量ID。

2.2.1 等待时间戳

毫秒级的方案等待下一毫秒,纳秒级的方案等待下一纳秒。

long generateId() {long currentTimestamp = getCurrentTimeMillis();if (currentTimestamp < lastTimestamp) {// 处理时钟回拨(参考上一回答)handleClockRollback();}if (currentTimestamp == lastTimestamp) {sequence = (sequence + 1) & 4095; // 递增序列号if (sequence == 0) {// 序列号耗尽,等待下一毫秒currentTimestamp = waitNextMillis(currentTimestamp);}} else {sequence = 0; // 新时间戳,重置序列号}lastTimestamp = currentTimestamp;return (currentTimestamp << 22) | (machineId << 12) | sequence;
}long waitNextMillis(long lastTimestamp) {long current = getCurrentTimeMillis();while (current <= lastTimestamp) {current = getCurrentTimeMillis();}return current;
}

2.2.2 调整结构,增加序列号位数

通过调整ID结构,增加序列号的位数(例如从12位增加到14位),从而支持每毫秒生成更多ID。

2.2.3 多ID生成器

通过引入多个ID生成器实例或分片,分散ID生成压力,降低单个实例的序列号耗尽概率。
比如雪花ID的Snowflake,可以为每个节点分配多个机器ID(例如,节点A使用机器ID 1-4,节点B使用5-8)。
当序列号耗尽时,切换到另一个实例生成ID。


文章转载自:

http://GOB0Lnfs.ftmLy.cn
http://UfT2ibF7.ftmLy.cn
http://yqMW5l3b.ftmLy.cn
http://oSvxlseo.ftmLy.cn
http://0HdDCyst.ftmLy.cn
http://mQxqfw0G.ftmLy.cn
http://dXLUWJhz.ftmLy.cn
http://i0tgQCEE.ftmLy.cn
http://No1G2KNc.ftmLy.cn
http://WITUyITa.ftmLy.cn
http://eHfySFMY.ftmLy.cn
http://uzIchNPE.ftmLy.cn
http://sZ8clyuR.ftmLy.cn
http://m5Pd4vKR.ftmLy.cn
http://FHkgnBh6.ftmLy.cn
http://5FJJ8qv6.ftmLy.cn
http://kRcNa9Dk.ftmLy.cn
http://rI6MRJbY.ftmLy.cn
http://2BDPOg45.ftmLy.cn
http://4YdM5wOb.ftmLy.cn
http://sLLNdg7L.ftmLy.cn
http://5iCD3YQF.ftmLy.cn
http://Zv7GheOY.ftmLy.cn
http://7N1IDFGT.ftmLy.cn
http://wNSlx9Ga.ftmLy.cn
http://hUMaPE2U.ftmLy.cn
http://v2IYMcR8.ftmLy.cn
http://nHTwkG0r.ftmLy.cn
http://WA0hMEFF.ftmLy.cn
http://tly7DfCp.ftmLy.cn
http://www.dtcms.com/wzjs/765429.html

相关文章:

  • 免费商城网站模板seo搜索排名优化方法
  • 做彩票网站用什么服务器招标网下载
  • 建立网站的基本流程wordpress短代码插件
  • 网站能不能自己做大型旅游网站
  • 网站建设首选-云端高科游仙建设局官方网站
  • 建筑行业做网站建网站需要费用
  • 东莞网站制作网站加载速度优化
  • 建设部网站企业资质店铺网站怎么建
  • 做网站建设哪家好番禺做网站最便宜的哪家公司
  • 专门做旅游攻略的网站有哪些厦门市建设工程造价网
  • 滨海新网站建设html怎么做网站
  • 微商城平台有哪些泉州seo培训班
  • 精美旅游网站模板建设工程合同范本
  • 外贸营销网站建设方案网页设计与制作项目教程
  • 龙江建网站四川网站建设和优化
  • 重庆网站建设入门培训wordpress 采集 入库
  • 攀枝花建设集团网站微网站设计与开发教程
  • 网站做电商销售需要注册吗郴州录取网站
  • 曲靖高端网站制作网站源码模板
  • 长沙网站开发的网站网站建设发言
  • 中企做的网站太原长沙专业seo优化推荐
  • 百度上做网站模板有个网站经常换域名
  • 宿迁城乡建设监督网站企业网站keywords最多几个
  • 蓝色机械企业网站模板海外营销网站设计
  • 重庆企业网站制作公司东莞南城网站开发公司电话
  • 哪个网站可以做装修效果图永州静默管理
  • 哪些网站可以注册邮箱怎么阻止网站
  • 中企高呈高端网站建设费用做淘宝客网站教程
  • 网站发帖推广平台做一个官方网站多少钱一个
  • 北京未来科技城开发建设有限公司 网站网页设计教程这本书讲什么