【问题标题】:Apache Kafka - How to wait for subscription to finishApache Kafka - 如何等待订阅完成
【发布时间】:2019-07-13 13:49:06
【问题描述】:

我正在使用 Kafka 2.1.0,并希望在订阅完成后发布一条消息。生产者有没有办法知道订阅是否发生然后发布消息?否则我每次都会丢失第一条消息。

【问题讨论】:

  • 我认为没有办法做到这一点。发布者和订阅者应该是分离的。当您开始订阅时,您可以选择从主题的开头开始,而不是只获取未来的消息。
  • 对于这种方法,生产者必须先发布消息,然后消费者订阅吗?另外,您如何选择订阅以便从头开始?谢谢!

标签: scala apache-kafka kafka-producer-api


【解决方案1】:

来自https://kafka.apache.org/documentation.html#newconsumerconfigsauto.offset.reset 声明:

当 Kafka 中没有初始偏移量或当前 服务器上不再存在偏移量(例如,因为该数据 已删除):

earliest:自动将偏移量重置为最早的偏移量

latest:自动将偏移量重置为最新的偏移量

none:如果没有找到先前的偏移量,则向消费者抛出异常 对于消费者群体

其他:向消费者抛出异常。

auto.offset.reset 的默认值为latest。为确保您的消费者不会丢失第一条记录,您需要将auto.offset.reset 设置为earliest

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多