gpt4 book ai didi

java - 发送到主题时抛出 TimeoutException

转载 作者:行者123 更新时间:2023-12-05 07:38:27 24 4
gpt4 key购买 nike

我已经使用 kafkatemplate bean 制作了发送器类来将有效负载发送到主题在 SenderConfiguration 类中进行一些配置。

发件人

@Component
public class Sender {
private static final Logger LOGGER = (Logger) LoggerFactory.getLogger(Sender.class);

@Autowired
private KafkaTemplate<String, String> kafkaTemplate;

public void send(String topic, String payload) {
LOGGER.info("sending payload='{}' to topic='{}'", payload, topic);

kafkaTemplate.send(topic, "1", payload);
}
}

, senderConfiguration

@Configuration
public class SenderConfig {

@Value("${kafka.bootstrap-servers}")
private String bootstrapServers;

@Bean
public Map<String, Object> producerConfigs() {
Map<String, Object> props = new HashMap<>();
// list of host:port pairs used for establishing the initial connections to the Kakfa cluster
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);

return props;
}

@Bean
public ProducerFactory<String, String> producerFactory() {
return new DefaultKafkaProducerFactory<>(producerConfigs());
}

@Bean
public KafkaTemplate<String, String> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}

@Bean
public Sender sender() {
return new Sender();
}
}

问题在于发送而不是生产

这里是application.yml文件属性

kafka:
bootstrap-servers: localhost:9092
topic:
helloworld: helloworld.t

简单的 Controller 包含

@RestController
public class Controller {
protected final static String HELLOWORLD_TOPIC = "helloworld.t";

@Autowired
private Sender sender;

@RequestMapping("/send")
public String SendMessage() {

sender.send(HELLOWORLD_TOPIC, "message");

return "success";
}
}

异常(exception)是

2017-12-20 09:58:04.645  INFO 10816 --- [nio-7060-exec-1] o.a.kafka.common.utils.AppInfoParser     : Kafka version : 0.10.1.1
2017-12-20 09:58:04.645 INFO 10816 --- [nio-7060-exec-1] o.a.kafka.common.utils.AppInfoParser : Kafka commitId : f10ef2720b03b247
2017-12-20 09:59:04.654 ERROR 10816 --- [nio-7060-exec-1] o.s.k.support.LoggingProducerListener : Exception thrown when sending a message with key='1' and payload='message' to topic helloworld.t:

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

最佳答案

使用包含 key 的方法

kafkaTemplate.send(topic, key, payload);

不清楚您要使用什么键值,但它应该在主题的分区计数中均匀分布。例如,分区计数范围内的随机数。

关于java - 发送到主题时抛出 TimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47900942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com