kafka-zookeeper 클러스터 설정 및 명령어

4e5ung·2021년 7월 28일
0

zookeeper 클러스터 설정

version : zookeeper-3.4.6

conf/zoo.cfg

dataDir=/opt/data
server.1=kafka0:2888:3888
server.2=kafka1:2888:3888
server.3=kafka2:2888:3888

server.x : zookeeper 연결(총 3개)
dataDir : zookeeper id 설정필요( /opt/data/myid -> 1~3(zookeeper 아이디))

zookeeper 실행

./zkServer.sh start

zookeeper 연결 상태 확인

./zkServer.sh status

follower 및 Leader 표시

zookeeper에 등록된 kafka topic 강제 삭제

  1. ./zkCli.sh 접속
  2. ls /brokers/topics 목록확인
  3. rmr /brokers/topics/{topic name}

kafka 클러스터 설정

version : kafka_2.12-2.8.0

kafka 클러스터 구성

Broker 3, Partition 1
(Partition 1을 통해 순서 보장, Application 상에서 순서 보장 구성 가능)

config/server.properties

broker.id=1
advertised.listeners=INTERNAL://172.17.0.4:19092,EXTERNAL://192.168.0.22:59092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
inter.broker.listener.name=INTERNAL
listeners=INTERNAL://172.17.0.4:19092,EXTERNAL://172.17.0.4:59092

zookeeper.connect=kafka0:2181,kafka1:2181,kafka2:2181
delete.topic.enable=true
zookeeper.connection.timeout.ms=18000

broker.id : 브로커 아이디(1~3)
advertised.listeners : 프로듀서(INTERNAL 내부주소), 컨슈머 노출 주소(EXTERNAL 외부주소)
listener.security.protocol.map : 보안 시큐리티 EXTERNAL을 SSL 설정으로 변경 가능(변경 시 외부에서는 SSL로 접근)
listeners : 브로커가 내부적으로 바인딩하는 주소(ex: advertised.listeners EXTERNAL 외부 접근해서 listeners EXTERNAL로 바인딩)

zookeeper.connect : zookeeper 연결
delete.topic.enable : topic 지울 수 있는 모드
zookeeper.connection.timeout.ms : zookeeper 연결 타임아웃

명령어

kafka 실행

./kafka-server-start.sh /opt/kafka_2.12-2.8.0/config/server.properties

topic 생성

./kafka-topics.sh --create --zookeeper kafka0:2181,kafka1:2181,kafka2:2181 --replication-factor 3 --partitions 1 --topic test

replication-factor : 브로커 개수
partitions : 파티션 개수 (다중으로 나눌 시 메시지에 대해 순서 보장되지 않음)

topic 삭제

./kafka-topics.sh --zookeeper kafka0:2181,kafka1:2181,kafka2:2181 --topic test --delete

topic 리스트

./kafka-topics.sh --describe --zookeeper kafka0:2181,kafka1:2181,kafka2:2181 --topic test
or
./kafka-topics.sh --describe --zookeeper kafka0:2181,kafka1:2181,kafka2:2181

producer

./kafka-console-producer.sh --broker-list 172.17.0.4:59092,172.17.0.5:59093,172.17.0.6:59094 --topic test

consumer

./kafka-console-consumer.sh --bootstrap-server 192.168.0.22:59092,192.168.0.22:59093,192.168.0.22:59094 --topic test --from-beginning --consumer-property group.id=ys

0개의 댓글