【问题标题】:When is the Flume memory channel not recoverable, and why?Flume 内存通道何时不可恢复,为什么?
【发布时间】:2017-12-05 09:19:39
【问题描述】:

我很困惑 Flume 数据在使用文件通道时是可恢复的,而在内存通道中是不可恢复的。

我尝试了一个 Kafka 接收器,当我在阅读时放下 Flume 时,Kafka 会正确读取通道中的数据(文件)。当 Flume 重新启动时,管道继续以可靠的方式传递数据。那么内存通道是如何不可恢复的呢?在这种情况下我需要恢复通道中的数据?特别是当 Flume 开始从保存的偏移量读取文件时。

【问题讨论】:

    标签: apache-kafka flume channel


    【解决方案1】:

    你可以重启Kafka来检查消息是否丢失。

    偏移概念: 这取决于水槽事务处理。在flume重启的过程中,可能会有一些事务被提交,但是处理可能会因为连接丢失而失败。 例如:您有一个事务需要一些处理,然后将其存储在数据库中。即使水槽接收器抛出任何异常,您也有 transaction.commit() 。因此,当您的处理逻辑引发异常时,您将在重新启动过程中丢失数据。事务提交,偏移量增加。

    因此在重新启动过程之前进行偏移比较安全。你应该关注

    1. 采取出口偏移
    2. 停止水槽
    3. 导入偏移量
    4. 启动水槽

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多