- 博客(25)
- 收藏
- 关注
原创 支付项目中,订单重复怎么处理
这里需要注意 lockKey 的设置,正确应该是 "order_lock_" + orderNo 这种以订单号维度加锁,避免同笔订单多次插入的同时锁的粒度也足够细。如果采用 "order_lock" 作为 lockkey ,那么下单的方法的并发度就是一,严重影响性能,会导致请求阻塞引发系统崩溃。可以将订单号作为数据库的主键或者唯一索引,这样一来,数据库就会拒绝重复插入的情况,避免重复订单。
2024-10-31 16:37:52
248
原创 TransmittableThreadLocal
ExecutorService getTtlExecutorService(@Nullable ExecutorService executorService)装饰executorService。可以在父线程创建的子线程中传递和恢复线程上下文,特别适用于分布式系统中的上下文传递。3.集成与扩展:提供与标准threadloacal的良好集成。这个库解决了在使用线程池等多线程框架时,不能正确传递父线程上下文到子线程的问题。1.线程间值传递:任务之间的数据传递。如日志链路追踪,用户会话信息。
2024-08-30 19:37:56
204
原创 submit()和execute()的区别
方法来获取任务结果时,如果任务尚未完成,则当前线程会被阻塞直到任务完成;如果任务完成了(无论正常结束还是异常结束),),但这种情况通常用于需要返回一个特定值(而不是任务执行的结果)的场景,且该值在任务执行前就已经确定。因此,你无法直接获取任务执行的结果或任务执行过程中的异常信息。对象查询任务是否完成、等待任务完成以及获取任务的结果或异常。(如果任务执行过程中抛出了异常)。方法可以返回一个结果,并且能抛出受检查的异常。任务中抛出了异常,这个异常会被封装在返回的。任务中抛出了未捕获的异常,这个异常将由。
2024-08-01 15:52:26
381
原创 双重检测锁DCL对象半初始化问题
拿到锁的线程进入到同步方法里, 发现此时instance已经初始化过了, 所以就不进入第二个if方法, 直接返回已经初始化过的uniqueInstance。后续如果再有线程调用getUniqueInstance方法, 在第一个if判断那里就为false, 直接返回刚刚已经初始化过的instance了, 这样做的好处是: 保证了线程安全, 避免了多个线程同时调用getUniqueInstance方法时, 每次都在竞争锁, 增加系统的开销。= null (重点)= null (重点)1. 分配对象内存空间。
2024-07-22 10:38:14
428
原创 fatal: unable to access ‘https://github.com/tata20191003/autowrite.git/‘: Failed to connec
因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理。
2024-07-10 10:41:01
284
原创 Error running SsoApplicationRecordServiceImplTest.update. Command line is too long. Shorten the comm
选上Shorten command line。点击Edit Configuration。原因是在单元测试启动入口的配置没有设置。再设置JAR manifest。
2024-07-08 14:57:45
253
原创 单元测试@BeforeAll和@BeforeEach的区别
总的来说,@BeforeAll 和 @BeforeEach 的区别在于执行的时机和方法的签名。如果你需要在所有测试方法执行前执行某些操作,使用 @BeforeAll,如果你需要在每个测试方法执行前都执行某些操作,使用 @BeforeEach。@BeforeEach 注解表示在每个测试方法执行之前执行一次。与 @BeforeAll 不同,@BeforeEach 方法不能是静态的。@BeforeAll 和 @BeforeEach 是 JUnit 5 中的注解,用于在执行测试方法之前执行某些操作。
2024-07-02 16:56:50
1353
原创 @transactional注解原理
注解通过Spring的AOP机制,结合JDBC事务,为开发者提供了一种方便、灵活的事务管理方式,帮助开发者更好地管理数据的一致性和可靠性。
2024-06-14 20:20:01
900
原创 mysql中mvcc怎么实现
MySQL中的MVCC(多版本并发控制)主要用于InnoDB存储引擎来提供事务的隔离性。MVCC允许非锁定读操作,即读操作不会阻塞写操作,同时写操作也不会阻塞读操作(当然,写操作可能会阻塞其他写操作)。这是通过保留数据的旧版本来实现的,从而允许多个事务看到数据的一致快照。通过上述机制,InnoDB能够在提供高并发性能的同时,确保事务的隔离性和一致性。
2024-06-13 14:05:36
496
原创 索引失效问题
索引失效是指在进行数据库查询时,本应通过索引提高查询效率,但数据库实际却未能利用索引,而采用全表扫描的方式,这会导致查询时间和系统负担显著增加。5OR运算和NOT运算:在OR运算中,如果其中一个条件使用了索引,而另一个条件没有使用索引,整个查询可能会导致索引失效。这样可以减少对索引的影响,提高查询性能。7使用覆盖索引:尽量使用覆盖索引(只访问索引的查询),避免select *操作,以减少回表查询的次数,提高查询性能。6表连接中的索引失效:在表连接查询中,如果连接条件中的字段没有索引,可能导致索引失效。
2024-06-13 13:14:54
580
原创 如何给热点数据设置过期时间
在Spring Boot项目中,我们通常使用缓存框架(如Spring Cache、Caffeine、Redis等)来缓存热点数据,并设置这些数据的过期时间。
2024-06-11 17:40:30
524
原创 gateway层解决跨域问题
Spring Cloud Gateway允许你配置一个全局的CORS过滤器,该过滤器会应用于所有通过Gateway的请求。这个问题本质上是由浏览器的同源策略造成的,是浏览器对JavaScript施加的一种安全限制。同源策略是由Netscape提出的一个安全策略,是浏览器最核心也是最基本的安全功能。具体来说,同源指的是协议、域名、端口号都相同,只要这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin得来的,进而不被允许访问。来定义CORS策略,并将其添加为全局过滤器。跨域问题,主要指的是。
2024-06-11 17:15:09
271
原创 限流的实现
网关层面实现接口限流,你可以使用Spring Cloud Gateway结合Alibaba Sentinel。以下是一个简单的步骤和示例代码,展示如何在Spring Cloud Gateway中使用Sentinel进行接口限流。你可以使用Sentinel的API在运行时动态配置限流规则。中,你可以配置Sentinel的相关设置,如数据源、限流规则等。但在这个示例中,我们将主要关注如何在代码中动态配置限流规则。3.动态配置限流规则。
2024-06-11 17:07:12
375
原创 Redis缓存登录信息
通过将认证结果缓存在本地,可以减少对外部认证系统的依赖,从而提高应用的可用性和性能。:虽然缓存本身并不直接提高安全性,但通过将敏感数据(如密码哈希)存储在缓存中,并限制对这些数据的访问,可以减少潜在的安全风险。通过将登录信息缓存在内存中,可以显著减少数据库的查询次数,从而减轻数据库的压力。这可以用于实现会话超时功能,当用户的登录会话过期时,缓存中的登录信息将被自动删除,从而保证了用户会话的安全性。通过将用户的登录信息缓存在共享的缓存系统中,可以轻松实现单点登录功能。
2024-06-10 21:09:03
419
原创 为什么说红黑树查询快
1. 平衡性保证:○ 红黑树是一种自平衡的二叉搜索树,它在插入和删除节点时能够自动调整树的结构,以保持树的平衡性。○ 它的平衡性通过一组规则来确保,如每个节点要么是红色要么是黑色、根节点是黑色、叶子节点(NIL节点,空节点)是黑色等。○ 这些规则保证了红黑树的高度近似于log(n),其中n是树中节点的数量。这使得红黑树的高度相对较低,从而保证了查询效率。2. 时间复杂度低:○ 红黑树的查找、插入和删除操作都能在O(log(n))的时间复杂度内完成。
2024-06-10 15:36:42
915
原创 Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接
输入redis.cli..exe -h 127.0.0.1 -p 6379。此时不要关闭窗口,在redis目录下新开一个cmd。连接redis时显示的报错。
2024-06-08 15:00:42
350
1
原创 docker-java报错
原因是没有连接linux系统,默认为Windows下。//获取默认dockerClient。首先看能不能进行网络连接。然后创建新的远程连接。
2024-06-07 15:12:48
728
1
原创 docker常用命令
记录doker的常用命令1. 查看镜像列表docker image ls 或 docker imagesdocker images -a:列出所有镜像2. 搜索镜像。
2024-06-07 14:32:11
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人