使用 curl 提交多个 json 有效负载



我正在使用 docker 中的 confluent kafka,zookeeper。我成功将 json 文件提交到 kafka 主题,然后按如下方式使用

curl -X POST 
-H "Content-Type: application/json" 
--data '{"name": "quickstart-file-source", "config {"connector.class":"org.apache.kafka.connect.file.FileStreamSourceConnector", "tasks.max":"1", "topic":"quickstart-data", "file": "/tmp/quickstart/input.json"}}' 
http://localhost:28081/connectors

上面的 curl 命令只有一个成功执行的 json 文件,但我需要发布多个 json 文件。有什么办法吗?

这是我的卡夫卡连接

docker run -d 
--name=kafka-connect-avro 
--net=host 
-e CONNECT_BOOTSTRAP_SERVERS=localhost:29091 
-e CONNECT_REST_PORT=28081 
-e CONNECT_GROUP_ID="quickstart-avro" 
-e CONNECT_CONFIG_STORAGE_TOPIC="quickstart-avro-config" 
-e CONNECT_OFFSET_STORAGE_TOPIC="quickstart-avro-offsets" 
-e CONNECT_STATUS_STORAGE_TOPIC="quickstart-avro-status" 
-e CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1 
-e CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1 
-e CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1 
-e CONNECT_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" 
-e CONNECT_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" 
-e CONNECT_INTERNAL_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" 
-e CONNECT_INTERNAL_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" 
-e CONNECT_REST_ADVERTISED_HOST_NAME="localhost" 
-e CONNECT_LOG4J_ROOT_LOGLEVEL=DEBUG 
-v /tmp/quickstart/file:/tmp/quickstart 
confluentinc/cp-kafka-connect:latest

参考链接

您可以在当前目录中创建单独的 JSON 文件,并在循环中单独发布它们

例如

$ ls *.json  # list your connectors
payload1.json
payload2.json

然后循环它们

for f in `ls *.json`; do 
curl -X POST -H "Content-Type: application/json" 
--data@${f} http://localhost:28081/connectors
done

或者更简单易用cat

最新更新