Как создавать темы из командной строки в Kafka REST-прокси - PullRequest
1 голос
/ 25 марта 2020

Я использую прокси-сервер Kafka, но не всю Confluent Platform, а Kafka rest с моими брокерами Kafka. Но я не могу создавать темы из командной строки с помощью следующей команды.

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test.

Я хочу знать, есть ли другой выход.

1 Ответ

0 голосов
/ 27 апреля 2020

Команда, которую вы опробовали, предназначена не для взаимодействия с прокси-сервером REST Kafka, а для непосредственного взаимодействия с кластером Kafka.

В соответствии с Confluent REST Proxy API Reference создание топи c возможно только с помощью REST Proxy API v3, который в настоящее время доступен в качестве функции предварительного просмотра.

"API v3 может использоваться для целей оценки и непроизводственного тестирования или для обратной связи с Confluent."

Пример topi c запрос на создание представлен ниже и задокументирован здесь :

POST /v3/clusters/cluster-1/topics HTTP/1.1
Host: kafkaproxy.example.com
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  "data": {
    "attributes": {
      "topic_name": "topic-1",
      "partitions_count": 2,
      "replication_factor": 3,
      "configs": [
        {
          "name": "cleanup.policy",
          "value": "compact"
        }
      ]
    }
  }
}

Использование curl:

curl -X POST -H "Content-Type: application/vnd.api+json" -H "Accept: application/vnd.api+json" \
          --data '{"data":{"attributes": {"topic_name": "topic-1", "partitions_count": 2, "replication_factor": 1, "configs": [{"name": "cleanup.policy","value": "compact"}]}}}' \
          "http://localhost:8082/v3/clusters/<cluster-id>/topics"

где cluster-id можно определить с помощью

curl -X GET -H "Accept: application/vnd.api+json" localhost:8082/v3/clusters
...