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

开发中英文网站多少钱兰州设计公司排名榜

开发中英文网站多少钱,兰州设计公司排名榜,不用下载就可以登录微信,成品网站nike源码1688免费写在前面 传说自然界中并不存在两片完全一样的雪花的#xff0c;每一片雪花都拥有自己漂亮独特的形状、独一无二#xff1b;雪花算法也表示生成的ID如雪花般独一无二#xff0c;该算法源自Twitter。 雪花算法主要用于解决分布式系统的唯一Id生成问题#xff0c;在生产环境…写在前面 传说自然界中并不存在两片完全一样的雪花的每一片雪花都拥有自己漂亮独特的形状、独一无二雪花算法也表示生成的ID如雪花般独一无二该算法源自Twitter。 雪花算法主要用于解决分布式系统的唯一Id生成问题在生产环境中可以部署一个单独的服务来运行雪花算法然后通过请求该服务获取全局Id。 相对于UUID来说其长度短生成快做数据库主键时方便建立索引所以整体效率要高很多。 代码实现 using System; using System.Collections.Generic; using System.Linq; using System.Text;public class IdWorker {//机器IDprivate static long workerId;private static long twepoch 687888001020L; //唯一时间这是一个避免重复的随机量自行设定不要大于当前时间戳private static long sequence 0L;private static int workerIdBits 4; //机器码字节数。4个字节用来保存机器码(定义为Long类型会出现最大偏移64位所以左移64位没有意义)public static long maxWorkerId -1L ^ -1L workerIdBits; //最大机器IDprivate static int sequenceBits 10; //计数器字节数10个字节用来保存计数码private static int workerIdShift sequenceBits; //机器码数据左移位数就是后面计数器占用的位数private static int timestampLeftShift sequenceBits workerIdBits; //时间戳左移动位数就是机器码和计数器总字节数public static long sequenceMask -1L ^ -1L sequenceBits; //一微秒内可以产生计数如果达到该值则等到下一微妙在进行生成private long lastTimestamp -1L;/// summary/// 机器码/// /summary/// param nameworkerId/parampublic IdWorker(long workerId){if (workerId maxWorkerId || workerId 0)throw new Exception(string.Format(worker Id cant be greater than {0} or less than 0 , workerId));IdWorker.workerId workerId;}public long nextId(){lock (this){long timestamp timeGen();if (this.lastTimestamp timestamp){ //同一微妙中生成IDIdWorker.sequence (IdWorker.sequence 1) IdWorker.sequenceMask; //用运算计算该微秒内产生的计数是否已经到达上限if (IdWorker.sequence 0){//一微妙内产生的ID计数已达上限等待下一微妙timestamp tillNextMillis(this.lastTimestamp);}}else{ //不同微秒生成IDIdWorker.sequence 0; //计数清0}if (timestamp lastTimestamp){ //如果当前时间戳比上一次生成ID时时间戳还小抛出异常因为不能保证现在生成的ID之前没有生成过throw new Exception(string.Format(Clock moved backwards. Refusing to generate id for {0} milliseconds,this.lastTimestamp - timestamp));}this.lastTimestamp timestamp; //把当前时间戳保存为最后生成ID的时间戳long nextId (timestamp - twepoch timestampLeftShift) | IdWorker.workerId IdWorker.workerIdShift | IdWorker.sequence;return nextId;}}/// summary/// 获取下一微秒时间戳/// /summary/// param namelastTimestamp/param/// returns/returnsprivate long tillNextMillis(long lastTimestamp){long timestamp timeGen();while (timestamp lastTimestamp){timestamp timeGen();}return timestamp;}/// summary/// 生成当前时间戳/// /summary/// returns/returnsprivate long timeGen(){return (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;} }/// summary /// 生成雪花ID /// /summary public static class SnowFlake {private static long _workerId 9;private static IdWorker _idWorker null;public static string NewId(){if (_idWorker null)_idWorker new IdWorker(_workerId);return _idWorker.nextId().ToString();} } 调用示例 var id SnowFlake.NewId();     MessageBox.Show(id.ToString()); 注意事项 需要注意的是雪花算法严重依赖时间所以当发生服务器时钟回拨的问题是会导致可能产生重复的id。当然实际基本不会发生这种情况生产环境中很少会回调服务器系统时间如果实在要回拨时间也可以通过调整步长参数来解决。
http://www.zqtcl.cn/news/241333/

相关文章:

  • 网站建设评比文章上海手机网站建设价格
  • 微信手机网站三合一建筑工程网络计划方法
  • 网站上文章分享的代码怎么做的建在线教育网站需要多少钱
  • 如何自己弄网站怎么用手机做网站服务器
  • 如果我的网站被百度收录了_以后如何做更新争取更多收录有做不锈钢工程的网站
  • 适合做公司网站的cms东莞阳光网站投诉平台
  • 建设一个网站的意义印刷东莞网站建设技术支持
  • 80端口被封怎么做网站个人网站做支付接口
  • 如何区分网站开发语言建设网站地图素材
  • 建网站的流程怎么投稿各大媒体网站
  • 品牌推广的步骤和技巧专业seo培训学校
  • 新网站上线怎么做seo网站建设语言什么语言
  • 山东省住房城乡和建设厅网站黄页网站推广下载免费
  • 网站建设与运营的论文的范本百度秒收录蜘蛛池
  • asp.net做音乐网站wordpress伪静态规则iis
  • seo 网站优化2021给个最新网站
  • 做废铝的关注哪个网站好seo推广优化的方法
  • 广州活动网站设计电影网站建设策划书
  • 4a景区网站建设标准网站建设排名优化公司
  • 闲置服务器做网站简单做图网站
  • 网站建设制作软件叫啥网盟推广是什么
  • 常州市住房建设局网站大连设计网站的公司
  • 通用wap网站生成系统wordpress 安装旧版本
  • 做网站用的产品展示横幅手机app开发技术
  • 学校网站模板 中文版沈阳seo博客
  • seo策划方案整站优化服务
  • 灵芝产品网站建设方案wordpress登录开发
  • 企业网站软件开发部署php网站
  • 云服务器怎么搭建网站网站制作软件是什么
  • 网站建设的结尾官网网站设计