version : zookeeper-3.4.6
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 아이디))
./zkServer.sh start
./zkServer.sh status
follower 및 Leader 표시
version : kafka_2.12-2.8.0
Broker 3, Partition 1
(Partition 1을 통해 순서 보장, Application 상에서 순서 보장 구성 가능)
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-server-start.sh /opt/kafka_2.12-2.8.0/config/server.properties
./kafka-topics.sh --create --zookeeper kafka0:2181,kafka1:2181,kafka2:2181 --replication-factor 3 --partitions 1 --topic test
replication-factor : 브로커 개수
partitions : 파티션 개수 (다중으로 나눌 시 메시지에 대해 순서 보장되지 않음)
./kafka-topics.sh --zookeeper kafka0:2181,kafka1:2181,kafka2:2181 --topic test --delete
./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
./kafka-console-producer.sh --broker-list 172.17.0.4:59092,172.17.0.5:59093,172.17.0.6:59094 --topic test
./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