我正在开发一个Spring Batch应用程序,其中将数百万或记录从源db迁移到目标db。在将记录插入目标数据库时,我正在批量插入(每批1000个),这样它大约在一秒钟内插入3000个。

目标数据库类型-MS SQL Server 2012,
JDBC驱动程序-JTDS

现在,我有一个要求,我应该能够降低(而不是提高)迁移率的性能,例如在1秒钟内记录1000条记录,而不是插入3000条记录。是否有使用JDBC驱动程序或任何其他方法来做到这一点的简单方法在春季配置?

谢谢,

最佳答案

我会用番石榴的RateLimiter

很简单将其实例化(可能是作为Spring bean):

double CALLS_PER_SECOND = 100;

RateLimiter rateLimiter = RateLimiter.create(CALLS_PER_SECOND);


然后在循环中使用它:

rateLimiter.acquire();


您实际上无法每秒进行记录,但是可以每秒进行字节或呼叫每秒。

10-01 05:09