1、系统报错

[kafka-producer-network-thread | producer-1] [] [] ERROR org.apache.kafka.clients.producer.internals.Sender - [Producer clientId=producer-1] Aborting producer batches due to fatal error
org.apache.kafka.common.KafkaException: Unexpected error in InitProducerIdResponse; The server experienced an unexpected error when processing the request.
	at org.apache.kafka.clients.producer.internals.TransactionManager$InitProducerIdHandler.handleResponse(TransactionManager.java:1390)
	at org.apache.kafka.clients.producer.internals.TransactionManager$TxnRequestHandler.onComplete(TransactionManager.java:1294)
	at org.apache.kafka.clients.ClientResponse.onComplete(ClientResponse.java:109)
	at org.apache.kafka.clients.NetworkClient.completeResponses(NetworkClient.java:574)
	at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:566)
	at org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:418)
	at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:316)
	at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:243)
	at java.lang.Thread.run(Thread.java:748)
[kafka-producer-network-thread | producer-1] [] [] ERROR o.s.kafka.support.LoggingProducerListener - Exception thrown when sending a message with key='null' and 

2、排查与解决
出错原因:springboot集成spring-kafka的时候需要注意两者之间的版本对应关系,因为版本不兼容导致出现错误
解决:kafka-clients : 是springboot集成的spring-kafka,spring-kafka中引入了kafka-client的版本

参考:https://spring.io/projects/spring-kafka
参考:https://stackoverflow.com/questions/72402831/kafka-aborting-producer-batches-due-to-fatal-error

在计算机最早期的时候,没有操作系统,执行程序只需要一个过程,那就是从头到尾依次执行。任何资源都会为这个程序服务,这必然就会存在 浪费资源 的情况。 这里说的浪费资源指的是资源空闲,没有充分使用的情况。 操作系统为我们的程序带来了 并发性,操作系统使我们的程序同时运行多个程序,一个程序就是一个进程,也就相当于同时运行了多个进程。 操作系统是一个并发系统,并发性是操作系统非常重要的特征,操作系统具有同时处理和调度多个程序的能力,比如多个 I/O 设备同时在输入输出;设 原因分析: 根据报错内容可知,发送消息时,broker已经不是对应分区的leader了,也就是说问题发生在leader重选举时,由于报错相对比较频繁,即重选举的动作发生的比较频繁,所以问题的重点就是分析是什么原因导致了leaderf发生了重选举。 关于kafka的leadert重选举以及都有哪些情况可能触发重选举,这里不在详细说明,具体可以参考:https://shirenc org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition 报错内容:分区数据不在 原因分析:producer向不存在的topic发送消息,用户可以检查topic是否存在 或者设置auto.creat 本地启动Kafka [lcc@lcc ~/soft/kafka/kafka_2.11-0.10.0.0]$ bin/kafka-server-start.sh config/server.properties 然后启动生产者生产数据 [lcc@lcc ~/soft/kafka/kafka_2.11-0.10.0.0]$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic_lcc 《Java现网问题排查技巧及实践》:应用日志是切入问题的最佳点,通常情况下系统出现问题时应用日志都会有相应的异常日志输出。通过分析异常日志能够定位到具体的代码片段,缩小问题排查范围。 我们先看看生产端程序的日志: