记一次解决大批量接口调用的全流程

需求:客户需要调用我们的接口新增人员,要求10分钟增加10W人,每批次100人,每次调用结束后调用下一次。

第一次

部署同步接口,逻辑测试功能正常,未大批量测试

问题:速度太慢,不满足客户需要

第二次

改为异步接口,收到请求即返回,收到之后异步处理

问题:系统在几万人推送的时候崩溃,实际业务处理同样很慢

第三次

以为大批量异步处理,业务处理不过来,改为接收客户请求后发送kafka消息,同步写一个接收kafka的业务处理,缓解处理消息的压力

问题:同样崩溃

第四次

分析了内存占用等日志,判断是算法调用有内存溢出的情况,暂时注销算法调用接口,至此单体项目的新增人员解决,时间耗时为10分钟处理12000多人

第五次

问题:因为业务数据较大,系统改用部署集群环境,推送人员发现到5W人左右停滞不前

过程:先后多次自测发现,单次请求处理时间较大,以及有重复消费的问题。

解决:

1. 分析日志,优化相应处理慢的代码逻辑,增加相应的索引,减少每一批处理问题的时间。

2. 优化kafka接发方式,延长auto-commit-interval每一波执行时间,根据partitionpart和offset预防重复消费的处理,经过几次测试后,10W人数据达到20分钟内的速度,解决问题并部署

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值