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.11core-2
: 192.168.65.12core-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
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
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
Kiểm tra danh sách topic từ server 2:
bin/kafka-topics.sh --list --bootstrap-server 192.168.65.12:9092
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
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 !!!