我需要将我的微服务的请求和响应推送给Kafka经纪人。
我可以在本地安装Kafka成功完成此操作,但是当我将其带到更高的环境时,它会失败并显示以下错误。
o.a.k.clients.producer.KafkaProducer: [Producer clientId=producer-9]
Closing the Kafka producer with
timeoutMillis = 0 ms.",
"source":"stdout",
"tag":"PromiseEngine-Staging-aafa49a1ea22"}
我没有将超时设置为零,我可以在生产者配置中看到超时为30000毫秒。
我还实现了成功和失败的回调,并且没有一个得到执行。
@Autowired
KafkaTemplate<String, KafkaMessageDTO> kafkaTemplate;
private void publishToKafkaTopic(String topic,
SchedulingCallRequestDTO request, ScheduleOrderResponseDTOv2 response) {
log.debug("entered publishToKafkaTopic: " + CommonUtils.getJson(response));
ListenableFuture<SendResult<String, KafkaMessageDTO>> future =
send(topic,new KafkaMessageDTO(request, response));
future.addCallback(
new ListenableFutureCallback<SendResult<String, KafkaMessageDTO>>() {
@Override
public void onSuccess(SendResult<String, KafkaMessageDTO> result) {
log.info("Eequest and Response pushed to Kafka: " +
CommonUtils.getJson(result.getProducerRecord().value()));
}
@Override
public void onFailure(Throwable ex) {
log.error("Error occured while pushing to Kafka." + " {}",
CommonUtils.getJson(new KafkaMessageDTO(request, response)));
}
});
}
private ListenableFuture<SendResult<String, KafkaMessageDTO>> send(String topic, KafkaMessageDTO message) {
log.debug("entered send: " + CommonUtils.getJson(message));
ListenableFuture<SendResult<String, KafkaMessageDTO>> future = kafkaTemplate
.send(generateProducerRecord(topic, message));
return future;
}
有人可以帮我吗