安卓盒子 做网站,连云港网站制作公司口碑好,专业网站制作的地方,h5网站制作介绍什么时候需要进行数据库迁移
1、业务数据增长#xff0c;原数据库不足以支持业务需求 2、底层存储架构遇见瓶颈#xff0c;需升级改造 3、老系统升级过度新系统
迁移过程中会面临哪些挑战或问题
1、数据库表完全异构、旧库和新库表结构完全不同 2、业务方#xff0c;需要…什么时候需要进行数据库迁移
1、业务数据增长原数据库不足以支持业务需求 2、底层存储架构遇见瓶颈需升级改造 3、老系统升级过度新系统
迁移过程中会面临哪些挑战或问题
1、数据库表完全异构、旧库和新库表结构完全不同 2、业务方需要能进行数据灵活迁移按照租户商家迁移按照数据百分比迁移 3、数据量巨大上百万商家数据几百亿条数据几TB数据 4、线上业务迁移时间窗口固定晚上几点到几点只能有几个小时时间
如何提升迁移效率
1、大任务拆分成小任务 按照不同租户或商家假设没500个一批次分成多批次 2、多线程处理 增加并发线程方式处理效率提升但是面对巨大的数据量单机很快也会面临 瓶颈 3、分布式处理 增加机器节点任务进行水平扩展把大任务拆分为独立的子任务所有子任务执行结果等价于各个子任务结果手动根据不同租户或商家平摊到不同机器节点上执行
迁移数据过程中遇见问题
线程池参数配置错误 在测试阶段并发上不去线程配置如下核心线程池配置了16个最大线程配置了750然后配置了5000的缓冲队列主要是当提交任务大于核心线程数时后续任务会首先提交到缓冲队列。缓冲队列满后才会创建线程数据 ThreadPoolExecutor executor new ThreadPoolExecutor(16, // corePoolSize750, // maximumPoolSize1, // keepAliveTimeTimeUnit.SECONDS, // unitnew ArrayBlockingQueue5000(), // workQueueExecutors.defaultThreadFactory(), // threadFactorynew ThreadPoolExecutor.AbortPolicy() // handler在这里插入代码片数据库压力大 并发上去后后端数据库压力增大CPU使用率居高不下。当CPU使用率急速上升后发现是执行任务未命中素颜9in导致全表扫描CPU资源被大量占用,慢SQL问题通过优化创建索引解决通过时间换时间
待优化改进点
手动分配任务 分布式和并行化的方式都是自己手写代码实现其实可以用ScheduleX和MapReduce实现框架已经实现任务分发并行处理充实reduce等功能 数据一致性校验 打标记抽样检查的