wurstmeister/kafka 2.3设置默认副本数

2022-03-28 21:19:09 浏览数 (1)

kafka是使用十分广泛的一款消息中间件,凭借其强大的吞吐以及可靠性获得了不错的口碑,其在大数据传输方面也有应用,wurstmeister/kafka是目前使用最多的一个kafka docker镜像。kafka的副本数在kafka的高可用性上有着至关重要的作用,笔者的一篇文章中说到了可以通过KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR设置__consumer_offsets主题的副本数,__consumer_offsets主题是用来存储其他主题各个分区消费进度的主题,这是kafka的内置主题,那么又怎么设置其他主题的副本数呢,比如我们常见的3 kafka集群,为了保证kafka的可用性,一般都需要将主题的副本数设置为2或者3,这样当其中一个broker down掉或者与其他kafka broker断开联系后,消费者可以通过新选举的主题leader进行消息消费,kafka2.7版本已经将默认副本数设置为3,但是kafka 2.3中默认副本数依然为1,所以需要人为设置2.3版本的默认副本数,wurstmeister/kafka可以通过KAFKA_DEFAULT_REPLICATION_FACTOR这个环境变量来设置kafka主题的默认副本数,如下图所示:

代码语言:javascript复制
  kafka3:
    restart: always
    image: "wurstmeister/kafka:2.12-2.3.0"
    environment:
      KAFKA_BROKER_ID: 903
      KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
      KAFKA_LISTENERS: INSIDE://:9093,OUTSIDE://:9092
      KAFKA_ADVERTISED_LISTENERS: INSIDE://:9093,OUTSIDE://kafka3:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      KAFKA_LOG_RETENTION_BYTES: 1073741824
      KAFKA_LOG_SEGMENT_BYTES: 268435456
      KAFKA_LOG_RETENTION_MS: 180000
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
      KAFKA_DEFAULT_REPLICATION_FACTOR: 2
    links:
      - zk1
      - zk2
      - zk3
    depends_on:
      - zk1
      - zk2
      - zk3

0 人点赞