如何使用REST API创建使用者以从Kafka主题读取json数据

时间:2019-07-17 16:54:41

标签: rest api apache-kafka kafka-consumer-api

我有一个生产者,可以使用REST API将消息推送到Kafa主题。现在,我如何拥有一个可以使用REST API消耗这些消息的使用者。

我尝试使用@GetMapping,但没有成功

1 个答案:

答案 0 :(得分:1)

Confluent平台具有REST代理,可通过REST公开Kafka主题。它允许您使用REST生成主题的消费数据。请参见示例here

使用主题中的json数据的示例

  

从主题的开头开始为JSON数据创建使用者    登录并订阅主题。然后在第一个响应中使用基本URL消耗一些数据。    最后,用DELETE关闭使用者以使其离开组并清理    它的资源。

$ curl -X POST -H "Content-Type: application/vnd.kafka.v2+json" \
          --data '{"name": "my_consumer_instance", "format": "json", "auto.offset.reset": "earliest"}' \
          http://localhost:8082/consumers/my_json_consumer
      {"instance_id":"my_consumer_instance",
      "base_uri":"http://localhost:8082/consumers/my_json_consumer/instances/my_consumer_instance"}

$ curl -X POST -H "Content-Type: application/vnd.kafka.v2+json" --data '{"topics":["jsontest"]}' \
     http://localhost:8082/consumers/my_json_consumer/instances/my_consumer_instance/subscription


$ curl -X GET -H "Accept: application/vnd.kafka.json.v2+json" \
          http://localhost:8082/consumers/my_json_consumer/instances/my_consumer_instance/records
      [{"key":null,"value":{"foo":"bar"},"partition":0,"offset":0,"topic":"jsontest"}]

$ curl -X DELETE -H "Content-Type: application/vnd.kafka.v2+json" \
          http://localhost:8082/consumers/my_json_consumer/instances/my_consumer_instance