数据初始化反思

1.情况说明

     由于任务排期比较紧张,自己开发完成功能之后剩余时间不多,还需要配合上游联调及排查测试问题.最后只能见缝插针的方式完成数据初始化的自动任务开发,自动任务的在测试环境及UAT环境验证都OK.线上进行数据初始化过程中第三方接口报错,重新推送版本增加异常兼容处理,允许自动任务从指定的数据继续跑,结果数据重复,底层接口增加了倒序排序.

2.初始化方案

自动任务执行业务逻辑,查询数据库记录,根据记录id,请求第三方获取相关信息,组装数据,发送至消息队列,下游监听对应消息队列进行消费

3.问题描述

    1.第三方接口报错

    2.耗时比较长

4.反思

    1.上线之前预估时间不准.测试环境及UAT环境10条/s,生产环境3条/秒,导致原本预估3h,实际接近8h.这个一方面是由于测试及UAT环境数据的缘故,第二个是采样预估不准导致的,采样过程中没有对整个消息的周期生产及消费进行观察,第三个应该是是测试过程中由于可靠消息中间件重试的缘故导致消息生产及消费的速度被拉高

    2.异常处理方案,考虑步骤不全.没有考虑到异常的情况.虽然测试环境及uat环境都没有出现问题,但是自己应该反思过程中如果出现的异常自己应该如何处理,第三方接口异常了应该如何解决,如何能够进行流程重试.(应该是支持对应的数据重试及对应范围的数据重试)

    3.是否应该多线程的情况.第三方接口按照目前的状况下,多开几个线程同时跑是没有问题的,线上大数据量的情况下,多开线程是可以的,可以提高数据的生产及消费效率,减少耗时.

    4.自己对代码掌控不足,没有查看全部代码,导致底层的代码增加了排序,影响上层业务逻辑,最终导致数据初始化重复

    5.下游初始化的逻辑应该增加防重复,不应该直接复用正常的业务逻辑

    6.单据初始化的单号可以使用第三方账号+账号类型,但是自己用了redis进行发号

     7.MQ消费较慢,原因是出现异常,进行告警是通过发送http请求,严重影响了消费速度,可以变成输出异常日志不告警的方式(通过异常日志与MQ消费速度下降对比)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值