Java 在批插入时获取临时FailureException
我正在向CouchBase批量插入数据,几分钟后出现此异常: com.couchbase.client.java.error.TemporaryFailureException位于 com.couchbase.client.java.couchbaseAyncBucket$13.call(couchbaseAyncBucket.java:445) 在 com.couchbase.client.java.couchbaseAyncBucket$13.call(couchbaseAyncBucket.java:426) 在rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54) 在rx.observators.Subscribers$5.onNext(Subscribers.java:234) SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:222) 在rx.subjects.AsyncSubject.onCompleted(AsyncSubject.java:101)处 com.couchbase.client.core.endpoint.AbstractGenericHandler$1.call(AbstractGenericHandler.java:265) 在 rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) 在 Executors$RunnableAdapter.call(Executors.java:511) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)处 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 运行(Thread.java:745) 代码如下:Java 在批插入时获取临时FailureException,java,couchbase,batch-insert,Java,Couchbase,Batch Insert,我正在向CouchBase批量插入数据,几分钟后出现此异常: com.couchbase.client.java.error.TemporaryFailureException位于 com.couchbase.client.java.couchbaseAyncBucket$13.call(couchbaseAyncBucket.java:445) 在 com.couchbase.client.java.couchbaseAyncBucket$13.call(couchbaseAyncBucket
cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket();
int numBatchs = 10000;
int numDocsInBatch = 1000;
for (int j = 0; j < numBatchs; j++) {
long start = System.currentTimeMillis();
List<JsonDocument> documents = new ArrayList<>(numDocsInBatch);
for (int i = 0; i < numDocsInBatch; i++) {
String uniqueID = UUID.randomUUID().toString() + "_" + System.currentTimeMillis();
JsonObject user = JsonObject.
empty();
documents.add(JsonDocument.create(uniqueID, user));
}
Observable
.from(documents)
.flatMap(new Func1<JsonDocument, Observable<JsonDocument>>() {
@Override
public Observable<JsonDocument> call(final JsonDocument docToInsert) {
return bucket.async().insert(docToInsert);
}
})
.last()
.toBlocking()
.single();
cluster=CouchbaseCluster.create();
Bucket=cluster.openBucket();
int numBatchs=10000;
int numDocsInBatch=1000;
对于(int j=0;j
我做错了什么吗?
暂时性故障异常
通常是由于服务器太忙而导致的,通常可以通过退避重试该操作
参考:批量插入大量文档自然会导致服务器繁忙,但我没想到服务器会因为这个原因引发异常……Couchbase没有达到您的预期;)您正在存储1000个文档,10'000次,即10'000'000(一千万)插入…您的存储桶的RAM大小是多少?我有4GB的内存专门用于CouchBase。在这一点上,我只插入数据,我一直得到这个异常。我想从大约100M行开始测试。