自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 BigDecimal实现精确计算原理

BigDecimal实现精确计算原理 我们在金融项目中,计算金额最常用的数据类型是BigDecimal,它可以帮助我们实现对金额的精确计算。那它实现精确计算的原理是啥呢? 我们知道计算机中的浮点数,double,float存储的浮点数,可能不是一个准确的数,而是接近这个数的一个近似数。 比如:double a = 2.13。 实际:2.1300000000001 那BigDecimal如何实现精确计算呢? 其实原理也很简单,计算时,先成于10的N次方,先把小数都变成整数,整数存储是没有精度问题的,做完了相应

2021-12-12 22:49:03 2092

原创 分布式唯一ID实现

分布式唯一ID实现 在业务开发中,大量场景需要用到唯一ID,比如系统流水号,订单号等等。 那么,分布式唯一ID有哪些特征呢? 唯一性: 生成的ID全局唯一。 高可用: 可保证在高并发下的可用性,确保任何时候都能正确生成ID。 自主性:分布式环境下不依赖中心认证,即可自行生成ID。 安全性:不暴露系统和业务信息。 有序性:生成的ID按某种规则有序,便于数据库插入及排序。(某些情况下也需要无序ID) 常见的分布式唯一ID生成方法有哪些? 数据库自增ID 使用数据库的ID自增策略。 优点: 简单,天然有序。

2020-05-24 17:56:38 162

原创 分布式锁Redis实现

      上篇讲了分布式锁的数据库实现,这篇我们继续来讲分布式锁的redis实现。 那么如何通过redis来实现一个分布式锁呢? 一般最容易想到的命令,就是setNx 那在使用redis setNx命令时,还需要关注哪些点呢? redis分布式锁常用命令,SETNX(key, val) 当且仅当key不存在时,设置成功,返回“1”,否者什么都不做,返回“0” 我们可以利用该命令的特性进行加锁操作。 假如同时有两个线程要竞争资源,其中一个线程先

2020-05-24 17:21:02 113

原创 分布式锁MySQL实现

分布式系统中,一个避不开的话题,就是在很多情况下,我们需要用到分布式锁。 那分布式锁,通常有哪几种实现方式呢? 分布式锁的实现方式,通常有三种,数据库实现,Redis实现,Zookeeper实现。 我们将分三篇文章来分别介绍这三种实现。 首先要来介绍的是数据库版实现的分布式锁。我们看以下几个场景中,如何用mysql数据库来实现一个分布式锁。 场景1:我们曾经做的一个贷款系统,在用户借款前,需要给用...

2020-04-26 18:58:14 218

原创 如何实现一个幂等接口

如何实现一个幂等接口 首先我们要搞清楚,何为幂等。幂等本来是一个数学中的概念,即使f(x)=f(f(x))。引入到计算机领域后,指对同一个接口或方法,使用同样的条件,一次请求和任意多次请求对系统的影响是一致的。 那通常我们有哪些手段来实现一个幂等接口或幂等函数呢? 我们还是先来将接口分下类,将接口分为查询,删除和交易类型: 查询类型: 查询类型的接口,天然具有幂等性,因为查询交易一般不会对系统...

2020-04-12 17:06:25 871

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除