Linux下Kafka备份恢复流程
一 备份策略与适用场景
二 全量备份与恢复步骤
BACKUP_TOPIC=test
BACKUP_DIR=/tmp/backup
mkdir -p $BACKUP_DIR
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic $BACKUP_TOPIC \
--from-beginning \
--property print.key=true \
--property key.separator="|" \
> $BACKUP_DIR/${BACKUP_TOPIC}.txt
sudo apt-get install kafka-dump # 以发行版为准
kafka-dump \
--bootstrap-server localhost:9092 \
--output-dir /tmp/backup/kafka-dump
RESTORE_TOPIC=test
BACKUP_FILE=/tmp/backup/${RESTORE_TOPIC}.txt
kafka-console-producer.sh \
--broker-list localhost:9092 \
--topic $RESTORE_TOPIC \
--new-producer \
< $BACKUP_FILE
kafka-backup \
--bootstrap-server localhost:9092 \
--restore-dir /tmp/backup/kafka-dump
三 增量备份与恢复步骤
consumer.bootstrap.servers=$SOURCE_HOST
producer.bootstrap.servers=$DEST_HOST
# 可按需设置
# consumer.group.id=mirror-consumer
# auto.offset.reset=earliest
kafka-run-class.sh kafka.tools.MirrorMaker \
--consumer.config /tmp/mirror-maker.properties \
--producer.config /tmp/mirror-maker.properties \
--whitelist "test"
mkdir -p /opt/kafka-backup
# 首次
kafka-backup \
--bootstrap-server localhost:9092 \
--backup-dir /opt/kafka-backup/run-$(date +%F)
# 后续(建议每日/每小时)
# 0 2 * * * /usr/bin/kafka-backup --bootstrap-server localhost:9092 --backup-dir /opt/kafka-backup/run-$(date +\%F) >> /var/log/kafka-backup.log 2>&1
四 关键注意事项与最佳实践