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

牡丹江做网站网站上面的水印怎么做

牡丹江做网站,网站上面的水印怎么做,南宁建站服务公司之,公司建设网站需求分析写在前面 传说自然界中并不存在两片完全一样的雪花的#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.yutouwan.com/news/109696/

相关文章:

  • 免版权费自建网站Wordpress转jekyll
  • 做租凭网站是经营性吗系统开发外包
  • 邯郸网站制如何自己做公司网页
  • jsp网站开发可行性分析c 做网站后端
  • 手机创建自己网站瀑布流响应式网站模板
  • 网站排名忽然不见了菜鸟制作个人网站网页实例
  • 博罗建设银行网站king wordpress theme
  • 福州闽侯网站建设用例图在线制作网站
  • 工作室网站免费建设快三网站建设
  • 北京未来科技城开发建设有限公司 网站wordpress大负载
  • 建设学校网站的意义市场营销策划案的范文
  • 各大网站的404文山知名网站建设哪家好
  • 个人建网站怎么赚钱wordpress无法创建
  • 怎样设计自己网站域名网站建设银行
  • 胶东网站建设没有地址可以注册公司吗?
  • 化工企业网站模板合肥网站建设步骤
  • 做网站对于不同的分辨率asp网站建设实录pdf
  • 做粥哪个美食网站好学校网站的建设目标是什么
  • 浙江省专业网站制作网站建设汕头人才招聘网最新招聘信息
  • 商业营销厅装修公司宁波seo网站推广软件
  • 网站建设与网络推广石家庄网站制作哪家好
  • 怎么做一网站wps wordpress
  • 个人电脑做网站违法吗公司网站管理属于什么职位
  • 北京智能网站建设哪里好建立学校网站需要多少钱?
  • 海南四定网站开发学广告设计需要什么学历
  • 个人网站 平台wordpress 链接 中文乱码
  • 建设网站需要什么要求做快递网站制作
  • 网站不兼容怎么办啊中国建设银行阜阳分行网站
  • .net做网站教程北京企业网站建设推荐
  • 企业网站 阿里云正规网站制作全包