快充达话费充值系统
项目介绍:
作为项目组核心成员经历过项目从 1-100 的迭代周期,对于并发代码以及性能优化有过多次实战,由于公司业务扩展,需要对接话费充值运营商,于是开发一套话费充值系统来扩展公司业务。该系统由推单系统和配单系统两个项目组和使用,同时给三方渠道商提供对接接口。由于充话费业务的特殊性,月初月末都会有较大单量,最高 Tps500,峰值 Qps1500,其中推单项目用来对接话费渠道商,配单项目对接运营商。
技术选型:Spring Boot + MyBatis-Plus + Redis + Nginx + RocketMQ + OKHttp + MySQL
我的职责:
1.主导业务与数据库设计:负责整个项目的业务逻辑梳理和数据库结构设计,确保系统的业务流畅和数据一致性;
2.解决并发难题:针对高并发场景下的各种问题,利用Reentrantlock+自旋锁机制,解决refreshtoken的重复刷新问题,保障系统的安全性。
3.优化缓存策略:使用Redis的多种数据结构来优化缓存策略,如使用Hash结构存储系统参数,List结构实现支付凭证的先进先出策略以防过期,以及Set结构来避免重复订单的产生,这些策略显著提升系统的响应速度和准确性。
4.异步化处理提升性能:为了提高系统的吞吐量,将主干业务和核心业务进行异步化处理。系统能够更高效地处理第三方请求,并将核心业务逻辑进行批量异步处理,从而大幅提升系统的并发处理能力。
5.解决锁表与OOM问题:解决项目中遇到的锁表死锁问题,并通过优化线程池管理策略,有效避免因网络抖动导致的任务堆积和OOM风险。
6.数据归档提升查询效率:针对每月数百万级的数据增长导致的数据库性能下降问题,设计定时数据归档任务。通过这一措施,成功将数据库查询速度提升50%。