我在Mongo DB中有1000万个文档,我希望将其作为JSON推送到Kafka,并且保持不变。
寻找最佳方法。
1。使用Mongo反应流
Flux.from(collection.find()).doOnError(e -> {
e.printStackTrace();
}).doOnComplete(() -> {
System.out.println("Finished ");
}).subscribe(doc -> {
// Code to insert into Kafka
});
还有其他可用的连接器吗?
还,我是否需要在订阅方法内进行多线程处理?
还有其他更好的方法吗?
答案 0 :(得分:4)
您可以使用Kafka Connect和MongoDB source connector来将数据从Mongo复制到Kafka。使用Kafka Connect更加灵活,可扩展和简单。
一个示例配置为:
name=mongodb-source-connector
connector.class=org.apache.kafka.connect.mongodb.MongodbSourceConnector
tasks.max=1
uri=mongodb://127.0.0.1:27017
batch.size=100
schema.name=yourSchemaName
topic.prefix=aPrefix # optional
databases=mydb.test,mydb.test2