微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

 

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

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

 

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐