积分平台之十九[数据库死锁]

背景 数据库死锁常发生于两个事务,互相依赖对方的资源,在获取锁的时候形成互相等待。MySQL会自动检测死锁,并回滚较小的事务。 例子 在用户查询积分的时候,触发了过期。 ...

2025-04-28 · 1 分钟 · johnny

积分平台之十六[多线程使用]

背景 项目中的cpu使用率往往不高,使用多线程可以迅速提高cpu利用率,迅速提高任务处理效率。 例子 任务中的多线程设计 使用countdownLatch,将人群进行拆分,多线程进行处理,然后主线程阻塞等待下一批任务 使用最大线程数控制,原子类,判断线程数进行多线程开启,否则sleep,不占用cpu 接口中的多线程设计 ...

2025-04-28 · 1 分钟 · johnny

积分平台之十七[消息队列]

背景 消息队列是现代应用系统中应用非常广泛的组件。可以利用消息队列实现流量削峰,业务解耦。 例子 流量削峰 用户入会。大促时,往往会出现大量的用户引流入会,这时候快速的处理入会请求,不影响用户的活动参与就非常重要。这时候往往将用户入会请求直接标记为成功,再交由消费服务完成完整的入会过程,可能涉及历史的积分等级处理。 ...

2025-04-28 · 2 分钟 · johnny

积分平台之十三[分布式id]

背景 很多系统中往往需要一个全局唯一的id,例如订单号,用户id。 现在在积分日志分库分表情况下需要唯一id。数据异构之间的同步,如果不是唯一id,可能发生冲突。 ...

2025-04-28 · 1 分钟 · johnny

积分平台之十四[线上问题排查]

背景 线上问题排查是一名合格开发的必备技能。 设计 要求 线上出现慢接口,如何定位问题 任务无法启动,频繁重启,如何定位,例如淘宝同步服务 应对 arthas 通过阿里开源诊断工具arthas可以进行处理 ...

2025-04-28 · 1 分钟 · johnny

积分平台之十五[数据库优化相关]

背景 数据库作为项目核心组件,常见的问题分析和优化 例子 积分日志查询慢 数据密度大,遇到深翻页问题,采用返回id进行数据过滤,需要客户端配合调整。 进一步,采用推模型来同步积分日志。 ...

2025-04-28 · 1 分钟 · johnny

积分平台之十一[账号归档]

背景 不断增长的存储空间占用,需要降低存储,清理无效账号 设计 要求 按照租户进行归档,挑选近三年没有积分日志新增且用户最大更新时间为三年前的租户 归档前需要确认 使用oss存储,支持还原 实现 按照租户进行筛选 进行二次运营确认 确认归档处理,按照数据行复制到文件后进行gzip压缩 上传到oss 删除数据(注意在业务低峰期) 如果需要还原,从oss下载文件解压,并导入

2025-04-28 · 1 分钟 · johnny

积分平台之四[风控与安全]

背景 积分相当于用户的资产,往往需要当作金钱对待 设计 要求 需要及时发现用户的薅羊毛行为 对于异常用户需要有黑名单机制 接口调用需要有相应的鉴权措施 实现 如何及时发现用户的薅羊毛行为 ...

2025-04-28 · 2 分钟 · johnny

积分平台之五[数据一致性]

背景 作为一套积分系统,数据一致性相当重要。例如积分日志和积分总值的对账一致。 设计 要求 积分日志和积分总值对得上 支持按照积分日志回放积分值 支持按照业务系统、活动进行对账 实现 自身对账 ...

2025-04-28 · 1 分钟 · johnny

积分平台之一[整体架构]

一、业务架构 处理会员积分、账户管理和第三方平台集成。 1、账户管理 区分普通账号和品牌账号,提供多维度的业务构建基础 按照账号分库分表 2、积分管理 支持多种积分发放场景,单个、批量 支持积分余额查询,明细查询 实现积分风控,每日限额,大额告警 实现积分过期 3、用户管理 用户基本信息查询 用户合并、解绑 用户积分同步 4、第三方模块继承 电商平台会员等级、积分打通 下游品牌打通 二、技术架构 1、整体框架 分层架构:采用经典的控制层、服务层、数据访问层设计 ...

2025-04-28 · 1 分钟 · johnny