【Kafka每日一问】Kfaka拉取消息的请求体是什么样的,以及返回的消息结构是什么样的?

Kafka拉取消息的请求体是一个JSON结构,包含以下字段:

  • max_bytes: 可选,表示要拉取的消息的最大字节数。
  • topics: 要拉取消息的主题列表,每个主题包含以下字段:
    • topic: 要拉取的主题名称。
    • partitions: 要拉取的分区列表,每个分区包含以下字段:
      • partition: 要拉取的分区号。
      • fetch_offset: 要拉取消息的偏移量。
      • max_bytes: 可选,表示要拉取的消息的最大字节数。
{
    "max_bytes": 1048576,
    "topics": [
        {
            "topic": "mytopic",
            "partitions": [
                {
                    "partition": 0,
                    "fetch_offset": 0,
                    "max_bytes": 1024
                },
                {
                    "partition": 1,
                    "fetch_offset": 10
                }
            ]
        }
    ]
}

Kafka返回的消息包含在一个数组中,每个元素是一个分区的消息。每个分区消息包含以下字段:

  • topic: 分区所属的主题名称。
  • partition: 分区号。
  • messages: 消息数组,每个元素包含以下字段:
    • offset: 消息的偏移量。
    • key: 可选,消息的键。
    • value: 消息的值。
[
    {
        "topic": "mytopic",
        "partition": 0,
        "messages": [
            {
                "offset": 0,
                "key": "key1",
                "value": "value1"
            },
            {
                "offset": 1,
                "key": "key2",
                "value": "value2"
            }
        ]
    },
    {
        "topic": "mytopic",
        "partition": 1,
        "messages": [
            {
                "offset": 10,
                "value": "value3"
            },
            {
                "offset": 11,
                "value": "value4"
            }
        ]
    }
]

你可能感兴趣的:(Kafka每日一问,kafka,分布式)