【问题标题】:Convert the json result from http source connector从 http 源连接器转换 json 结果
【发布时间】:2021-07-07 00:26:53
【问题描述】:

我已经使用http源连接器获取数据并将记录发布到kafka“testdata”主题中。我有以下用于连接作业的配置,

curl -X POST http://localhost:8083/connectors -H "Content-Type: application/json" -H "Accept: application/json" -d ' {
"name": "https-connector",
"config": {
       "connector.class": "com.github.castorm.kafka.connect.http.HttpSourceConnector",
       "tasks.max": 1,
       "http.request.headers": "Accept:application/json",
       "http.request.url": "*********************",
       "kafka.topic": "testdata"
 }

}'

http API 结果是,

{"fields":[
   {"id":"displayName","type":"text","name":"Display name"},
   {"id":"firstName","type":"text","name":"First name"}
  ],
"employees":[
   {"id":"4","displayName":"Charlotte Abbott","firstName":"Charlotte"},
   {"id":"5","displayName":"Ashley Adams","firstName":"Ashley"}
  ]
}

我在 kafka 主题中得到以下输出。它在消息的开头和结尾有一些二进制字符串(开始:r,结束:H5ee9b388-2063-3c78-b30a-05f2292ec7bf�����^)。 “5ee9b388-2063-3c78-b30a-05f2292ec7bf”是消息的关键。

r{"fields":[{"id":"displayName","type":"text","name":"Display name"},{"id":"firstName","type":"text","name":"First name"}],"employees":[{"id":"4","displayName":"Charlotte Abbott","firstName":"Charlotte"},{"id":"5","displayName":"Ashley Adams","firstName":"Ashley"}]}H5ee9b388-2063-3c78-b30a-05f2292ec7bf�����^

我想在 kafka 中将此作为单独的消息,

{"id":"4","displayName":"Charlotte Abbott","firstName":"Charlotte"}
{"id":"5","displayName":"Ashley Adams","firstName":"Ashley"}

【问题讨论】:

    标签: http apache-kafka apache-kafka-connect


    【解决方案1】:

    消息的开头和结尾都有一些二进制字符串

    如果您使用的是 StringConverter 或 JSONConverter,那么除非您使用的 API 实际返回它,否则不应发生这种情况。

    希望在 kafka 中将此作为单独的消息

    Kafka Connect API 通常不能拆分消息。连接器向一条消息发送一个 API 响应;您需要使用辅助流处理器将数组拆分为单独的记录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 2018-01-19
      • 2023-03-25
      • 2019-06-15
      相关资源
      最近更新 更多