首页
Java
杂记
友链
项目
算法刷题
关于我
gitcode
我的巴拉巴拉
1
自研数据库路由组件:实现动态数据源切换与分库分表
2
MyBatis 的执行流程
3
redis八股相关
4
MySQL
5
ZooKeeper实现分布式锁
登录
songqi
累计撰写
20
篇文章
累计收获
238
次访问
累计创建
11
个标签
导航
首页
Java
杂记
友链
项目
算法刷题
关于我
gitcode
我的巴拉巴拉
目录
XXL-JOB任务扫描活动状态
2025-03-27 11:08
3
0
0
24.3℃
项目
在这个抽奖系统主要干了两件需要任扫描的事, 第一个是把"已审核通过"的活动变成"进行中"状态,第二个是把"已结束"的活动关闭。 主要是通过 XXL-JOB这个分布式任务框架,比Spring自带的@Scheduled更强大。然后配置的是每10秒跑一次,扫描数据库里的活动。最后需要通过分页查询(每次查1
MQ解耦抽奖发货流程
2025-03-27 09:34
4
0
0
24.4℃
项目
首先我们在user_strategy_export表加了mq_state字段,用来记录消息发送状态。整个流程是这样的:当用户抽中奖品后,系统会先在数据库生成中奖记录,此时mq_state是待发送状态(0)。然后通过KafkaProducer发送发货消息,如果发送成功就把状态改成1,失败就改成2。这里
将要入夏的夜是沉醉的东风吗?
2025-03-27 01:00
1
0
1
26.1℃
杂记
建立规则引擎实现人群的决策量化
2025-03-27 00:03
7
0
0
24.7℃
项目
当时我们做抽奖系统的时候,确实遇到了人群分类的问题。最开始的做法特别粗暴,直接写了一堆if-else: if(user.getAge() > 18 && user.getGender().equals("男")){ // 给男性成年人分配A策略 } else if(user.getVipLe
颜文字
2025-03-26 00:36
4
0
0
24.4℃
杂记
🎩 经典老派颜文字 (´・・) (´-ι_-`) (´ー) (´Д`。) (´;ω;`) (´;д;) (´;∀;) (´;⌒;) (´・ω・) (´・・) (´・ω・`) (´・ᴗ・) 使用场景:90年代聊天室怀旧、蒸汽波氛围、略带忧郁的文艺感。
emoji大全
2025-03-26 00:27
3
0
0
24.3℃
杂记
💕 搭配小符号更萌 (´∀`)♡ (๑•́ ₃ •̀๑) (◕‿◕✿) (⁄ ⁄•⁄ω⁄•⁄ ⁄) (⸝⸝⸝ᵒ̴̶̷̥́ ⌑ ᵒ̴̶̷̣̥̀⸝⸝⸝) ( ˘ ³˘)♥ 表情类 🤩 🥳 🥰 😍 😻 👀 💫 🌟 ⭐️ ✨
ZooKeeper实现分布式锁
2025-03-25 21:36
11
0
0
25.1℃
除了Redis可以实现分布式锁之外,还可以通过Zookeeper实现,它较于前者的优势是它的数据是强一致的,一般秒杀会用到。今天我们来介绍一下基于ZooKeeper实现分布式锁。😄 首先在介绍ZooKeeper实现分布式锁之前,先介绍一下ZooKeeper遵循的一个ZAB协议。专为 ZooKeep
MyBatis 的执行流程
2025-03-24 17:32
16
0
0
25.6℃
MyBatis
Java
配置加载阶段 读取配置文件:加载 mybatis-config.xml(全局配置,如数据源、插件、类型处理器等)。 加载映射文件:解析 Mapper.xml 或注解形式的 SQL 定义,生成 MappedStatement 对象(包含 SQL、参数/结果映射等信息)。 构建 SqlSession
自研数据库路由组件:实现动态数据源切换与分库分表
2025-03-24 13:17
40
1
2
35.0℃
Java
为什么需要分库分表? 背景 首先,抽奖活动通常会在短时间内吸引大量用户参与,导致系统瞬时请求量激增。同时,活动有明确的时间范围,需要在活动期间完成。然后还有一点是抽奖活动数据不会长期累积,活动结束后数据量相对来说是稳定的。 引入 业务体量较大,数据增长较快,所以需要把用户数据拆分到不同的库表中去,减
上一页
下一页
1
2
弹