Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用vertx将Mongo集合流式传输到Kafka主题的方法应该是什么?_Java_Mongodb_Stream_Apache Kafka_Vert.x - Fatal编程技术网

Java 使用vertx将Mongo集合流式传输到Kafka主题的方法应该是什么?

Java 使用vertx将Mongo集合流式传输到Kafka主题的方法应该是什么?,java,mongodb,stream,apache-kafka,vert.x,Java,Mongodb,Stream,Apache Kafka,Vert.x,我有一个MongoDB收藏。我想使用Vert.x将这个集合的一个子集(基于一些查询)流式传输到卡夫卡主题 到目前为止,我已经为KafkaWriteStream创建了一个Vert.x verticle,它似乎可以处理伪硬编码字符串 不幸的是,我不知道如何从MongoDB获取文档流,这些文档可以稍后使用专用的垂直链接流到Kafka 我怎样才能做到这一点?有人有相关链接或信息吗?该模块允许从Mongo查询中获取ReadStream 当您拥有它时,连同您的KafkaWriteStream,您可以开始从M

我有一个MongoDB收藏。我想使用Vert.x将这个集合的一个子集(基于一些查询)流式传输到卡夫卡主题

到目前为止,我已经为
KafkaWriteStream
创建了一个Vert.x verticle,它似乎可以处理伪硬编码字符串

不幸的是,我不知道如何从MongoDB获取文档流,这些文档可以稍后使用专用的垂直链接流到Kafka

我怎样才能做到这一点?有人有相关链接或信息吗?

该模块允许从Mongo查询中获取
ReadStream

当您拥有它时,连同您的
KafkaWriteStream
,您可以开始从Mongo读取数据并将其发送给Kafka

不过要小心背压:如果Mongo加载数据太快,不要让Kafka客户端不知所措。您的算法应该如下所示:

readstream.handler(data -> {
  transformedData = transform(data); // your own transformations
  writestream.write(transformedData);
    if (writestream.writeQueueFull()) {
      readstream.pause();
      writestream.drainHandler(done -> {
        readstream.resume();
      });
    }
});