数据迁移组件的开发,由于电子交易系统数据量累积,导致SQL失效,查询效率极低,2018年6.18大促数据库宕机。针对这个问题我们设计了数据迁移组件,每晚可迁移3亿条数据,同时订单退换产品时,与订单相关的业务数据可以完整回迁供业务使用。因为主库数据量的减少,索引生效,整体性能大为提升,轻松扛过双十一大促。此组件设计为通用,华为其它部门也直接使用。 独特的分布式任务调度开发,物流开发中与库存协同发货时,库存模块打印面单发货后,由我们物流系统将面单信息推送给相应的快递商,这一步要定期批量处理。以前的做法是采用华为的调度平台进行定期调用接口,但这有个问题,数据量较多时,如果前一个调度的数据还没有处理完成,后一个调度又过来了,容易产生数据库冲突;如果把调度间隔设置太长,效率会太低。根据这种情况我设计了独特的分布式任务调度,并无须引入额外组件或者资源。具体做法是将所有机器编号,任务调度随机器启动,将数据的最后更新时间按机器数取模,集群的每台机器只执行自己的数据,不会再有数据冲突,同时不间断地执行。大大提高了发货单数据的处理和稳定性。 采用的java技术栈:spring,springcloud,redis,rocket mq,mysql,eureka,git,华为的his部署平台。