- vừa được xem lúc

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

0 0 1

Người đăng: TruongItt

Theo Viblo Asia

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 !!!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Instagram - Thiết Kế Hệ Thống có gì hay? ?

Thiết Kế Hệ Thống tương tự Instagram có khó? và những điều cần lưu ý. Xin chào, mình là Khanh Ney, 1 Backend Developer chính hiệu sùng bái các vị Vua và mang tư duy của các vị Vua giải quyết vấn đề với DIY (Do it Yourself).

0 0 48

- vừa được xem lúc

Một số lỗi thường gặp khi cài đặt và triển khai MySQL Clusters

Mở đầu. Chuyện kể về một Intern System Admin khi được Leader yêu cầu tìm hiểu về mô hình MySQL bao gồm việc triển khai và cách hoạt động của mô hình này.

0 0 58

- vừa được xem lúc

Tư duy mở trong thiết kế hệ thống High Availability

LỜI NÓI ĐẦU. Chào mọi người, chúng ta lại gặp nhau vào những ngày dịp cận Tết cuối năm 2022 và bài viết hôm nay mình sẽ quay lại nội dung chia sẻ kiến thức - kinh nghiệm trong quá trình làm việc.

0 0 29

- vừa được xem lúc

[MongoDB P4] Cài đặt MongoDB Sharded Cluster có khả năng scale và tính dự phòng cao

Lời mở đầu. Hello các bạn trở lại với series bài viết "Những gì mình biết về MongoDB", series nói về một NoSQL DB cực kỳ phổ biến là MongoDB.

0 0 34

- vừa được xem lúc

High Availability & Scalability

Overview. .

0 0 21

- vừa được xem lúc

High Availability & Scalability trên AWS

Scalability & High Availability là gì. .

0 0 29