【问题标题】:Spring cloud Stream Kafka: Get acknowledgement for processor.output().send(message);Spring cloud Stream Kafka:获取processor.output().send(message)的确认;
【发布时间】:2019-07-13 23:10:16
【问题描述】:

我想知道使用spring-cloud-stream写入kafka主题是否成功。

public boolean writeToKafka(String emails) {

        Message<String> message = MessageBuilder.withPayload(emails).build();
        return processor.output().send(message);

    }

return 语句的计算结果始终为 true。我需要向调用方法发送回确认消息是否已写入。

【问题讨论】:

  • 为什么需要 ack?我的意思是框架已经为你处理好了,所以如果你正在使用框架,你为什么要规避呢?
  • @OlegZhurakousky。感谢您的回复。原因是我想发回 HTTP 状态。如果向 Kafka 写入消息有任何失败,我想让用户知道,以便他稍后重试。
  • 你可以设置s.c.s.kafka.bindings.output.producer.sync=true阻塞调用线程直到发送完成(或抛出异常)。
  • 感谢格雷罗素。它的工作。

标签: apache-kafka spring-cloud-stream


【解决方案1】:

感谢格雷罗素的回答。我刚刚在 application.properties 中添加了以下属性

spring.cloud.stream.kafka.bindings.output.producer.sync=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多