在使用hashCode的时候,发现会出现相同id,虽然几率很小。虽然发现并不是hashCode的原因,而是其他逻辑的问题。

  但是还是试着自己写了一个id生成器,有些id是int的,比如说任务id;有些id是long的,比如说玩家id。

先贴代码来看:

private static AtomicInteger id = new AtomicInteger(0);public static long getId(){return (ServerKit.getServerId() & 0xFFFF) << 48 | (System.currentTimeMillis()/1000L & 0xFFFFFFFF) << 16 | id.addAndGet(1) & 0xFFFF;}private static AtomicInteger IntId = new AtomicInteger(0);public static int getIntId(){return ((int)(System.currentTimeMillis() - 1000000000000L)/1000)<<16L | (IntId.addAndGet(1));}

在生成玩家id的时候把服务器的id也参与,便于以后的合服。

因为服务器是多线程,所以就用了 AtomicInteger 类型,不用再使用类似 sync等同步工具。

服务器唯一id生成规则相关推荐

  1. node 生成随机头像_唯一ID生成算法剖析

    引在业务开发中,大量场景需要唯一ID来进行标识:用户需要唯一身份标识:商品需要唯一标识:消息需要唯一标识:事件需要唯一标识-等等,都需要全局唯一ID,尤其是分布式场景下.唯一ID有哪些特性或者说要求呢 ...

  2. [转]【分布式系统】唯一ID生成策略总结

    文章目录 全局唯一id介绍 全局唯一id特点: 常见全局唯一id生成策略 1.数据库自增长序列或字段生成id 2.UUID 3.Redis生成ID 4.zookeeper生成ID 5.Twitter的 ...

  3. java 唯一id生成算法_唯一ID生成算法剖析

    在业务开发中,大量场景需要唯一ID来进行标识:用户需要唯一身份标识:商品需要唯一标识:消息需要唯一标识:事件需要唯一标识-等等,都需要全局唯一ID,尤其是分布式场景下. 唯一ID有哪些特性或者说要求呢 ...

  4. c#随机数生成编号_忘掉 Snowflake,感受一下性能高出587倍的全局唯一ID生成算法...

    今天我们来拆解 Snowflake 算法,同时领略百度.美团.腾讯等大厂在全局唯一 ID 服务方面做的设计,接着根据具体需求设计一款全新的全局唯一 ID 生成算法.这还不够,我们会讨论到全局唯一 ID ...

  5. 微信用户全局唯一标识_忘掉 Snowflake,感受一下性能高出587倍的全局唯一ID生成算法...

    今天我们来拆解 Snowflake 算法,同时领略百度.美团.腾讯等大厂在全局唯一 ID 服务方面做的设计,接着根据具体需求设计一款全新的全局唯一 ID 生成算法.这还不够,我们会讨论到全局唯一 ID ...

  6. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式

    文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...

  7. 唯一ID生成算法剖析,看看这篇就够了

    本文转载自腾讯技术工程 引 在业务开发中,大量场景需要唯一ID来进行标识:用户需要唯一身份标识:商品需要唯一标识:消息需要唯一标识:事件需要唯一标识-等等,都需要全局唯一ID,尤其是分布式场景下. 唯 ...

  8. 唯一ID生成算法剖析

    引 在业务开发中,大量场景需要唯一ID来进行标识:用户需要唯一身份标识:商品需要唯一标识:消息需要唯一标识:事件需要唯一标识-等等,都需要全局唯一ID,尤其是分布式场景下. 唯一ID有哪些特性或者说要 ...

  9. 【分布式系统】唯一ID生成策略总结

    文章目录 全局唯一id介绍 全局唯一id特点: 常见全局唯一id生成策略 1.数据库自增长序列或字段生成id 2.UUID 3.Redis生成ID 4.zookeeper生成ID 5.Twitter的 ...

最新文章

  1. Splay ---- 文艺平衡树区间翻转的建树模式
  2. arrays must all be same length
  3. 第一章 Shiro简介——跟我学习springmvc shiro mybatis
  4. ITK:多相Chan和Vese稀疏场水平集分割
  5. Install Shield制作安装包技巧(SQL篇)
  6. Ubuntu 13.04 双显卡安装NVIDIA GT 630M驱动
  7. oracle外部表kup-04023,Oracle外部表学习
  8. 地址栏引用PHP中变量,PHP 读取地址栏 参数
  9. 笔记+R︱信用风险建模中神经网络激活函数与感知器简述
  10. 深度学习自学(二十八):Altas人脸SDK实现之-回调函数
  11. 路由交换技术-实验4:VLAN创建、划分、修剪及Trunk链路
  12. 小程序定位并获取城市编码
  13. 互联网软件开发和传统软件开发的不同(转型互联网开发需要适应的那些事)
  14. 治疗长期失眠的最好食物,不可错过!
  15. 组员组长mysql_GitHub - gzh51906/ManKeZhan: 组长:黄林芳 组员:陈炜,王佳伟
  16. 楷体DB_2312 安装包
  17. HDLBITS笔记34:Lemmings1、Lemmings2、Lemmings3、Lemmings4
  18. 宝塔linux面板命令大全
  19. AutoCAD 2008 简体中文精简版(适合低配置电脑)
  20. matlab n阶方阵,用matlab编程设A=(aij)n*n为n阶方阵,求a从1到n? 爱问知识人

热门文章

  1. poj 2352 Stars(线段树)
  2. 好用的爬虫软件?动态ip软件告诉你
  3. 取子字符串的两种情形的解决办法(c#)
  4. NBTC明年6月将举行5G频谱拍卖 2.6GHz频段成关注重点
  5. 集合覆盖 顶点覆盖: set cover和vertex cover
  6. http://blog.csdn.net/xingfuzhijianxia/article/details/6433918
  7. 第一行代码读书笔记1+常见错误分析
  8. 学习汇编语言 -王爽,自已完成的一道课程设计题 (5)
  9. samba服务中,关于读写(也就是下载和上传)权限的优先级
  10. 推荐一个.NET下转Json的利器,FastJson