分布式ID方案(标记)

一、参考文章-标记

分布式ID方案有哪些?雪花算法如何搞定时钟回拨和动态机器ID?

二、应用

1.百度 uid-generator

github项目地址
原理参考

2.百度 uid-generator 扩展应用

灯官网
灯 项目代码
lamp-util 单元模块

lamp-util 单元模块子模块 lamp-uid 扩展uid-generator:

  1. WorkerNodeDAO 从 com.baidu.fsg.uid.worker.dao.WorkerNodeDAO 移动到 top.tangyh.basic.uid.dao.WorkerNodeDAO

  2. DisposableWorkerIdAssigner 类的assignWorkerId方法,事务增加:(rollbackFor = Exception.class

  3. 关于UID比特分配的建议

    对于并发数要求不高、期望长期使用的应用, 可增加timeBits位数, 减少seqBits位数. 例如节点采取用完即弃的WorkerIdAssigner策略,

    重启频率为12次/天, 那么配置成{"workerBits":23,"timeBits":31,"seqBits":9}时,可支持28个节点以整体并发量14400 UID/s的速度持续运行68年.

    对于节点重启频率频繁、期望长期使用的应用, 可增加workerBits和timeBits位数, 减少seqBits位数. 例如节点采取用完即弃的WorkerIdAssigner策略,重启频率为24*12次/天, 那么配置成{"workerBits":27,"timeBits":30,"seqBits":6}时,可支持37个节点以整体并发量2400 UID/s的速度持续运行34年.

相关推荐
Wang's Blog2 小时前
RabbitMQ: 实现高效消息监听之从基础到自动配置
分布式·rabbitmq
Wang's Blog2 小时前
RabbitMQ: 高级特性详解之消息返回机制与消费端确认机制
分布式·rabbitmq
Wang's Blog3 小时前
RabbitMQ: 使用MessageConverter高效处理消息
分布式·rabbitmq
‘胶己人’5 小时前
redis分布式锁
数据库·redis·分布式
山沐与山5 小时前
【MQ】Kafka与RocketMQ深度对比
分布式·kafka·rocketmq
武子康5 小时前
Java-203 RabbitMQ 生产者/消费者工作流程拆解:Connection/Channel、默认交换器、ACK
java·分布式·消息队列·rabbitmq·erlang·ruby·java-rabbitmq
小满、6 小时前
RabbitMQ: 同步异步解析、安装与控制台实践
分布式·消息队列·rabbitmq·mq
金海境科技7 小时前
【服务器数据恢复】数据中心私有云Ceph分布式集群文件丢失数据恢复案例
服务器·经验分享·分布式·ceph
音符犹如代码7 小时前
ZooKeeper 实战指南:从入门到场景解析
分布式·微服务·zookeeper·云原生·中间件·架构