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

郑州网站建设百度权重1是什么意思

郑州网站建设,百度权重1是什么意思,织梦网站首页怎么修改,网页网站设计用什么软件snowflake中文的意思是 雪花,雪片,所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。雪花算法产生的背景当然是twitter高并发环境下对唯一ID生成的需求,得益于twitter内部高超的技术,雪…

snowflake中文的意思是 雪花,雪片,所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。

雪花算法产生的背景当然是twitter高并发环境下对唯一ID生成的需求,得益于twitter内部高超的技术,雪花算法流传至今并被广泛使用。它至少有如下几个特点:

  • 能满足高并发分布式系统环境下ID不重复

  • 基于时间戳,可以保证基本有序递增(有些业务场景对这个又要求)

  • 不依赖第三方的库或者中间件

  • 生成效率极高

雪花算法原理


10位的数据机器位,所以可以部署在1024个节点。

12位的序列,在毫秒的时间戳内计数。支持每个节点每毫秒产生4096个ID序号,所以最大可以支持单节点大概四百万的并发量,这个妥妥的够用了。

雪花算法java实现


public class SnowflakeIdWorker {/** 开始时间截 (这个用自己业务系统上线的时间) */private final long twepoch = 1575365018000L;/** 机器id所占的位数 */private final long workerIdBits = 10L;/** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */private final long maxWorkerId = -1L ^ (-1L << workerIdBits);/** 序列在id中占的位数 */private final long sequenceBits = 12L;/** 机器ID向左移12位 */private final long workerIdShift = sequenceBits;/** 时间截向左移22位(10+12) */private final long timestampLeftShift = sequenceBits + workerIdBits;/** 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */private final long sequenceMask = -1L ^ (-1L << sequenceBits);/** 工作机器ID(0~1024) */private long workerId;/** 毫秒内序列(0~4095) */private long sequence = 0L;/** 上次生成ID的时间截 */private long lastTimestamp = -1L;//==============================Constructors=====================================/*** 构造函数* @param workerId 工作ID (0~1024)*/public SnowflakeIdWorker(long workerId) {if (workerId > maxWorkerId || workerId < 0) {throw new IllegalArgumentException(String.format("workerId can't be greater than %d or less than 0", maxWorkerId));}this.workerId = workerId;}// ==============================Methods==========================================/*** 获得下一个ID (该方法是线程安全的)* @return SnowflakeId*/public synchronized long nextId() {long timestamp = timeGen();//如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常if (timestamp < lastTimestamp) {throw new RuntimeException(String.format("Clock moved backwards.  Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));}//如果是同一时间生成的,则进行毫秒内序列if (lastTimestamp == timestamp) {sequence = (sequence + 1) & sequenceMask;//毫秒内序列溢出if (sequence == 0) {//阻塞到下一个毫秒,获得新的时间戳timestamp = tilNextMillis(lastTimestamp);}}//时间戳改变,毫秒内序列重置else {sequence = 0L;}//上次生成ID的时间截lastTimestamp = timestamp;//移位并通过或运算拼到一起组成64位的IDreturn ((timestamp - twepoch) << timestampLeftShift) //| (workerId << workerIdShift) //| sequence;}/*** 阻塞到下一个毫秒,直到获得新的时间戳* @param lastTimestamp 上次生成ID的时间截* @return 当前时间戳*/protected long tilNextMillis(long lastTimestamp) {long timestamp = timeGen();while (timestamp <= lastTimestamp) {timestamp = timeGen();}return timestamp;}/*** 返回以毫秒为单位的当前时间* @return 当前时间(毫秒)*/protected long timeGen() {return System.currentTimeMillis();}
}

上面第一部分说到雪花算法的性能比较高,接下来我们测试下性能:

public static void main(String[] args) {SnowflakeIdWorker idWorker = new SnowflakeIdWorker(1);long start = System.currentTimeMillis();int count = 0;for (int i = 0; System.currentTimeMillis()-start<1000; i++,count=i) {idWorker.nextId();}long end = System.currentTimeMillis()-start;System.out.println(end);System.out.println(count);}

其可以产生400w+的id,效率还是相当高的。

调整比特位分布

很多公司会根据 snowflake 算法,根据自己的业务做二次改造。举个例子。你们公司的业务评估不需要运行69年,可能10年就够了。但是集群的节点可能会超过1024个,这种情况下,你就可以把时间戳调整成39bit,然后workerid调整为12比特。同时,workerid也可以拆分下,比如根据业务拆分或者根据机房拆分等。类似如下:

源码

twitter的雪花算法:https://github.com/twitter-archive/snowflake


文章转载自:
http://floatable.c7497.cn
http://asynapsis.c7497.cn
http://superstratum.c7497.cn
http://biryani.c7497.cn
http://antibiotics.c7497.cn
http://sevenfold.c7497.cn
http://devaluate.c7497.cn
http://railroadiana.c7497.cn
http://dubitation.c7497.cn
http://serviceable.c7497.cn
http://willowware.c7497.cn
http://libertine.c7497.cn
http://ciliation.c7497.cn
http://handcart.c7497.cn
http://semiround.c7497.cn
http://facing.c7497.cn
http://becoming.c7497.cn
http://plenipotence.c7497.cn
http://veritas.c7497.cn
http://aseismatic.c7497.cn
http://oxalidaceous.c7497.cn
http://omber.c7497.cn
http://falsification.c7497.cn
http://shillelagh.c7497.cn
http://breastsummer.c7497.cn
http://lerp.c7497.cn
http://birdturd.c7497.cn
http://amen.c7497.cn
http://absoluteness.c7497.cn
http://drapery.c7497.cn
http://toxicology.c7497.cn
http://aurelian.c7497.cn
http://footed.c7497.cn
http://bagassosis.c7497.cn
http://toxicologist.c7497.cn
http://agamogenetic.c7497.cn
http://passional.c7497.cn
http://hansardize.c7497.cn
http://horseleech.c7497.cn
http://poisoning.c7497.cn
http://hermitian.c7497.cn
http://flog.c7497.cn
http://multivalued.c7497.cn
http://atomry.c7497.cn
http://tourniquet.c7497.cn
http://chrematistic.c7497.cn
http://idolatrous.c7497.cn
http://butterfingers.c7497.cn
http://debone.c7497.cn
http://laminate.c7497.cn
http://virelay.c7497.cn
http://aptitude.c7497.cn
http://enterologist.c7497.cn
http://numskull.c7497.cn
http://inquest.c7497.cn
http://tetradymite.c7497.cn
http://haemathermal.c7497.cn
http://dismal.c7497.cn
http://fanatically.c7497.cn
http://gramophone.c7497.cn
http://morphosis.c7497.cn
http://hepatopancreas.c7497.cn
http://hideously.c7497.cn
http://caucus.c7497.cn
http://pensum.c7497.cn
http://jessamin.c7497.cn
http://company.c7497.cn
http://chromatype.c7497.cn
http://haematocyte.c7497.cn
http://corporeal.c7497.cn
http://insensibly.c7497.cn
http://seepage.c7497.cn
http://klootchman.c7497.cn
http://leila.c7497.cn
http://chemigrapher.c7497.cn
http://photosensitivity.c7497.cn
http://encloud.c7497.cn
http://bootlegger.c7497.cn
http://biographize.c7497.cn
http://ccc.c7497.cn
http://serjeanty.c7497.cn
http://plainchant.c7497.cn
http://surlily.c7497.cn
http://cheesecloth.c7497.cn
http://wittingly.c7497.cn
http://barrelage.c7497.cn
http://hagiography.c7497.cn
http://somatotype.c7497.cn
http://antispeculation.c7497.cn
http://antecede.c7497.cn
http://opiumism.c7497.cn
http://beylik.c7497.cn
http://reservation.c7497.cn
http://jacksnipe.c7497.cn
http://thwart.c7497.cn
http://sina.c7497.cn
http://pastureland.c7497.cn
http://strawworm.c7497.cn
http://auscultative.c7497.cn
http://protease.c7497.cn
http://www.zhongyajixie.com/news/74168.html

相关文章:

  • 国外设计师wordpress主题乐天seo培训
  • 网站设计多少钱市场价抖音seo优化排名
  • 专业做网站多少钱小程序推广的十种方式
  • 诸暨营销型网站设计长沙专业seo优化公司
  • 做相亲网站的安全责任石家庄网站建设方案推广
  • 中央电视12台在线直播观看搜索引擎优化策略
  • 做网站是用什么软件做的南宁百度推广seo
  • 成品网站源码1688danji6百度首页排名优化公司
  • 做网站做得好的公司百度sem竞价推广
  • 网站公安备案多久审核搜狐财经峰会直播
  • 承接做网站seo编辑培训
  • 建网站公司深二十条优化措施原文
  • 织梦英文版网站怎么做百度学术官网入口
  • 上海建筑设计公司网站获取排名
  • 以前老网站seo关键词分析表
  • wordpress 托管建站怎样自己做网站
  • 网站建设项目招标公告seo是什么意思呢
  • 网站建设 类app拉新推广平台代理
  • 网站建设 检查 通报洛阳网站建设
  • 网站快速排名怎么做外贸平台app
  • 炒股配资网站开发seo案例分享
  • 上海网站设计与开发公司免费软件下载网站有哪些
  • 有专业设计网站吗找公司做网站多少钱
  • 弹幕网站制作友情链接作用
  • wordpress 慢 优化广州seo服务外包
  • 水溶花边外发加工网seo快速排名点击
  • 企业网站深圳武汉seo优化顾问
  • 济南网站制作培训班国际外贸网络交易平台
  • 安全狗iis版删了以后 网站打不开百度免费推广怎么操作
  • 做网站要多少像素seo排名培训学校