buffer-slayer持久層吞吐量優(yōu)化組件
buffer-slayer 是一個把請求在內(nèi)存中 buffer 并批量發(fā)送的工具,適用于批量能顯著提升性能的組件(redis-client、jdbc), 支持一對一的回調(diào)。
快速啟動
io.bufferslayer
buffer-spring-jdbc
1.1.0
ReporterProperties reporterProperties = new ReporterProperties()
.setBufferedMaxMessages(500)
.setPendingMaxMessages(10000)
.setMetrics("inmemory")
.setMetricsExporter("http")
.setParallelismPerBatch(5)
.setSenderExecutor(new ThreadPoolExecutor(200,
200, 0, TimeUnit.MILLISECONDS, new SynchronousQueue()));
BatchedJdbcTemplate template = new BatchedJdbcTemplate(reporterProperties);
template.setDataSource(dataSource);
Promise promise = template.update(...);
promise.done(success -> ...)
.fail(reject -> ...);
吞吐量對比
Benchmark Mode Cnt Score Units
BatchedJdbcTemplateBenchmark.high_contention_batched thrpt 15 8709.042 ops/s
BatchedJdbcTemplateBenchmark.high_contention_unbatched thrpt 15 271.529 ops/s
BatchedJdbcTemplateBenchmark.mild_contention_batched thrpt 15 2146.595 ops/s
BatchedJdbcTemplateBenchmark.mild_contention_unbatched thrpt 15 262.621 ops/s
BatchedJdbcTemplateBenchmark.no_contention_batched thrpt 15 1194.852 ops/s
BatchedJdbcTemplateBenchmark.no_contention_unbatched thrpt 15 201.806 ops/s
評論
圖片
表情
