自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 礼物连发实现——请求合并

通常情况下,用户在发起连发的过程中,账户不会出现其他的扣费行为,那么当用户发起第一次连发请求时,通过当前余额,可以预测用户最大可连发数量。对于这种无法并发处理的业务,就需要采取降低事件的产生速度,此时就可以引入请求合并的思路,将多个相同的事件合并成一个事件。不需要,在有下一个合并的请求出现后,上一个请求就可以结束掉,根据缓存信息构造返回值,避免出现大量的请求阻塞造成性能问题。当然为了减少出现问题的可能性,可以保留一定的缓冲空间,达到阈值后的请求,均不在等待合并,直接发送同步执行。

2023-10-30 18:17:25 232 1

原创 支付中心避坑指南

支付作为大多数应用的核心模块,除了需要具备高可用性以外,安全性也是重中之重。下文主要为大家介绍我在搭建支付中心时积累的一些经验,希望可以给大家提供一些帮助。

2023-03-31 15:25:32 215

原创 Redis实现分布式可重入锁——CAS操作

WATCH:监控某些键值对;MULTI:用于开启一个事务;EXEC:执行事务;DISCARD:取消事务;UNWATCH:取消监控。通过watch命令,实现对某些Key的监听,当一个事务提交时,会优先检测监听的key是否发生改变,如果已发生改变,取消事务,若并未改变,执行事务。Lua是一种小巧的脚本语言,redis提供了对lua脚本执行的能力。通过将多个请求通过脚本的形式一次发送,redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。EVAL。

2023-03-30 10:17:12 1721

原创 业务中台(一)——总体介绍

随着公司不断的业务探索和实践,中台逐步完成了多项通用业务的沉淀,为后续项目的快速迭代,提供了有力的保障。

2022-11-20 17:50:49 591

原创 Mongo解决账户操作原子性问题

通过upsert和$setOnInsert相结合,可以完美的解决并发下账户操作原子性问题。

2022-10-20 19:32:47 502

原创 记线上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 4931

原创 suishen-queue

一、简单介绍suishen-queue是一个基于redis sortedset的事件消费队列。通过注解方便快速的与spring集成;满足at least onece,at most onece消费模式;支持同步消费和异步消费,异步消费支持按事件id分片,同分片下顺序消费,不同分片并发消费;同分片下,同id严格的顺序消费;支持普通的即时消费队列和定时的延迟消费队列;支持单点消费和集群的多节点消费;提供队列消费状态的实时监控,及消费失败和队列积压的钉钉告警。二、与spring的集成1、添加

2021-12-12 17:47:10 752

原创 Spring IOC生命周期扩展点(二)——使用流程

上图描述了IOC容器使用过程(即getBean),其中红色的模块为spring为用户在spring ioc容器生命阶段内提供的扩展点。在容器初始化阶段完成后,当用户使用getBean获取对象时,触发容器初始化对象的流程。1、InstantiationAwareBeanPostProcessor在容器初始化的过程中,容器会检测所有BeanPostProcessor类型的bean,并将其向容器注册,在这个过程中,容器若发现当前bean为InstantiationAwareBeanPostProcesso.

2021-04-10 16:59:52 218

原创 Spring IOC生命周期扩展点(一)——初始化流程

上图描述了IOC容器初始化过程,其中红色的模块为spring为用户在spring ioc容器生命阶段内提供的扩展点,蓝色为省略流程。在容器初始化过程中,当容器完成第一步BeanDefinition的注册流程后,容器其实已经进入了就绪状态,即可通过其getBean()方法获取容器中管理的类,所以在之后的流程中,有很多bean已经完成了其初始化的过程。1、初始化BeanFactoryPostProcessors当容器完成准备阶段后,会在容器内注册的BeanDefinition中查找,是否存在实现了Bea.

2021-04-05 21:03:35 405

空空如也

空空如也

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

TA关注的人

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