自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 详细解析:Redis持久化之RDB持久化

RDB持久化优点:---1. 数据恢复速度快---2. 文件体积小---3. 对 Redis 性能影响小缺点:---1.RDB执行间隔长,两次RDB之间写入数据会出现数据丢失问题---2.fork子进程,压缩,写出RDB文件都比较耗时。

2025-04-08 23:10:51 474 1

原创 项目总结:经典并发安全问题之超卖问题(下)

上篇我们解决了优惠券超卖问题,但是我们在判断优惠券的同时,也会判断一下用户限领数量,如图:可以看到,这部分逻辑也是按照三步走:查询数据库判断是否超出限领数量新增用户优惠券券这段代码同样不具备原子性,同样会出现线程安全问题,这该如何解决呢?难道也如果添加用户优惠券一样添加乐观锁嘛?显然不行,因为乐观锁常用在更新,而且这里用户和优惠券的关系并不具备唯一性,因此新增时无法基于乐观锁做判断。所以,我们只能使用悲观锁。

2025-02-28 22:57:15 476

原创 项目总结:经典并发安全问题之超卖问题(上)

结合实际场景,我们这边只需要在更新优惠券的时候添加乐观锁即可,我们可以在提交的时候用已发行数量和全部优惠券数量比较,小于全部优惠券数量即可提交。不过,加锁的方式多种多样,大家熟悉的Synchronized、ReentrantLock只是其中最基础的锁。缺点:并发较高时,可能出现更新成功率较低的问题(并行的N个线程只会有1个成功)这样,优惠券超卖的问题可以解决。但是,一定没有问题了吗?针对并发安全问题,最广为人知的解决方案就是。作本人笔记,若有错误欢迎指正。优点:性能好、安全性也好。

2025-02-28 22:24:06 497

原创 Java中 == 和 equals 的区别:深入理解对象比较以及包装类的深入解析

=:比较引用(内存地址)或基本数据类型的值。equals:比较对象的内容(值)。

2025-02-05 19:57:06 422

原创 深入解析RabbitMQ:消息队列的可靠性

它通过提供一个临时存储消息的缓冲区,允许发送方和接收方在不同的速度下运行,从而实现解耦和缓冲。然而,随着业务需求的不断增长和系统规模的扩大,消息队列的可靠性成为了我们需要关注的重要问题。不过SpringAMOP提供的重试机制是阻寨式的重试,也就是说多次重试等待的过程中,当前线程是被阻塞的,会影响业务性能。SpringAMQP提供了消费者失败重试机制,在消费者出现异常时利用本地重试,而不是无限的requeue到mq。在程序开发中,则是指同一个业务,执行一次或多次对业务状态的影响是一致的。auto:自动模式。

2025-01-31 20:38:07 1336

原创 使用OpenFeign传递用户

请求进来后是从网关进来的,这时是携带用户信息的,所以是可以拿到用户信息的,如果他想其他发送请求时,使用的是OpenFeign,那么其拦截器就会生效,那么通过Feign的拦截器改变请求头,使其请求头中携带用户信息,转发到其他服务的时候,其他服务便可以获取到用户信息了。OpenFeign为我们提供了一个接口,所有由OpenFeign发出的请求都会先调用拦截器处理请求。微服务项目中,获取用户信息可以通过网关传递用户信息,如果在微服务与微服务之间有相互请求,那该如何做?通过修改请求头,获取用户信息。

2025-01-22 21:22:32 287

原创 实现网关权限认证并携带用户信息进行转发

在单体项目时,我们获取用户信息可以直接通过ThreadLocal获取,但是在微服务中该方法并不可行,那应该如何获取用户信息?

2025-01-22 21:13:57 271

空空如也

空空如也

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

TA关注的人

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