#apache-kafka #confluent-cloud
#apache-kafka #confluent-cloud
Вопрос:
Я использую rest api для получения темы if из экземпляра kafka в confluent cloud
Я использую приведенную ниже команду curl
curl "http://(myhost):9092/topics/(topicname)" --output op.txt
но я получаю нежелательное значение в op.txt
виде
"U^C^C^@^B^BP"
Есть ли какое-либо решение для этого?
Ответ №1:
Вы не можете использовать REST для использования из Confluent Cloud (пока). С вашими данными в Confluent Cloud вы можете использовать такие инструменты, как ccloud
или kafkacat
для доступа к вашим данным из командной строки.
Confluent Cloud CLI ( ccloud
)
$ ccloud kafka topic consume --from-beginning rmoff_test_topic_01
Starting Kafka Consumer. ^C or ^D to exit
Hello world!
This is a message on a topic in Confluent Cloud
kafkacat
Вы можете запустить kafkacat локально или использовать его из Docker.
docker run --rm --interactive edenhill/kafkacat:1.6.0
-X security.protocol=SASL_SSL -X sasl.mechanisms=PLAIN
-X ssl.ca.location=./etc/ssl/cert.pem -X api.version.request=true
-b $CCLOUD_BROKER_HOST
-X sasl.username="$CCLOUD_API_KEY"
-X sasl.password="$CCLOUD_API_SECRET"
-t rmoff_test_topic_01 -C -u -e
Hello world!
This is a message on a topic in Confluent Cloud
Вы также можете вывести сообщение в формате JSON, что может быть полезно:
docker run --rm --interactive edenhill/kafkacat:1.6.0
-X security.protocol=SASL_SSL -X sasl.mechanisms=PLAIN
-X ssl.ca.location=./etc/ssl/cert.pem -X api.version.request=true
-b $CCLOUD_BROKER_HOST
-X sasl.username="$CCLOUD_API_KEY"
-X sasl.password="$CCLOUD_API_SECRET"
-t rmoff_test_topic_01 -C -u -J -e
{
"topic": "rmoff_test_topic_01",
"partition": 0,
"offset": 0,
"tstype": "create",
"ts": 1604571163960,
"broker": 7,
"key": null,
"payload": "Hello world!"
}
{
"topic": "rmoff_test_topic_01",
"partition": 3,
"offset": 0,
"tstype": "create",
"ts": 1604571168723,
"broker": 1,
"key": null,
"payload": "This is a message on a topic in Confluent Cloud"
}