Mongodb kafka接收器连接器中无效JSON的错误处理
我有一个用于mongodb的接收器连接器,它从一个主题获取json并将其放入mongodb集合。但是,当我从制作人向该主题发送一个无效的JSON时(例如,带有无效的特殊字符”)=>Mongodb kafka接收器连接器中无效JSON的错误处理,mongodb,error-handling,apache-kafka,apache-kafka-connect,Mongodb,Error Handling,Apache Kafka,Apache Kafka Connect,我有一个用于mongodb的接收器连接器,它从一个主题获取json并将其放入mongodb集合。但是,当我从制作人向该主题发送一个无效的JSON时(例如,带有无效的特殊字符”)=>{“id”:1,“name”:“\”},连接器停止。我尝试使用errors.tolerance=all,但发生了相同的情况。应该发生的是连接器应该跳过并记录无效的JSON,并保持连接器运行。我的分布式模式连接器如下所示: { "name": "sink-mongonew_test1", "config":
{“id”:1,“name”:“\”}
,连接器停止。我尝试使用errors.tolerance=all,但发生了相同的情况。应该发生的是连接器应该跳过并记录无效的JSON,并保持连接器运行。我的分布式模式连接器如下所示:
{
"name": "sink-mongonew_test1",
"config": {
"connector.class": "com.mongodb.kafka.connect.MongoSinkConnector",
"topics": "error7",
"connection.uri": "mongodb://****:27017",
"database": "abcd",
"collection": "abc",
"type.name": "kafka-connect",
"key.ignore": "true",
"document.id.strategy": "com.mongodb.kafka.connect.sink.processor.id.strategy.PartialValueStrategy",
"value.projection.list": "id",
"value.projection.type": "whitelist",
"writemodel.strategy": "com.mongodb.kafka.connect.sink.writemodel.strategy.UpdateOneTimestampsStrategy",
"delete.on.null.values": "false",
"key.converter": "org.apache.kafka.connect.json.JsonConverter",
"value.converter": "org.apache.kafka.connect.json.JsonConverter",
"key.converter.schemas.enable": "false",
"value.converter.schemas.enable": "false",
"errors.tolerance": "all",
"errors.log.enable": "true",
"errors.log.include.messages": "true",
"errors.deadletterqueue.topic.name": "crm_data_deadletterqueue",
"errors.deadletterqueue.topic.replication.factor": "1",
"errors.deadletterqueue.context.headers.enable": "true"
}
}
自Apache Kafka 2.0以来,Kafka Connect已包含错误处理选项,包括将消息路由到死信队列的功能,这是构建数据管道的常用技术
如前所述,您使用的是connect-api-1.0.1.*.jar
,版本1.0.1,这就解释了为什么这些属性不起作用
除了运行较新版本的Kafka Connect之外,您还可以选择Nifi或Spark结构化流媒体为什么生成无效的json?以及如何生成?如果您使用任何json库,它都不会生成无效的json字符串。您使用的Connect版本是什么?@cricket_007我正在构建一个Kafka streams应用程序,其中存在无效JSON的可能性。connect的版本是connect-api-1.0.1.3.0.0.0-1634.jar,而kafka的版本又是3.0,不清楚制作人是如何创建无效JSON的。kafka Streams有自己的错误处理,你无论如何都应该过滤掉无效记录……kafka没有3.0版本。Confluent Platform 3.0确实很旧,相对来说比较简单peaking.HDP3.0使用Kafka 1.x,我想……如果你安装了HDF,Cloudera会建议你使用Nifih。你读过这篇文章吗?这是我唯一应该替换的jar吗(用最新版本)在kafka?No.内的libs文件夹中,该文件夹导入诸如kafka客户端、kafka_2.11和zookeeper-3.4.13等JAR,连接utils等。您不需要使用Hortonworks提供的kafka connect。只需在相同的计算机上下载最新的kafka库,并为connect Distributed配置较新的属性文件,然后在您的计算机上运行它现有Kafka引导服务器。Cloudera无论如何都不正式支持Kafka Connect API,所以你真的需要自己解决问题