热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

无界队列导致内存耗尽问题一例

某个边缘的功能,需要将某些数据存入数据库,由于功能边缘且数据较少,存入频率为5秒保存一次,一次保存10条;保存的数据用Vector保存,往集合里放,正常情况下量极少也没出问题。然后在某一天
某个边缘的功能,需要将某些数据存入数据库,由于功能边缘且数据较少,存入频率为5秒保存一次,一次保存10条;保存的数据用Vector保存,往集合里放,正常情况下量极少也没出问题。
然后在某一天,突然发现服务容灾状态了,根据经验,不是数据库挂了就是后端某应用挂了,查看日志,发现是这个数据量过多,结果数据入库又这么慢,于是内存就爆的了


怎么解决?
1.队列别光加入,超过10000时放弃,以免影响主业务

2.增加入库速度,一次处理1000条


其实http://blog.csdn.net/coder_xia/article/details/77183615 的本质也是因为没配置队列大小,无界队列过慢导致,虽然没有撑爆内存,虽然这个连接里的是线程池队列,本文的是普通容器(逻辑上是队列,但是容器不是)所以说,队列,还是有界的好


推荐阅读
author-avatar
Mr-Leo-Chan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有