分享

Kafka批量写入操作,是否会造成数据丢失

zxmit 发表于 2017-5-13 11:21:42 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 10672
[mw_shl_code=java,true]        List<String> values = new ArrayList<String>();
        /* 向 values 中添加数据 */
        LinkedList<Future<RecordMetadata>> kafkaFuture = new LinkedList<Future<RecordMetadata>>();
        for(int i = 0; i < values.size(); i++) {
            ProducerRecord record =
                    new ProducerRecord<String, String>("test_5", Integer.toString(i), values.get(i));
            kafkaFuture.add(producer.send(record));
        }
        producer.flush();
        for(int i=0; i<kafkaFuture.size(); i++) {
            kafkaFuture.get(i).get();
            values.remove(i);
        }[/mw_shl_code]

在上面代码中,如果写入kafka异常,values中保存未写入的数据




已有(1)人评论

跳转到指定楼层
arsenduan 发表于 2017-5-13 15:57:34
如果怕丢失,楼主可以捕获异常,或则保险起见,提前备份一份,保存到缓存或则磁盘,数据量小,也可以放到zookeeper。保存成功后,在删除
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条