12.2.2. 生成到主题和分区的消息

使用 主题 端点以 JSON 格式生成消息。

您可以在请求正文中为消息指定目的地分区,如下所示。分区 端点 提供了一种备选方法,用于指定所有消息的单一目标分区,作为路径参数。

流程

  1. 使用 kafka-topics.sh 实用程序创建 Kafka 主题:

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic bridge-quickstart-topic --partitions 3 --replication-factor 1 --config retention.ms=7200000 --config segment.bytes=1073741824

    指定三个分区。

  2. 验证该主题是否已创建:

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic bridge-quickstart-topic
  3. 使用 Kafka Bridge,为您创建的主题生成三个信息:

    curl -X POST \
      http://localhost:8080/topics/bridge-quickstart-topic \
      -H 'content-type: application/vnd.kafka.json.v2+json' \
      -d '{
        "records": [
            {
                "key": "my-key",
                "value": "sales-lead-0001"
            },
            {
                "value": "sales-lead-0002",
                "partition": 2
            },
            {
                "value": "sales-lead-0003"
            }
        ]
    }'
    • sales-lead-0001 根据密钥的散列发送到分区。
    • sales-lead-0002 直接发送到分区 2。
    • sales-lead-0003 使用循环方法发送到 bridge-quickstart-topic 主题中的分区。
  4. 如果请求成功,Kafka Bridge 会返回 offsets 数组,以及 200 (OK)代码和 content-type 标头 application/vnd.kafka.v2+json。对于每个消息,offsets 数组描述:

    • 消息发送到的分区
    • 分区的当前消息偏移

      响应示例

      #...
      {
        "offsets":[
          {
            "partition":0,
            "offset":0
          },
          {
            "partition":2,
            "offset":0
          },
          {
            "partition":0,
            "offset":1
          }
        ]
      }

接下来要做什么

在向主题和分区生成消息后,创建一个 Kafka 网桥使用者

其它资源