JAVA中大批量数据操作注意事项

最近项目在对接第三方商品库是出现了大量的商品操作,因此对服务的调用和数据库的操作都有一些不同的设置需求,这儿做一下记录(还未完善).

一.dubbo服务的协议设置:

目前项目使用的是dubbo框架服务调用.原本的dubbo协议使用了默认的dubbo协议.但是因为需求需要,服务在被调用时需要传递一个集合参数,集合的size,在10万向上.原本的dubbo协议不适合大数据传输,会报出内存溢出异常.

解决方案:

1.修改协议为rmi,可以解决该问题.

2.可以将数据缓存在redis中.向服务仅仅传递一个key,服务在接受后自己去redis中获取大数据参数.

二.数据写入mysql出现wait_timeout超时的问题.

这个是因为java程序将组织好的数据传递给mysql时,数据send时间超过了原本mysql配置的时间.

修改/etc/my.cnf中mysqld标签下的wait_timeout

扫描二维码关注公众号,回复: 6122838 查看本文章

三.数据写入mysql出现超过max_allowed_packet值的问题

修改/etc/my.cnf中mysqld标签下的max_allowed_packet

四.由于使用多线程进行对插入数据库的数据量每次进行了一个控制,加上商品相关表格较多,所以插入数据库使用到的连接过多.可能会导致配置的mybatis的最大连接数不足.

修改mybatis配置文件的最大连接数:maxActive(修改该配置要慎重,一般情况下该值与并发量相关)

猜你喜欢

转载自blog.csdn.net/qq_16739081/article/details/89560063
今日推荐