首先说一下背景,目前笔者的工作是物联网方面的,设备有对应的智慧运营平台,平台开发中建表的主键用的是Mybatis plus默认的雪花算法来生成的,也就是分布式系统比较常用的雪花ID,技术栈就是常用的Spring boot+Spring could Alibaba,json工具 ...
最近公司的一个项目组要把以前的单体应用进行为服务拆分,表的ID主键使用Mybatis plus默认 的雪花算法来生成。 快下班的时候,小伙伴跑过来找我,: 快给我看看这问题,卡这卡了小半天了 。连拉带拽,连哄带骗的把我拉到他的电脑前面。这位小伙伴在我看来技术不算是大牛,但经验也很丰富了。他都卡了半天的问题,应该不是小问题,如果我一时半会搞不定,真的是耽误我下班了,所以我很不情愿的在他的位置坐了下来 ...
2020-08-25 07:11 13 5686 推荐指数:
首先说一下背景,目前笔者的工作是物联网方面的,设备有对应的智慧运营平台,平台开发中建表的主键用的是Mybatis plus默认的雪花算法来生成的,也就是分布式系统比较常用的雪花ID,技术栈就是常用的Spring boot+Spring could Alibaba,json工具 ...
问题: 数据库中id是1465396696468033540 结果传到前端变成1465396696468033500,后面几位精度缺失了 原因: Number精度是16位(雪花ID是19位的),so:JS的Number数据类型导致的精度丢失 解决办法: 直接使用注解 ...
两种解决方案: 1、 需要运算的话可以用三方库,Long.js 2、 不需要运算的话,后端将long长整型字段改为string ...
出现这种结果的原因:float和double类型尤其不适合用于货币运算,因为要让一个float或double精确的表示0.1或者任何其他负数次方值是不可能的(十进制系统中不能准确的表示出1/3,同样二 ...
一. 分布式 id 特点: 1. 全局唯一性:全局没有重复的id标识。 2. 递增性:保证生成的 id 在业务中是递增的。 3. 高可用:确保在任何时候都能生成正确可用的id。 4. 高并发:在高并发环境下表现良好。 分布式id常见解决方案 1. UUID java 中自带的算法,其能生成 ...
一、概述 1、SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: ● 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 ● 41位,用来记录时间戳(毫秒 ...
雪花算法中的时间回拨问题 什么是时间回拨问题 雪花算法通过时间来即将作为id的区分标准之一,对于同一台id生成机器,它通过时间和序号保证id不重复当机 ...
由于公司数据库表的id是利用雪花算法生成的,所以实体类里面定义的数据类型为Long。但是这个数据传到前端时,发生了精度丢失的现象。本文记录了从java后端的角度如何解决这个精度丢失的问题,便于自己后续查阅。 一、问题的描述 前端通过ajax请求后端接口,返回json数据 ...