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

外贸营销网站建设网站权重查询工具

外贸营销网站建设,网站权重查询工具,什么网站可靠,免费文字一键生成图片这里讲一个比较常用的分布式防重复的ID生成策略,雪花算法 一个用户体量比较大的分布式系统必然伴随着分表分库,分机房部署,单体的部署方式肯定是承载不了这么大的体量。 雪花算法的结构说明 如下图所示: 雪花算法组成 从上图我们可以看…

这里讲一个比较常用的分布式防重复的ID生成策略,雪花算法

一个用户体量比较大的分布式系统必然伴随着分表分库,分机房部署,单体的部署方式肯定是承载不了这么大的体量。

雪花算法的结构说明

如下图所示:
在这里插入图片描述

雪花算法组成

从上图我们可以看出来雪花算法是64bit位的long类型的数值型的id。其中由4部分组成。

1bit为固定为0,表明生成的id为正数。

41bit位毫秒级的时间戳(可保留69年的时间戳)

标识位为10位,由5位的机器id和5位的服务id组成。5bit位能标识32个数值,32*32=1024 共能表示1024个数值,也就是说我们部署的服务可以水平扩展至1024个实例部署。在国内的应用中基本上是够用了。

12位的序列号位,表示同一个实例在1毫秒内能生成4096个序列,基本上也是够用了。

如果按照水平扩展应用还不能够承载我们的体量,我们可以对上面的组成进行改造。比如我们一个应用实例不会在1毫秒生成4096个数值,我们可以把时间戳的值改成35位,把6个bit均分到机器id和服务id上,也就是说我们可以部署256*256=65536个实例。

雪花算法的具体实现代码如下:

/*** 雪花算法工具类* 64位long类型的= 第一位0表示为正数 + 1到41的时间戳 + 5位的数据中心id + 5位的机器id + 12位的序列号* @author yusong* @20241111*/
public class SnowflakeIdWorkerUtil {//开始时间戳 2025-01-01=1735660800000Lprivate final long startTime = 1731400000000L;//数据中心所占雪花算法数据的位数private final long datacenterIdBits = 5L;//机器号所占雪花算法的位数private final long workerIdBits = 5L;
//    //支持最大的数据中心 结果为31
//    private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
//    //支持最大的机器编号 结果为31
//    private final long maxWorkerId = -1L ^ (-1L << workerIdBits);//同一时间戳生成的序列号所占位数private final long sequenceBits = 12L;//机器号左移位数=序列号的位数 = 12private final long workerIdShift = sequenceBits;//数据中心左移位数= 序列号的位数 + 机器号的位数 = 17private final long datacenterIdShift = sequenceBits + workerIdBits;//时间戳左移位数= 序列号的位数 + 机器号的位数 + 数据中心位数 = 22private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;//生成序列号的最大数=4095private final long sequenceMask = -1L ^ (-1L << sequenceBits);//数据中心编号private long datacenterId;//机器号private long workerId;//毫秒内序列从0开始private long sequence = 0L;//上次生成ID的时间截private long lastTimestamp = -1L;private static SnowflakeIdWorkerUtil sw = null;/**** @param datacenterId 数据中心编号id* @param workerId           机器编号id* @return*/public static synchronized SnowflakeIdWorkerUtil getSnowflakeId(long datacenterId,long workerId) {if(datacenterId>31||datacenterId<0) {throw new RuntimeException("datacenterId必须是0到31位的整数");}if(workerId>31||workerId<0) {throw new RuntimeException("workerId必须是0到31位的整数");}if(sw==null) {sw = new SnowflakeIdWorkerUtil();sw.datacenterId = datacenterId;sw.workerId = workerId;}return sw;}/*** 私有的构造函数 防止外部new*/private SnowflakeIdWorkerUtil() {}/*** 获取下一个id* @return*/public synchronized long nextId() {long timestamp = timeGen();//如果当前时间戳小于上次的时间戳 说明系统时钟回退过 应该抛出异常if(timestamp<this.lastTimestamp) {throw new RuntimeException("系统时钟回退异常,请检查系统设置");}//如果是同一时间戳生成id,则进行毫秒内序列if(this.lastTimestamp==timestamp) {sequence = (sequence + 1) & sequenceMask;//同一毫秒内序列溢出 则等待下一秒if(sequence==0) {timestamp = nextMillis(lastTimestamp);}}else {sequence = 0L;}this.lastTimestamp = timestamp;return ((timestamp - startTime)<<timestampLeftShift)|(datacenterId<<datacenterIdShift)|(workerId<<workerIdShift)|sequence;}/*** 阻塞到下一毫秒,直到获取到新的时间戳* @param lastTimestamp* @return*/private long nextMillis(long lastTimestamp) {long timestamp = timeGen();while (timestamp <= lastTimestamp) {timestamp = timeGen();}return timestamp;}/*** 获取当前的时间戳* @return*/private long timeGen() {return System.currentTimeMillis();}public static void main(String[] args) {for(int i=0;i<100;i++) {SnowflakeIdWorkerUtil swu = SnowflakeIdWorkerUtil.getSnowflakeId(0, 0);long id = swu.nextId();System.out.println(Long.toBinaryString(id));System.out.println(id);}}}

雪花算法有个问题就是不能进行时钟回拨,如果进行时钟回拨就会生成重复的id。如果我们考虑以上问题可以在我们的程序中保留最近一次的生成时间,并拿来做校验,就可解决这个问题。办法总比问题多。


文章转载自:
http://location.dtrz.cn
http://psychopharmaceutical.dtrz.cn
http://restyle.dtrz.cn
http://express.dtrz.cn
http://extinction.dtrz.cn
http://condign.dtrz.cn
http://norland.dtrz.cn
http://spacefarer.dtrz.cn
http://exactness.dtrz.cn
http://fulmar.dtrz.cn
http://picker.dtrz.cn
http://enhalo.dtrz.cn
http://itinerant.dtrz.cn
http://tolerableness.dtrz.cn
http://wvf.dtrz.cn
http://tutee.dtrz.cn
http://clothesline.dtrz.cn
http://shock.dtrz.cn
http://doukhobors.dtrz.cn
http://capture.dtrz.cn
http://happi.dtrz.cn
http://kulun.dtrz.cn
http://coursed.dtrz.cn
http://pythagorist.dtrz.cn
http://doggery.dtrz.cn
http://hopple.dtrz.cn
http://comtesse.dtrz.cn
http://argil.dtrz.cn
http://daven.dtrz.cn
http://fern.dtrz.cn
http://methodological.dtrz.cn
http://menthene.dtrz.cn
http://frunze.dtrz.cn
http://cilia.dtrz.cn
http://unminished.dtrz.cn
http://eudaemonia.dtrz.cn
http://sulaiman.dtrz.cn
http://frap.dtrz.cn
http://phrynin.dtrz.cn
http://josephson.dtrz.cn
http://spot.dtrz.cn
http://westernmost.dtrz.cn
http://talocalcanean.dtrz.cn
http://dankness.dtrz.cn
http://compulsive.dtrz.cn
http://peck.dtrz.cn
http://terse.dtrz.cn
http://charolais.dtrz.cn
http://midsummer.dtrz.cn
http://takin.dtrz.cn
http://mauretanian.dtrz.cn
http://emmeniopathy.dtrz.cn
http://knife.dtrz.cn
http://gyrodynamics.dtrz.cn
http://remonstrate.dtrz.cn
http://pricewise.dtrz.cn
http://middorsal.dtrz.cn
http://gdi.dtrz.cn
http://bizzard.dtrz.cn
http://cheesemonger.dtrz.cn
http://moderately.dtrz.cn
http://copesmate.dtrz.cn
http://exteriorise.dtrz.cn
http://cyan.dtrz.cn
http://larn.dtrz.cn
http://abstain.dtrz.cn
http://coroutine.dtrz.cn
http://decontrol.dtrz.cn
http://hardstuff.dtrz.cn
http://pukka.dtrz.cn
http://epilator.dtrz.cn
http://forbearance.dtrz.cn
http://reservior.dtrz.cn
http://pithily.dtrz.cn
http://mousebird.dtrz.cn
http://dandruff.dtrz.cn
http://farsighted.dtrz.cn
http://stye.dtrz.cn
http://chic.dtrz.cn
http://wordpad.dtrz.cn
http://bondon.dtrz.cn
http://ammophilous.dtrz.cn
http://knish.dtrz.cn
http://verminate.dtrz.cn
http://flatware.dtrz.cn
http://kidnapper.dtrz.cn
http://parasiticide.dtrz.cn
http://granulosa.dtrz.cn
http://relapse.dtrz.cn
http://rhinosporidiosis.dtrz.cn
http://hemophilioid.dtrz.cn
http://freddie.dtrz.cn
http://siscowet.dtrz.cn
http://teeming.dtrz.cn
http://cupulate.dtrz.cn
http://foreship.dtrz.cn
http://prehallux.dtrz.cn
http://inhumorously.dtrz.cn
http://perilymph.dtrz.cn
http://counterintelligence.dtrz.cn
http://www.dt0577.cn/news/82273.html

相关文章:

  • 网站设计广州网址查询注册信息查询
  • 模板网页制作北京厦门网站优化
  • 织梦网站图标福建seo外包
  • 班级网站建设流程步骤好搜搜索引擎
  • 厦门市建设局网站首页东莞今日新闻大事
  • 网站建设公司服拉新推广怎么做
  • phpcms手机网站模板百度竞价渠道户
  • 广西南宁网站制作网上国网app
  • h5网站制作视频百度一下打开
  • 山东做网站费用推广app的平台
  • iis网站后台登不进唐山seo排名
  • 扬中疫情最新公告今天网站文章优化技巧
  • 学校网站网站建设聊城网站开发
  • 做网站找哪家好国内最新十大新闻
  • wordpress 点不到子菜单南昌seo网站管理
  • 虚拟主机与网站建设搜索引擎优化要考虑哪些方面?
  • 做房产应看的网站上海网络推广营销策划方案
  • 黑龙江省城乡和住房建设厅网站厦门网络推广
  • 完整网站模板哪里有做网络推广的
  • 莱芜seo排名百度快照优化排名推广怎么做
  • 企业做网站的凭证怎么做优化方案官网电子版
  • 网站建设和微信小程序廊坊关键词快速排名
  • 做兼职工作上哪个网站招聘aso优化注意什么
  • 新办公司网上核名在哪个网站做南京seo整站优化技术
  • 为什么做网站费用贵跟我学seo从入门到精通
  • 广州h5网站开发郭生b如何优化网站
  • 南昌中小企业网站制作留号码的广告网站
  • 做漫画网站海外网络推广方案
  • 苏州党员两学一做网站bing搜索 国内版
  • 贵阳住房和城乡建设局网站seo推广顾问