作者:Mr-Leo-Chan | 来源:互联网 | 2023-07-17 15:44
某个边缘的功能,需要将某些数据存入数据库,由于功能边缘且数据较少,存入频率为5秒保存一次,一次保存10条;保存的数据用Vector保存,往集合里放,正常情况下量极少也没出问题。然后在某一天
某个边缘的功能,需要将某些数据存入数据库,由于功能边缘且数据较少,存入频率为5秒保存一次,一次保存10条;保存的数据用Vector保存,往集合里放,正常情况下量极少也没出问题。
然后在某一天,突然发现服务容灾状态了,根据经验,不是数据库挂了就是后端某应用挂了,查看日志,发现是这个数据量过多,结果数据入库又这么慢,于是内存就爆的了
怎么解决?
1.队列别光加入,超过10000时放弃,以免影响主业务
2.增加入库速度,一次处理1000条
其实http://blog.csdn.net/coder_xia/article/details/77183615 的本质也是因为没配置队列大小,无界队列过慢导致,虽然没有撑爆内存,虽然这个连接里的是线程池队列,本文的是普通容器(逻辑上是队列,但是容器不是)所以说,队列,还是有界的好