发送kafka消息,包错,命令:
./kafka-console-producer.sh --broker-list 192.168.34.11:9092 --topic test
错误信息:
ERROR Error when sending message to topic test with key: null, value: 10 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for test-0: 30045 ms has passed since batch creation plus linger time?
你这个是超时额。telnet下。
只有这个topic会报错,其他topic都好使,并且我定位到代码
RecordBatch类
的maybeExpire
这个方法:第一个问题:这是在什么情况会走这个分支?
第二个问题:我把 requestTimeoutMs 这个参数改成50000ms,50000ms后依然报这个错(50045 ms has passed....),能解释一下这快代码是如何运转,才导致这种情况的么?
你的listener配置的什么,看看
listeners=PLAINTEXT://192.168.34.11:9092 ,写IP地址了,
这个telnet 192.168.34.11 9092 是ok的?
你这个是网络超时,优先关注网络呀,防火墙什么的。
只有一个topic不好使,其他都好使
test-0分区,是不是之前有调整过磁盘或者重装过?
我猜测也是这个问题,但是我想知道代码的哪个流程造成的这种现象?不管我设定 requestTimeoutMs为多少,都会有问题,看代码不合理啊
服务端没认为成功,客户端设置多少都会超时。
我想从代码层面了解流程机制。。。。。
你的答案