我是Flink的新手。我有一个要求,我需要从Kafka流中连续读取数据,但是在批量中写入。这样可以减少MongoServer上的查询次数。
请指导我做到最好的方法。
我目前的尝试。
谢谢, ashnik
答案 0 :(得分:0)
以上看起来应该可行。由于Mongo客户端非常简单,如果您想提高效率,可以实现自己的有状态public class MakeParallel {
private final CountDownLatch countDown = new CountDownLatch(4);
public void firstCall() {
Transformation.map(makeFirstCall(), input -> {
if(input.isSuccessful()) {
countDownLatch.countDown();
checkResult();
}
return input;
}
}
public void secondCall() {
Transformation.map(makeSecondCall(), input -> {
if(input.isSuccessful()) {
countDownLatch.countDown();
checkResult();
}
return input;
}
}
void checkResult() {
if(countDownLatch.getCount == 0) {
// Result is ready
} else {
// Something has error
}
}
}
来保存条目列表,并在列表达到特定大小或已经过了足够的时间时刷新到MongoDB