项目介绍: 每天各种借贷账务数据进行解析分析,需要进行各种对账、轧账 、审核 、计算、流转等处理 。除此之外,流
程涉及到大量邮件发送,导入导出数据,定时任务,异常报警等。流转涉及到与其他平台的联动,就包括接口调用与对
外提供接口 。还有所有系统所必备的用户管理功能,权限控制等功能。
项目亮点:
1、基于Nginx + spring Boot + Mybatis+Redis+ Kafka+Mysql + jwt(security) + Quartz + swagger + Apollo
+ Git + 分布式,实现项目的微服务化,划分为公共 、用户、账务数据、定时任务等服务,提高可扩展性和容错性,利用
SPI机制实现模块之间可插拔
2、采用JWT方案解决用户登录问题,并采用双令牌的登录认证,保证调用的安全性 、可渊源性
3 、为方便其他业务后续使用缓存,使用AOP实现通用缓存访问静态方法,并解决了缓存雪崩、缓存穿透等问题。使用H
ash 代替String来存储信息,节约了内存并便于单字段的修改
4、使用DFA算法过滤敏感词,DP优化标签匹配功能,并通过改进快排算法和组合索引解决大数据排序问题
5、使用 EasyExcel读取账单信息,并通过自定义线程池+CompletableFuture并发编程提高批导入数据库的性能。
6、使用Kafka.将未处理账单进行广播,提供给所需部门,解耦了与各部分复杂的流程网,大大降低了数据传输负载
7 、为提高数据库整体读写性能,配置MySQL主从同步,并使用sharding-JDBC实现业务无侵入的读写分离
8 、为优化分页带来的深度查询问题,使用标签记录的方式改写SQL,完美解决了分页查询慢的问题
9 、为方便集中式管理配置文件,使用Apollo实现了文件的远程配置