如何恢复kafka数据

yhuiod9q  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(561)

我有一个单节点集群Kafka设置。
docker compose文件如下所示:

version: '2'

services:
  zookeeper:
    image: zookeeper:3.4.9
    hostname: zookeeper
    ports:
      - "2181:2181"
    environment:
        ZOO_MY_ID: 1
        ZOO_PORT: 2181
        ZOO_SERVERS: server.1=zookeeper:2888:3888
    volumes:
      - zookeeper-data:/var/lib/zookeeper/data
      - zookeeper-log:/var/lib/zookeeper/log

  broker:
    image: confluentinc/cp-kafka:4.1.1
    hostname: broker
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://dev.kafka.org:9092"
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_BROKER_ID: 1
      KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_DELETE_TOPIC_ENABLE: "true"
      KAFKA_LOG_RETENTION_HOURS: 1680
      KAFKA_JMX_PORT: 7071
    volumes:
      - kafka-data:/var/lib/kafka/data
    depends_on:
      - zookeeper

出于某种原因,我不得不重新启动整个Kafka堆栈。重新启动后,我发现主题丢失了。
似乎zookeeper数据日志的命名卷不正确。
如果zookeeper数据丢失且kafka卷数据可用,是否有方法恢复主题数据?

62lalag4

62lalag41#

不是真的。丢失zookeeper有点像文件系统上的inode表已损坏。可能有一些方法可以在zookeeper中手动重建数据,但这种方法不太可能奏效。这就是为什么人们把zookeeper作为一个高可用的分布式系统来运行,因为保存存储在那里的数据是非常重要的。

相关问题