Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 当密钥为空时,ProducerRequest发送[…255,255,255…]_Apache Kafka_Protocols_Kafka Producer Api - Fatal编程技术网

Apache kafka 当密钥为空时,ProducerRequest发送[…255,255,255…]

Apache kafka 当密钥为空时,ProducerRequest发送[…255,255,255…],apache-kafka,protocols,kafka-producer-api,Apache Kafka,Protocols,Kafka Producer Api,我正在使用客户端,我正在试图理解卡夫卡协议。我有一个基本的生产者示例,它发送消息,而不使用键: producer.send([ { topic: "mytopic", messages: ["hi"] }, ], 如果我分析消息的帧(tcpdump),我会得到: 所以我不明白为什么键为空时,在255处有4字节。我在文档中的任何地方都找不到此语句的解释。键的类型为bytes。字节使用带符号的int32来指定数据的长度 如果键为null,则长度设置为-1。-1作为符号int32的表示是2

我正在使用客户端,我正在试图理解卡夫卡协议。我有一个基本的生产者示例,它发送
消息
,而不使用

producer.send([
    { topic: "mytopic", messages: ["hi"] },
], 
如果我分析消息的帧(
tcpdump
),我会得到:


所以我不明白为什么键为空时,在
255处有
4
字节。我在文档中的任何地方都找不到此语句的解释。

键的类型为
bytes
。字节使用带符号的int32来指定数据的长度

如果键为
null
,则长度设置为
-1
-1
作为
符号int32
的表示是
255255255
0xffffff

消息值类似。首先,长度为
符号int32
0,0,0,2
,然后是实际的2个字节

[
    79,   CRC
    44,
    52,
    245,  END CRC
    0,    magic_byte
    0,    partitions
    255,  size key begin 
    255,  -1 as the key is null
    255,
    255, size key end
    0,   size message begin 
    0,
    0,
    2,   size message end
    104,  'h'
    105,  'i' ]
参见《卡夫卡协议指南》中的本节:

字节,字符串-这些类型由一个有符号整数组成,给出 长度N后跟内容的N字节。长度为-1表示 无效的字符串使用int16作为其大小,字节使用int32


键的类型为
bytes
。字节使用带符号的int32来指定数据的长度

如果键为
null
,则长度设置为
-1
-1
作为
符号int32
的表示是
255255255
0xffffff

消息值类似。首先,长度为
符号int32
0,0,0,2
,然后是实际的2个字节

[
    79,   CRC
    44,
    52,
    245,  END CRC
    0,    magic_byte
    0,    partitions
    255,  size key begin 
    255,  -1 as the key is null
    255,
    255, size key end
    0,   size message begin 
    0,
    0,
    2,   size message end
    104,  'h'
    105,  'i' ]
参见《卡夫卡协议指南》中的本节:

字节,字符串-这些类型由一个有符号整数组成,给出 长度N后跟内容的N字节。长度为-1表示 无效的字符串使用int16作为其大小,字节使用int32