我想在Spring應用程序(無Spring數據)上實現Inserts/Second的高吞吐量。我嘗試插入萬份文件與下面的代碼:如何在Mongo Async Java Driver上實現多線程?
Address address = new Address();
address.setStreet1("");
address.setStreet2("");
address.setZipCode("");
address.setId(1234);
StopWatch stopWatch = new StopWatch();
stopWatch.start();
IntStream.iterate(0, i -> i++).limit(1000000).parallel().
forEach(i -> addressRepository.insert(address);
stopWatch.stop();
和存儲庫的代碼如下:
public void insert(Address address) {
Document address = new Document("_id", address.getId()).
append("zip_code", address.getZipCode).
append("street_1", address.getStreet1()).
append("street_2", address.getStreet2());
db.getCollection("address").insertOne(address, (Void result, Throwable t)
-> System.out.println("Inserted"));
}
寫我能鼓起的最大數量約爲4K /秒。有沒有辦法以多線程的方式做到這一點每秒獲得更高的寫入?
我對MongoClient的Spring bean的配置是:
@Bean
public MongoClient mongoClient() {
return MongoClients.create("mongodb://localhost");
}
不要創建更多答案 - 將新信息編輯到當前答案中:「Spring正在採取被動方式,我們需要等待一段時間https://spring.io/blog/2016/ 28分之11/離去的反應性與 - 彈簧 - 數據」 –