
工具
文章平均质量分 94
取名好难啊啊
只是一个想写代码的小白
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【分布式 ID】详解百度 uid-generator(源码篇)
【分布式 ID】生成唯一 ID 的几种方式。【分布式 ID】一文详解美团 Leaf【分布式 ID】详解百度 uid-generator(基础篇)。原创 2025-07-20 21:21:40 · 618 阅读 · 0 评论 -
【分布式 ID】详解百度 uid-generator(基础篇)
【分布式 ID】生成唯一 ID 的几种方式。【分布式 ID】一文详解美团 Leaf。原创 2025-07-20 21:20:54 · 792 阅读 · 0 评论 -
【分布式 ID】一文详解美团 Leaf
【分布式 ID】生成唯一 ID 的几种方式。前一篇文章我们介绍了分布式 ID 生成的几种方式,这篇文章就来看下美团开源项目 Leaf 是如何生成 ID 的。Leaf 这个名字是来自德国哲学家、数学家莱布尼茨的一句话:也就是“世界上没有两片相同的树叶”Leaf——美团点评分布式ID生成系统。原创 2025-06-29 10:31:57 · 1159 阅读 · 0 评论 -
【分布式 ID】生成唯一 ID 的几种方式
分布式 ID 是指在分布式系统中需要生成的全局唯一的标识符。比如在电商、物流等行业,每笔订单都需要一个唯一的订单 ID。通过这个 ID,商家可以跟踪订单的状态,包括下单、支付、发货、签收等环节;用户也可以随时查询自己订单的进度。在金融系统中,每笔交易都有一个唯一的交易 ID。这个 ID 可以用于记录交易的详细信息,如交易时间、交易金额、交易双方等,同时也方便对交易进行审计和对账。总之唯一 ID 在各种场景下用处都比较大,那么如何能够生成一个唯一 ID 呢,有下面几种方案。原创 2025-06-29 10:31:18 · 1193 阅读 · 0 评论 -
【工具方法】如何判断两个时间范围是否有交集
之前做需求的时候需要判断两个时间段有没有交集,如果是没有交集就返回 true,否则就返回 false,主要的方法就是传入要添加的时间范围:[start, end],以及一个 List 集合,判断这个时间范围和这个 List 集合的时间范围有没有交集。下面我们来测试一下,我们随便生成 5 个时间传入 sources 中,接着测试有冲突和没有冲突的情况,当然生成的方法直接用 GPT。,这种情况下,我们可以将 end 设置为 Long.MAX_VALUE,也就是下面的写法。来看下里面的 main 方法。原创 2025-03-09 13:40:22 · 989 阅读 · 0 评论 -
实现一个通用的树形结构构建工具
树结构的生成在项目中应该都比较常见,比如部门结构树的生成,目录结构树的生成,但是大家有没有想过,如果在一个项目中有多个树结构,那么每一个都要定义一个生成方法显然是比较麻烦的,所以我们就想写一个通用的生成树方法,下面就来看下如何来写。原创 2025-01-03 23:22:43 · 1215 阅读 · 0 评论 -
定时/延时任务-实现一个分层时间轮
假设有一个任务 1s 后执行的,这时候时间轮被创建出来之后的 currentTime = 0,那工作线程由于要等到 1s 之后才能获取到任务,这时候肯定要修改下 currentTime 为 1s 对应的指针,这样才能从时间轮中拿到任务,然后去执行。其实这里添加到延时队列里面就是为了解决空轮询问题,时间轮会不断从队列里面获取任务,如果获取不到,是不会轮询时间轮的,而是继续阻塞,如果能获取到任务了,那么时间轮就可以往前推进了。首先获取下这个任务的过期时间,然后判断下这个任务有没有被取消,为什么还要判断呢?原创 2024-12-09 09:04:21 · 1007 阅读 · 0 评论 -
定时/延时任务-实现一个简单时间轮
上一篇文章中介绍了 Netty 时间轮的概念,同时我们也提到时间轮有两种:简单时间轮和分层时间轮,那这篇文章就来实现一个简单时间轮,当然因为后续要分析 Netty 的时间轮源码,所以这里就根据 Netty 源码大概写一下时间轮。然后就是执行过期任务的逻辑,任务是直接加到链表尾部的,所以需要遍历这个链表来找到过期任务去执行,这也是为什么要限制任务数量,不然有可能任务太多,导致其他任务执行不准时,这也是 Netty 底层的逻辑。当然这个只是一个时间格的,当时间轮取消的时候会遍历所有时间格,然后调用这个方法。原创 2024-12-09 09:03:44 · 776 阅读 · 0 评论 -
定时/延时任务-时间轮
上一篇文章中介绍了 Netty 时间轮的用法,相信大家已经对时间轮有一个概念了,那么这篇文章就来说下时间轮到底是什么,暂时先不上 Netty 时间轮的源码解析,在这篇文章结束之后我们先自己尝试写一个时间轮,不管是自己写也好还是看源码去对着写都行,对时间轮有一个概念,在后面源码解析的时候就不会很难懂!简单来说,时间轮使用一个类似时钟的结构存储任务,每一个下标表示一个时间间隔,比如下面图中,当前指针指向 0,就会去指向 0 这个下标的任务,然后指针每隔。原创 2024-12-08 14:37:57 · 1121 阅读 · 0 评论