1.6. 对 Kafka Bridge 的请求


指定数据格式和 HTTP 标头,以确保将有效的请求提交到 Kafka Bridge。

1.6.1. 内容类型标头

API 请求和响应正文始终编码为 JSON。

  • 在执行消费者操作时,如果出现非空正文,POST 请求必须提供以下 Content-Type 标头:

    Content-Type: application/vnd.kafka.v2+json
    Copy to Clipboard Toggle word wrap
  • 在执行制作者操作时,POST 请求必须提供 Content-Type 标头,指定所生成消息的 嵌入式数据格式。这可以是 json二进制

    Expand
    嵌入式数据格式Content-Type 标头

    JSON

    Content-Type: application/vnd.kafka.json.v2+json

    二进制

    Content-Type: application/vnd.kafka.binary.v2+json

嵌入式数据格式为每个消费者设置,如下一节中所述。

如果 POST 请求带有空的正文,则一定不能设置 Content-Type。可以使用空正文来创建带有默认值的消费者。

1.6.2. 嵌入式数据格式

嵌入的数据格式是通过 HTTP 传输的 Kafka 信息格式,从生成者到使用 Kafka Bridge 的消费者。支持两种嵌入式数据格式:JSON 和二进制。

在使用 /consumers/groupid 端点创建消费者时,POST 请求正文必须指定 JSON 或二进制的嵌入式数据格式。这使用 format 字段指定,例如:

{
  "name": "my-consumer",
  "format": "binary", 
1

  # ...
}
Copy to Clipboard Toggle word wrap
1
二进制嵌入式数据格式。

创建消费者时指定的嵌入式数据格式必须与它将使用的 Kafka 信息的数据格式匹配。

如果您选择指定二进制嵌入式数据格式,则后续制作者请求必须将请求正文中的二进制数据作为 Base64 编码的字符串。例如,当使用 /topics/topicname 端点发送消息时,record.value 必须以 Base64 编码:

{
  "records": [
    {
      "key": "my-key",
      "value": "ZWR3YXJkdGhldGhyZWVsZWdnZWRjYXQ="
    },
  ]
}
Copy to Clipboard Toggle word wrap

生产者请求还必须提供一个与嵌入式数据格式对应的 Content-Type 标头,如 Content-Type: application/vnd.kafka.binary.v2+json

1.6.3. 消息格式

使用 /topics 端点发送消息时,您可以在请求正文的 records 参数中输入消息有效负载。

records 参数可包含以下任何可选字段:

  • 消息标头
  • 消息
  • 消息
  • 目标 分区

到 /topic 的 POST 请求示例

curl -X POST \
  http://localhost:8080/topics/my-topic \
  -H 'content-type: application/vnd.kafka.json.v2+json' \
  -d '{
    "records": [
        {
            "key": "my-key",
            "value": "sales-lead-0001",
            "partition": 2,
            "headers": [
              {
                "key": "key1",
                "value": "QXBhY2hlIEthZmthIGlzIHRoZSBib21iIQ==" 
1

              }
            ]
        }
    ]
}'
Copy to Clipboard Toggle word wrap

1
二进制格式的标头值,编码为 Base64。

1.6.4. 接受标头

创建消费者后,所有后续 GET 请求都必须以以下格式提供 Accept 标头:

Accept: application/vnd.kafka.EMBEDDED-DATA-FORMAT.v2+json
Copy to Clipboard Toggle word wrap

EMBEDDED-DATA-FORMATjson二进制

例如,当使用嵌入式数据格式 JSON 检索订阅消费者的记录时,请包括这个 Accept 标头:

Accept: application/vnd.kafka.json.v2+json
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat