UUID和雪花算法的区别
一、基本概念
UUID,即通用唯一标识符(Universally Unique Identifier),是由一组十六进制数字组成的标识符,可以用来在分布式系统中唯一地标识某个信息。UUID是一种用于多个计算机之间的唯一标识符,用于指示文件或数据库内的唯一对象。
/** * 生成UUID */ public static String generateUUID() { return UUID.randomUUID().toString().replace("-", ""); }
雪花算法,即Snowflake算法,是一种生成ID的算法,它可以保证在分布式系统中生成ID是唯一的。Snowflake算法的核心是一个64位的二进制数字,由以下三部分组成:
1、时间戳(42位):毫秒级时间戳,从开始使用此算法的时间点开始算起,在递增中产生,最大可用69年;
2、机器标识(10位):可以指定每个节点的ID从0-1023进行编号;
3、序列号(12位):同一毫秒级时间戳下,不同机器的序列号会依次递增,最多可以生成4096个ID。
/** * 雪花算法 * * @param dataCenterId 数据中心ID * @param workerId 工作机器ID * @return 分布式ID */ public long snowFlake(long dataCenterId, long workerId) { long timestamp = System.currentTimeMillis(); // 时间戳部分 long timeBits = timestamp - SNOW_FLAKE_EPOCH; // 数据中心ID部分 long dataCenterIdBits = dataCenterId
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)