背景:CDT成为阿里云云上核心计费产品,用户量从50w-700w的增长,对业务有一个大的增长
需求:需要对开通CDT的用户做CDT抵扣包的流量抵扣
项目难点在于:数据量大,对抵扣性能要求大,同时对db查询的qps有一个大的压力
• CDT抵扣包分库分表改造:基于TDDL中间件对用户ID水平分片(8库64表),对CDT抵扣包/抵扣实例/抵扣记录数据进行分库分表,支撑CDT免开通功能上线以及CDT用户量从50W到700W的增长。
• CDT抵扣性能优化:设计双层并发处理架构,外层基于动态线程池实现64分片并发调度,内层采用ForkJoinPool工作窃取算法处理单用户流量抵扣;构建Redis缓存用户抵扣实例信息,引入Kafka消息队列实现计算存储解耦;系统整体性能提升18倍(90min→5min)。
• CDT跨域支持峰值带宽计费:开发用户CDT跨域计费方式从按流量计费和按带宽计费方式的切换,提升了CDT计费能力。
• 计量推送任务优化:改造推送前检查任务,将外部接口查询信息存入数据库,降低因外部调用问题导致的推送任务失败风险。