1.事件原因:

JD项目导入数据过慢,让吴总帮忙看看实际原因,结果发现车型ID 数据 存在 十几万条,一次性查到内存后,再从内存比较是否存在,这种方式

会导致服务器卡死,也会请求超时。

2.解决方式:

数据超过上万的,都不要全部查出放到内存中比较,这种方式都会导致微服务挂掉(可能要重启微服务),因为导入的数据以500条为主,而且车型ID数据量为12W

条,所有车型ID的方式还是以 每次循环去数据库获取即可。

自评: 实际上是查出的数据写入到内存中过慢导致的(个人猜测),因为首先服务器要从磁盘的数据写入内存,再从内存操作数据。

(1)内存-CPU寄存器,所以硬盘(文件)上的语句也必须要先读到内存,然后通过CPU进行计算执行。

(2)基本上是这么一个顺序,先从硬盘里把数据调出来到内存然后在到CPU(经过二级缓存),处理后由显卡在显示器上显示出来.

那这里,也就是说从磁盘 写入到 内存的过程 时间 过长导致的。。(具体分析????)

大牛给的答案:

(1)12W。申请内存时就可能会造成堆溢出。。反正不建议这样搞。。这么大数据。需要为微服务单独申请大的JVM内存才行。

(2)另外DUBBO还有8M的限制。。超过8M也会不成功。。所以根本就不建议用这种方法。(也就是说DUBBO远程传递数据不能超过8M???/)

默认 8M,最大就是8M.