JFinal 多线程多数据源

JFinal 多线程多数据源,mysql 的 on duplicate key up 语法,丢失部分数据,插入75万不重复数据,丢失50-3000不等。

数据来源为消息中间件,每一批数据提出时都校验其数量为1000,中间件压力正常,分为两个实例进行集群消费,大压力下数据莫名丢失,波总测试过多线程多数据源大量数据插入不~

评论区

JFinal

2020-04-01 17:07

13 年的时候,用 jfinal 做的一个 deal analyzer,每天数据量超过 1 千万条,相当稳定

如果你用到 Db.batch 系的方法,注意 batchSize 值不要太大,否则会在超出数据库某个值的时候自动提交,这样在回滚事务的时候,那些被提交的数据就不能回滚了

我一般设置在 5000 以内

我看到你用了 on duplicate key up,那么你得注意是不是数据没有丢失,只是数据存在时没有 insert 而只是进行了 update。

此外,据说 on duplicate key up 有坑,你再多了解一下

JFinal

2020-04-01 17:08

jfinal 数据库部分,在底层是直接扔给 JDBC 的, jfinal 只做了一层极薄封装,出错的概率太低了,而且 jfinal db 部分已经用了 9 年多了,十分可靠

热门反馈

扫码入社