Apache kafka DirectKafkaAPI的可靠使用
我计划基于directkafkaAPI开发一个可靠的streamig应用程序。我将有一个生产者和另一个消费者。我想知道实现消费者可靠性的最佳方法是什么?我可以采用两种解决方案Apache kafka DirectKafkaAPI的可靠使用,apache-kafka,spark-streaming,Apache Kafka,Spark Streaming,我计划基于directkafkaAPI开发一个可靠的streamig应用程序。我将有一个生产者和另一个消费者。我想知道实现消费者可靠性的最佳方法是什么?我可以采用两种解决方案 增加Kafka中邮件的保留时间 使用writehead日志 我对directkafka API中WriteHead日志的使用感到有点困惑,因为没有接收者..但在文档中它指出 “精确一次语义:第一种方法使用Kafka的高级API在Zookeeper中存储消耗的偏移量。这是传统上使用Kafka数据的方法。而这种方法(结合预写日
我想,如果我避免上述任何一种情况,这将是一种良好的做法,因为备份数据(保留的消息、检查点文件)可能会丢失,然后恢复可能会面临失败。直接方法消除了数据重复问题,因为没有接收器,因此不需要
预写日志。只要您有足够的卡夫卡保留时间
,就可以从卡夫卡恢复邮件
另外,默认情况下直接方法只支持一次消息传递语义,它不使用Zookeeper。偏移量由检查点内的Spark流跟踪。直接方法消除了数据重复问题,因为没有接收器,因此不需要预写日志。只要您有足够的卡夫卡保留时间
,就可以从卡夫卡恢复邮件
另外,默认情况下直接方法只支持一次消息传递语义,它不使用Zookeeper。偏移量由检查点内的火花流跟踪