0

如果来自融合云上的 kafka 实例,我正在使用 rest api 来获取主题

我正在使用以下 curl 命令

curl "http://(myhost):9092/topics/(topicname)" --output op.txt

但我得到了op.txt像垃圾一样的价值

"U^C^C^@^B^BP"

有什么解决办法吗?

4

1 回答 1

1

您还不能使用 REST 从 Confluent Cloud 消费。使用 Confluent Cloud 中的数据,您可以使用类似ccloudkafkacat从命令行访问数据的工具。

汇合云 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,也可以从 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"
}
于 2020-11-05T10:18:00.090 回答