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(修改该配置要慎重,一般情况下该值与并发量相关)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值