0

Hướng Dẫn Cấu Hình Zookeeper và Kafka High Available

Tài liệu này hướng dẫn bạn cách thiết lập một cụm Zookeeper và Kafka cao cấp (HA) với ba node để đảm bảo tính sẵn sàng cao. Các bước được thực hiện trên hệ thống Ubuntu.

1. Chuẩn bị môi trường

Cài đặt các công cụ mạng cần thiết:

  • Hệ điều hành: Ubuntu 22.04
  • Máy chủ:
    • core-1: 192.168.65.11
    • core-2: 192.168.65.12
    • core-3: 192.168.65.13

Cài đặt Java và các công cụ mạng:

apt install default-jre net-tools

2. Cài đặt và cấu hình Zookeeper

Cài đặt Zookeeper:

apt install -y zookeeperd

Kiểm tra các tệp cấu hình:

ls /etc/zookeeper/
ls /etc/zookeeper/conf
ls /etc/zookeeper/conf/zoo.cfg

Cấu hình myid trên từng server:

  • Server 1: echo "1" > /var/lib/zookeeper/myid
  • Server 2: echo "2" > /var/lib/zookeeper/myid
  • Server 3: echo "3" > /var/lib/zookeeper/myid

Chỉnh sửa tệp /etc/zookeeper/conf/zoo.cfg trên cả 3 server:

server.1=192.168.65.11:2888:3888
server.2=192.168.65.12:2888:3888
server.3=192.168.65.13:2888:3888
  • Port 3888 được sử dụng cho quá trình bầu chọn leader.

Khởi động lại Zookeeper:

systemctl restart zookeeper

Kiểm tra danh sách gói đã cài:

dpkg -L zookeeper

Kết nối và kiểm tra Zookeeper từ server 1:

/usr/share/zookeeper/bin/zkCli.sh -server 192.168.65.11:2181

Câu lệnh cơ bản với Zookeeper

Trên server 1:

ls /
create /truongitt "hihi"
get /truongitt
create /truongitt/itt "xin chao cac ban"
get /truongitt/itt
create /truongitt/cntt "xin chao cac ban"
create /truongitt/khdl "xin chao cac ban"
ls /truongitt
quit

zookeeper 1 init

Trên server 2, kiểm tra lại:

/usr/share/zookeeper/bin/zkCli.sh -server 192.168.65.12:2181
ls /
ls /truongitt
get /truongitt/itt
quit

zookeeper check 2 3

3. Cài đặt và cấu hình Kafka

Tải và cài đặt Kafka phiên bản 3.9.1:

wget https://dlcdn.apache.org/kafka/3.9.1/kafka_2.12-3.9.1.tgz
tar xzf kafka_2.12-3.9.1.tgz
mv kafka_2.12-3.9.1 /usr/local/kafka
cd /usr/local/kafka/

Chỉnh sửa tệp /usr/local/kafka/config/server.properties trên từng server:

  • Server 1:
    broker.id=0
    listeners=PLAINTEXT://192.168.65.11:9092
    advertised.listeners=PLAINTEXT://192.168.65.11:9092
    log.dirs=/usr/local/kafka-logs
    zookeeper.connect=192.168.65.11:2181,192.168.65.12:2181,192.168.65.13:2181
    
  • Server 2:
    broker.id=1
    listeners=PLAINTEXT://192.168.65.12:9092
    advertised.listeners=PLAINTEXT://192.168.65.12:9092
    log.dirs=/usr/local/kafka-logs
    zookeeper.connect=192.168.65.11:2181,192.168.65.12:2181,192.168.65.13:2181
    
  • Server 3:
    broker.id=2
    listeners=PLAINTEXT://192.168.65.13:9092
    advertised.listeners=PLAINTEXT://192.168.65.13:9092
    log.dirs=/usr/local/kafka-logs
    zookeeper.connect=192.168.65.11:2181,192.168.65.12:2181,192.168.65.13:2181
    

Khởi động Kafka trên từng server:

bin/kafka-server-start.sh config/server.properties > logfile.log 2>&1 &

Tạo topic trên server 1:

bin/kafka-topics.sh --create --topic user_activity --bootstrap-server 192.168.65.11:9092 --replication-factor 3 --partitions 6

kafka 1

Kiểm tra danh sách topic từ server 2:

bin/kafka-topics.sh --list --bootstrap-server 192.168.65.12:9092

kafka 2 3 list

4. Cấu hình Kafka như dịch vụ

Tạo tệp /etc/systemd/system/kafka.service trên từng server:

vi /etc/systemd/system/kafka.service

Thêm nội dung:

[Unit]
Description=Apache Kafka Service để sử dụng lâu dài
After=zookeeper.service

[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

Khởi động và kích hoạt dịch vụ:

systemctl start kafka && systemctl enable kafka

kafka service

5. Chúc mừng

Chúc mừng bạn đã cấu hình Zookeeper và Kafka HA với ba node đã hoàn tất mô hình này đảm bảo khả năng chịu lỗi cao nhờ replication và bầu chọn leader của Zookeeper, cùng với khả năng mở rộng của Kafka giám sát và duy trì hiệu suất ổn định !!!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí