我有Kafka示例运行在两个不同的虚拟机。我可以使用spring kafka模板向运行在vm-1中的kafka发送消息,但在向运行在vm-2中的kafka发送消息时,出现以下异常:
2018-04-19 15:12:57[kafka producer network thread | producer-1]错误o.s.k.s.loggingproducerlistener-发送密钥为'x'且有效负载为‘{79、98、106、1、4、22、97、118、114、111、46、115、99、104、101、109、97、-28、51、123、34、116、,12…'主题-v1:org.apache.kafka.common.errors.timeoutexception:自批创建加上延迟时间后,的1条记录已过期-v1-3:60043毫秒
生产者配置
config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, x.x.x.x:port);
config.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
config.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class);
config.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, 60000);
config.put(ProducerConfig.BATCH_SIZE_CONFIG, 1048576);
config.put(ProducerConfig.LINGER_MS_CONFIG, 100);
config.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG, 10485760);
config.put(ProducerConfig.ACKS_CONFIG, "all");
我可以telnet到两个vm,也可以ping它们。
1条答案
按热度按时间wpx232ag1#
如果您有两个代理并且能够向一个代理而不是另一个代理发送消息,则意味着您可能错误地配置了另一个代理。
检查失败代理的播发侦听器。
p、 s:明文是一种协议,在您的情况下可能需要更改。您的生产商必须可以访问ip。
此外,您可能还需要检查
message.max.bytes
你的经纪人或max.message.bytes
在主题上比你的max.request.size
你的制作人。要对此进行调试,请尝试发送小消息,如果它们也给出相同的错误,则这不是问题所在。参考:stackoverflow答案