项目描述:
分班服务主要维护学生和班级、以及学生和辅导班的对应关系,主要分为四个模块:下单分班策略、转辅导班、二次分班和合班。其中分班策略位于下单主链路中,主要难点是分班策略相对复杂,访问量大,同时要保证响应时间以及超卖问题。转辅导班、二次分班和合班属于B端操作,难点主要是每次操作的数据量大、分布式事务不一致问题。
主要职责:
1. 该项目原属于订单服务的一个子模块,通过梳理订单代码了解业务逻辑,将该模块独立了出来。
2. 采用策略+pipleline的模式使各个子策略可以灵活编排,增加了代码的可扩展性、复用性。
3. 通过异步任务的方式将批量转辅导班、二次分班等操作异步化。后台不再批量执行,而是通过xjob将其拆分成一个学生一个学生的转,避免因单个操作出问题导致批量数据发生异常。
4. 续班前期通过不断对代码进行优化最终将单次请求的响应时间从300-400ms下降到了100-200ms。
5. 结合公司的大数据平台每天对数据进行对账,自动修复不一致的数据。
6.对部分数据量比较大的表进行分库分表,降低单库的查询、写入压力,提高性能