- 博客(9)
- 收藏
- 关注
原创 礼物连发实现——请求合并
通常情况下,用户在发起连发的过程中,账户不会出现其他的扣费行为,那么当用户发起第一次连发请求时,通过当前余额,可以预测用户最大可连发数量。对于这种无法并发处理的业务,就需要采取降低事件的产生速度,此时就可以引入请求合并的思路,将多个相同的事件合并成一个事件。不需要,在有下一个合并的请求出现后,上一个请求就可以结束掉,根据缓存信息构造返回值,避免出现大量的请求阻塞造成性能问题。当然为了减少出现问题的可能性,可以保留一定的缓冲空间,达到阈值后的请求,均不在等待合并,直接发送同步执行。
2023-10-30 18:17:25
292
1
原创 支付中心避坑指南
支付作为大多数应用的核心模块,除了需要具备高可用性以外,安全性也是重中之重。下文主要为大家介绍我在搭建支付中心时积累的一些经验,希望可以给大家提供一些帮助。
2023-03-31 15:25:32
235
原创 Redis实现分布式可重入锁——CAS操作
WATCH:监控某些键值对;MULTI:用于开启一个事务;EXEC:执行事务;DISCARD:取消事务;UNWATCH:取消监控。通过watch命令,实现对某些Key的监听,当一个事务提交时,会优先检测监听的key是否发生改变,如果已发生改变,取消事务,若并未改变,执行事务。Lua是一种小巧的脚本语言,redis提供了对lua脚本执行的能力。通过将多个请求通过脚本的形式一次发送,redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。EVAL。
2023-03-30 10:17:12
1784
原创 记线上mongo慢查询问题排查处理
一、事件脉络1、起因用户中心收到业务方反馈,第三方登录注册出现频繁dubbo调用超时。org.apache.dubbo.rpc.RpcException: Failed to invoke the method loginWithThird in the service weli.wormhole.rpc.user.center.api.ILoginNeedPhoneService. Tried 1 times of the providers [10.65.5.0:11090] (1/4) from
2022-03-17 10:34:21
4954
原创 suishen-queue
一、简单介绍suishen-queue是一个基于redis sortedset的事件消费队列。通过注解方便快速的与spring集成;满足at least onece,at most onece消费模式;支持同步消费和异步消费,异步消费支持按事件id分片,同分片下顺序消费,不同分片并发消费;同分片下,同id严格的顺序消费;支持普通的即时消费队列和定时的延迟消费队列;支持单点消费和集群的多节点消费;提供队列消费状态的实时监控,及消费失败和队列积压的钉钉告警。二、与spring的集成1、添加
2021-12-12 17:47:10
764
原创 Spring IOC生命周期扩展点(二)——使用流程
上图描述了IOC容器使用过程(即getBean),其中红色的模块为spring为用户在spring ioc容器生命阶段内提供的扩展点。在容器初始化阶段完成后,当用户使用getBean获取对象时,触发容器初始化对象的流程。1、InstantiationAwareBeanPostProcessor在容器初始化的过程中,容器会检测所有BeanPostProcessor类型的bean,并将其向容器注册,在这个过程中,容器若发现当前bean为InstantiationAwareBeanPostProcesso.
2021-04-10 16:59:52
223
原创 Spring IOC生命周期扩展点(一)——初始化流程
上图描述了IOC容器初始化过程,其中红色的模块为spring为用户在spring ioc容器生命阶段内提供的扩展点,蓝色为省略流程。在容器初始化过程中,当容器完成第一步BeanDefinition的注册流程后,容器其实已经进入了就绪状态,即可通过其getBean()方法获取容器中管理的类,所以在之后的流程中,有很多bean已经完成了其初始化的过程。1、初始化BeanFactoryPostProcessors当容器完成准备阶段后,会在容器内注册的BeanDefinition中查找,是否存在实现了Bea.
2021-04-05 21:03:35
411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人