240 发简信
IP属地:浙江
  • 状态机设计模式

    初识 我第一次知道状态机,是在大学学习《数字电子技术基础》的时候。一块控制芯片有若干输入数据总线Data_in,一个CLK时钟震荡输入,还有一定数量的以高低电平组合来控制状态...

  • CompletableFuture 使用详解

    1、 runAsync 和 supplyAsync方法 CompletableFuture 提供了四个静态方法来创建一个异步操作。 没有指定Executor的方法会使用For...

  • @IT乾坤 时间戳是id的组成部分,所以如果毫秒数不同,id不会重复的。
    那么毫秒数有没有可能相同呢?极端情况下是有可能的,如下:
    当123号坑里的值恰好是第723毫秒所有可能id中的最大值(即:后22bit全是1),对这个值+1,由于进位,会导致时间戳部分变成724毫秒

    关于分布式唯一ID,snowflake的一些思考及改进(完美解决时钟回拨问题)

    1.写唯一ID生成器的原由 在阅读工程源码的时候,发现有一个工具职责生成一个消息ID,方便进行全链路的查询,实现方式特别简单,核心源码不过两行,根据时间戳以及随机数生成一个I...

  • 完美:+1:

    (以下是帮助自己理解的,以免N年后遗忘:joy: )
    巧妙的避过了“回拨”这个问题,即:不care是否回拨,而是只关注“这个时间”下有没有生成过id。
    (所谓“这个时间下有没有生成过id”,无法做到完全准确,实际也并不需要完全准确,比如,
    假设当前是第765毫秒,生成过id;之后时间回拨成了第565毫秒,那么第565毫秒有没有生成过id呢,已经不得而知,但是我们能知道第765毫秒有id生成过——165号坑里有值、且记录的时间是第765毫秒,那么就用165号坑里的id+1作为新的id)
    (再举例,假设时间是第523毫秒,这可能是最新时间,也可能是从某个时间回拨回来的,不去care,只看第523毫秒有没有生成过id,怎么看?我们去看123号坑的值,有三种可能的情况:a.123号坑没值——用523毫秒生成新id,肯定不重复;b.123号坑有值、记录的时间是323毫秒——用523毫秒生成新id,肯定不重复;c.123号坑里有值、记录的时间是723毫秒——记录的id+1,肯定不重复)

    关于分布式唯一ID,snowflake的一些思考及改进(完美解决时钟回拨问题)

    1.写唯一ID生成器的原由 在阅读工程源码的时候,发现有一个工具职责生成一个消息ID,方便进行全链路的查询,实现方式特别简单,核心源码不过两行,根据时间戳以及随机数生成一个I...

  • 120
    性能测试分析

    转:http://www.10tiao.com/html/439/201512/423511225/1.html性能分析的基本概念:QPS/TPS 很多人不会做性能分析或者调...

  • 120
    关于分布式唯一ID,snowflake的一些思考及改进(完美解决时钟回拨问题)

    1.写唯一ID生成器的原由 在阅读工程源码的时候,发现有一个工具职责生成一个消息ID,方便进行全链路的查询,实现方式特别简单,核心源码不过两行,根据时间戳以及随机数生成一个I...