Giriş
Zookeeper Control Plane için gerekir. Açıklaması şöyle
Control and data planesApache Kafka implements independent control and data planes for its clusters. The control plane manages the cluster, keeps track of what brokers are alive, and takes action when the set changes. Meanwhile, the data plane consists of the features required to handle producers and consumers and their records. In the previous iterations, Zookeeper was the cluster component that held most of the implementation of the control plane.
Zookeeper'ın Kaldırılması
KRaft yazısına taşıdım
Zookeeper Instance Sayısı
Tek sayı olması iyi olur. Açıklaması şöyle. Örneğin 3 tane gibi.
We must ensure that the number of Zookeeper nodes is 2n + 1 where n is any number greater than 0. Having an odd number of servers allows Zookeeper to perform majority elections for leadership. This setup can handle n faulty/ dead nodes and any value higher will bring the ensemble down.
Zookeeper Kullanımı
Zookeeper'a bağlanmak için şöyle yaparız
kafka-broker/bin/zookeeper-shell.sh localhost:2181
Docker Compose
Örnek
Şöyle yaparız. Burada "zoonavigator gui" de kullanılıyor.
version: '3.9'
services:
zoo1:
container_name: zks1
image: zookeeper
restart: always
hostname: zoo1
ports:
- '2181:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
- ZOO_MY_ID = 1
- ZOO_SERVERS = server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo2:
container_name: zks2
image: zookeeper
restart: always
hostname: zoo2
ports:
- '2182:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
- ZOO_MY_ID = 2
- ZOO_SERVERS = server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoonavigator:
container_name: zoonavigator
image: elkozmon/zoonavigator
ports:
- 9000:9000Örnek
Şöyle yaparız. Burada 1 zookeeper ve 1 kafta çalıştırılıyor
---
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
broker:
image: confluentinc/cp-kafka:latest
container_name: broker
ports:
- "9092:9092"
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1zookeeper.properties Dosyası
Örnek şöyle
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=[Path to data directory]\dataÖrnek
Şöyle yaparız
dataDir=/path/to/the/dir/clientPort=2181tickTime=2000initLimit=5syncLimit=2maxClientCnxns=60admin.enableServer=falseserver.0=1.2.3.4:2888:3888server.1=1.2.3.5:2888:3888server.2=1.2.3.6:2888:3888
Diğer zookeeper sunucularını belirtmek için şöyle yapılıyor
server.<id>=<ip-addr>:2888:3888
brokers/ids dizini
Açıklaması şöyle
The ephemeral nodes i.e. active brokers, take place in the /brokers/ids path.
ls seçeneği
Şöyle yaparız
ls[admin, brokers, cluster, config, consumers, controller, controller_epoch,
isr_change_notification, latest_producer_id_blocki log_dir_event_notification, zookeeper]
get seçeneği
Bir düğümün içindeki bilgiyi görmek içindir. Şöyle yaparız
get /controller {"version":1,"brokerid":0,"timestamp":"1606990912859"}
Hiç yorum yok:
Yorum Gönder