当前位置: 首页 > 知识库问答 >
问题:

「雪花算法分布式Id以及其产生的前端精度损失」问题只能在后端处理吗?

鲁明知
2023-10-08

参考:https://blog.51cto.com/knifeedge/5321306

一般的解决办法就是在后端把 long long 这个 int 转成 string 再发给前端

那么,有其他办法吗?比如后端还是把 long long 直接发给浏览器,让浏览器或者什么前端处理来处理这个 long long

前端难道一点办法都没有吗?

共有2个答案

易弘阔
2023-10-08
  1. BigInt
  2. bignumber.js
丁钟展
2023-10-08

在分布式系统中,雪花算法(Snowflake Algorithm)是一种用于生成唯一ID的算法,通常在后端处理。这种算法可以生成全局唯一的ID,以便在分布式系统中跟踪和识别各种事件和实体。

对于前端精度损失的问题,通常情况下,确实是在后端处理。因为前端处理可能会因为网络传输或者其他原因造成精度损失。

然而,这并不意味着前端完全没有处理这个问题的方法。在某些情况下,如果前端能够安全地获取到雪花ID,并且确保不会因为网络传输或者其他原因造成精度损失,那么前端也可以进行处理。

但是,这通常涉及到一些比较复杂的技术,比如将ID以某种方式编码或者以某种特殊格式进行传输,以确保精度不会损失。此外,前端处理还可能会涉及到用户体验和性能方面的问题,因此需要谨慎考虑。

综上所述,虽然通常来说后端是处理雪花算法和保证ID唯一性的主要责任方,但并不意味着前端完全没有处理的办法。但是在处理前端精度损失时,需要考虑很多复杂的因素,包括网络传输、用户体验和性能等等。

 类似资料:
  • 分布式ID常见生成策略 分布式ID生成策略常见的有如下几种: 数据库自增ID。 UUID生成。 Redis的原子自增方式。 数据库水平拆分,设置初始值和相同的自增步长。 批量申请自增ID。 雪花算法。 百度UidGenerator算法(基于雪花算法实现自定义时间戳)。 美团Leaf算法(依赖于数据库,ZK)。 其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布

  • API 都搞不好,还怎么当程序员?如果 API 设计只是后台的活,为什么还需要前端工程师。 作为一个程序员,我讨厌那些没有文档的库。我们就好像在操纵一个黑盒一样,预期不了它的正常行为是什么。输入了一个 A,预期返回的是一个 B,结果它什么也没有。有的时候,还抛出了一堆异常,导致你的应用崩溃。 因为交付周期的原因,接入了一个第三方的库,遇到了这么一些问题:文档老旧,并且不够全面。这个问题相比于没有文

  • Seata内置了一个分布式UUID生成器,用于辅助生成全局事务ID和分支事务ID。我们希望该生成器具有如下特点: 高性能 全局唯一 趋势递增 高性能不必多言。全局唯一很重要,否则不同的全局事务/分支事务会混淆在一起。 此外,趋势递增对于使用数据库作为TC集群的存储工具的用户而言,能降低数据页分裂的频率,从而减少数据库的IO压力 (branch_table表以分支事务ID作为主键)。 在老版Seat

  • 后端返回双精度数据,前端无法正常显示,js只支持浮点数。除了后台转字符串,前端循环添加toFixed,还有别的好的方法吗?

  • 问题内容: 我的代码是 编译时出现以下错误 但是,当我使用它代替它成功编译时,那么我的问题是,当所有3个变量(即a,b和c)都是字节数据类型时,为什么需要强制转换? 问题答案: ,此处的运算符将返回,这就是您需要使用强制转换的原因。

  • 定点的四则运算 定点加法 原则:统一定标到同一个合适定标值 举例:x = 16384; y = 25395; x 的定标是Q15,y 的定标是 Q13。计算 z = x + y,要求将输出 z 的定标设定为 Q12。 y = y<<2 = 101580 // y的定标由 Q13 提升到 Q15 z = x + y = 16384 + 101580 = 117964 // Q15 z = (int)