Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka DirectKafkaAPI的可靠使用_Apache Kafka_Spark Streaming - Fatal编程技术网

Apache kafka DirectKafkaAPI的可靠使用

Apache kafka DirectKafkaAPI的可靠使用,apache-kafka,spark-streaming,Apache Kafka,Spark Streaming,我计划基于directkafkaAPI开发一个可靠的streamig应用程序。我将有一个生产者和另一个消费者。我想知道实现消费者可靠性的最佳方法是什么?我可以采用两种解决方案 增加Kafka中邮件的保留时间 使用writehead日志 我对directkafka API中WriteHead日志的使用感到有点困惑,因为没有接收者..但在文档中它指出 “精确一次语义:第一种方法使用Kafka的高级API在Zookeeper中存储消耗的偏移量。这是传统上使用Kafka数据的方法。而这种方法(结合预写日

我计划基于directkafkaAPI开发一个可靠的streamig应用程序。我将有一个生产者和另一个消费者。我想知道实现消费者可靠性的最佳方法是什么?我可以采用两种解决方案

  • 增加Kafka中邮件的保留时间
  • 使用writehead日志
  • 我对directkafka API中WriteHead日志的使用感到有点困惑,因为没有接收者..但在文档中它指出

    “精确一次语义:第一种方法使用Kafka的高级API在Zookeeper中存储消耗的偏移量。这是传统上使用Kafka数据的方法。而这种方法(结合预写日志)可以确保零数据丢失(即至少一次语义),在某些故障下,某些记录可能被消耗两次的可能性很小。”

    所以我想知道什么是最好的方法..如果它足以增加kafka中消息的TTL,或者我还必须启用预写日志


    我想,如果我避免上述任何一种情况,这将是一种良好的做法,因为备份数据(保留的消息、检查点文件)可能会丢失,然后恢复可能会面临失败。

    直接方法消除了数据重复问题,因为没有接收器,因此不需要
    预写日志。只要您有足够的卡夫卡
    保留时间
    ,就可以从卡夫卡恢复邮件


    另外,默认情况下直接方法只支持一次消息传递语义,它不使用Zookeeper。偏移量由检查点内的Spark流跟踪。

    直接方法消除了数据重复问题,因为没有接收器,因此不需要
    预写日志。只要您有足够的卡夫卡
    保留时间
    ,就可以从卡夫卡恢复邮件

    另外,默认情况下直接方法只支持一次消息传递语义,它不使用Zookeeper。偏移量由检查点内的火花流跟踪