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

黃冈建设厅官方网站建设公司网址

黃冈建设厅官方网站,建设公司网址,惠山网站建设,郑州新像素ui设计培训收费关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等#xff0c;您的关注将是我的更新动力#xff01; 生成全局唯一ID的雪花算法原理 雪花算法是一种用于生成全局唯一ID的算法#xff0c;最初由Twitter开发#xff0c;用于解决分… 关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等您的关注将是我的更新动力 生成全局唯一ID的雪花算法原理 雪花算法是一种用于生成全局唯一ID的算法最初由Twitter开发用于解决分布式系统中生成ID的问题。其核心思想是将一个64位的长整型ID划分成多个部分每个部分用于表示不同的信息确保了生成的ID在分布式环境下的唯一性。 ID结构 符号位1位始终为0用于保证ID为正数。时间戳41位表示生成ID的时间戳精确到毫秒级。工作节点ID10位表示生成ID的机器的唯一标识。序列号12位表示在同一毫秒内生成的多个ID的序列号。 生成步骤 获取当前时间戳精确到毫秒级。如果当前时间小于上次生成ID的时间或者在同一毫秒内生成的ID数量超过最大值等待下一毫秒再继续生成。如果当前时间等于上次生成ID的时间序列号自增1。如果当前时间大于上次生成ID的时间序列号重新从0开始。将各个部分的值组合得到最终的64位ID。 Go实现雪花算法的高并发ID生成器 package mainimport (fmtsynctime )const (workerBits 10sequenceBits 12workerMax -1 ^ (-1 workerBits)sequenceMask -1 ^ (-1 sequenceBits)timeShift workerBits sequenceBitsworkerShift sequenceBitsepoch 1609459200000 )type Snowflake struct {mu sync.MutexlastTime int64workerID int64sequence int64 }func NewSnowflake(workerID int64) *Snowflake {if workerID 0 || workerID workerMax {panic(fmt.Sprintf(worker ID must be between 0 and %d, workerMax))}return Snowflake{lastTime: time.Now().UnixNano() / 1e6,workerID: workerID,sequence: 0,} }func (sf *Snowflake) NextID() int64 {sf.mu.Lock()defer sf.mu.Unlock()currentTime : time.Now().UnixNano() / 1e6if currentTime sf.lastTime {panic(fmt.Sprintf(clock moved backwards, refusing to generate ID for %d milliseconds, sf.lastTime-currentTime))}if currentTime sf.lastTime {sf.sequence (sf.sequence 1) sequenceMaskif sf.sequence 0 {for currentTime sf.lastTime {currentTime time.Now().UnixNano() / 1e6}}} else {sf.sequence 0}sf.lastTime currentTimeid : (currentTime-epoch)timeShift | (sf.workerID workerShift) | sf.sequencereturn id }func main() {sf : NewSnowflake(1) // 假设工作节点ID为1for i : 0; i 10; i {id : sf.NextID()fmt.Println(id)time.Sleep(time.Millisecond)} } 高并发下的唯一性和递增性保障 在高并发场景下保障雪花算法生成的ID唯一性和递增性的关键在于 唯一性 工作节点ID的设置保证了不同节点生成的ID不会冲突。序列号的自增和位运算保证了同一毫秒内生成的ID唯一。递增性 在同一毫秒内生成的多个ID按序列号的递增顺序排列。即使在极端情况下同一毫秒内生成的ID数量超过了最大值会等待下一毫秒重新开始也保证了递增性。 总体来说雪花算法在高并发下是一个可靠的ID生成方案。它的高性能和低碰撞概率使得它在分布式系统中被广泛应用。
http://www.pierceye.com/news/205478/

相关文章:

  • 找项目去哪个网站成都哪里有做网站的公司
  • 网站推广的方法及特点国外专门做童装的网站
  • 企业网站开发模型图wordpress 侧边导航
  • 济南网站系统优化网站建设属于什么专业
  • 114啦建站程序页面效果好的网站
  • 龙华网站建设-信科网络电子商务网站建设和技术现状
  • 网站备案有效期wordpress 评论图片
  • 搭建网站需要哪些步骤wordpress 主题使用
  • 网站怎么发布做微商天眼官方网站
  • qq群网站制作异常网站服务器失去响应
  • aspnet网站开发模板紫光华宇拼音输入法官方下载
  • 东莞网站设计价格wordpress的配置dns
  • 韶关网站建设公司电子商务网站建设考试重点
  • 网站左侧 导航小红书广告投放平台
  • 资阳住房和城乡建设厅网站重庆建设网站建站
  • 网站制作厂家电话多少女生学网络工程难吗
  • 网站建设要经历哪些步骤?网站建设岗位周计划
  • 贵阳网站制作工具福步外贸论坛网首页
  • 网站大全app下载任务发布平台
  • 专业商城网站建设哪家便宜河南做外贸网站的公司
  • seo博客网站东莞网络推广运营企业
  • 定制网站建设公司哪家好嘉兴网站建设多少时间
  • 快三竞猜网站建设wordpress 整站打包
  • 珠海好的网站制作平台微信音乐音频怎么关闭
  • asp.net 网站计数器响应式设计
  • 2017做那些网站致富小程序商城哪个平台好
  • 织梦制作网站如何上线做网站 当站长
  • 如何知道一个网站是用什么做的树莓派搭建wordpress
  • 怎么制作网站登录电子商务网上购物网站建设规划
  • 大连外贸网站制作做文案公众号策划兼职网站