stamp单机游戏 适用于分布式唯一标识码的生成算法有哪些?
适用于分布式唯一标识码的生成算法有哪些?
谢邀~
关与这个问题,有几个方案和大家彼此分享帮一下忙。
利用数据库化合先说最笨的方法,依靠数据库的自增长的速度序列生成,数据库内真正。
优点:理解过来最很容易,用起来也最容易。
缺点:也更加的确了,每种数据库的实现相同,假如数据库不需要迁走的话也很麻烦;最大的问题是性能问题,可能不太好扩展,如果没有并发大的时候,数据库很可能顶不住。
凭借Redis/MongoDB/zookeeper生成沉淀Redis的单线程的,利用incr和increby;MongoDB的ObjectId;ZK是从znode数据版本;都可以不生成全局的任何标识码。
优点:性能低于数据库;也可以不使用集群部署。
缺点:必须分解重组按的组件,提升系统的奇怪度。
UUID这个是分布式架构中,能生成真正标识码最常用的算法。
UUID有基于组件MAC地址的,再加时间和时钟序列的,也有实现伪随机数的,基于加密哈希的。
优点:本地能生成,不是需要第三方组件,能生成比较好简单,性能好。
缺点:长度长,利于存储,而且没有排序,是个字符串,不利于查询。帮忙解决无序问题,可参考Comb算法(combinedguid/timestamp)。
SnowflakeTwitter开放源代码,实现zk,41位时间戳(1毫秒数)10位机器的ID12位1毫秒内的流水号1位符号位(永远永远是0)。
优点:性能确实不错,单机内递减。
缺点:依恋zk;依赖感于机器时钟,分布式环境内可能会不是全局递减。
UidGenerator百度闭源,基于snowflake算法。
Leaf美团开源。
优点:能只要全局唯一性、高可用、趋势递减(不太方便,比如泄露出来公司订单数量)、单调递减等。
缺点:却会依赖性太强第三方组件,zk或数据库。
我将缓慢分享Java开发、架构设计、程序员职业发展等方面的见解,如果能能换取你的关注。
工业互联网是什么?
工业互联网是什么?即是互联网工业,代表上帝一种新的经济形态,继续发挥互联网在工业的生产要素配置中的优化和集成作用。
互联网工业,以互联网为基础设施和工业的生产和发展高度地融合在一起,实现方法工业生产的经济增长点,用来互联网四通八达的道路和覆盖面广的特点,在工业的生产中实现方法资源优化配置。使工业的生产中节省成本、节约时间,为工业的生产提高效率。
借用互联网的特点可以不把相关联的工业连接在一起,你做到沟通有无,资源共享,使工业的生存和战略投资起着更大的推动作用。在未来的经济发展形态中,互联网会和工业一定高度地凝练在一起。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。