Kafka là gì ?
Kafka là gì? – Đó là hệ thống message pub/sub phân tán (distributed messaging system). Bên pulbic dữ liệu được gọi là producer, bên subscribe nhận dữ liệu theo topic được gọi là consumer. Kafka có khả năng truyền một lượng lớn message theo thời gian thực, trong trường hợp bên nhận chưa nhận message vẫn được lưu trữ sao lưu trên một hàng đợi và cả trên ổ đĩa bảo đảm an toàn. Đồng thời nó cũng được replicate trong cluster giúp phòng tránh mất dữ liệu.
Cài đặt Apache Kafka trên Ubuntu 20.04:
Tạo người dùng cho Kafka:
Đăng nhập với tư cách là người dùng sudo không phải root của bạn, tạo một người dùng có tên kafka:
sudo adduser kafka
Tiếp theo, thêm người dùng kafka vào nhóm sudo bằng lệnh adduser:
sudo adduser kafka sudo
Đăng nhập với người dùng Kafka:
su -l kafka
Bây giờ bạn đã tạo một người dùng cụ thể cho Kafka, bạn đã sẵn sàng tải xuống và giải nén các tệp nhị phân Kafka.
Tải xuống và giải nén Kafka Binaries:
Tạo một thư mục để lưu trữ để tải xuống tệp:
mkdir ~/Downloads
Sử dụng curl để tải xuống các tệp nhị phân Kafka:
curl "https://downloads.apache.org/kafka/2.6.2/kafka_2.13-2.6.2.tgz" -o ~/Downloads/kafka.tgz
Tạo một thư mục Kafka đây là thư mục cơ sở để cài đặt Kafka:
mkdir ~/kafka && cd ~/kafka
Giải nén tệp đã tải xuống:
tar -xvzf ~/Downloads/kafka.tgz --strip 1
Cấu hình máy chủ Kafka:
Đầu tiên mở tệp server.properties:
nano ~/kafka/config/server.properties
Tiếp theo thêm đoạn này vào cuối tệp:
delete.topic.enable = true
Thay đổi thư mục lưu trữ nhật kí Kafka:
Tạo tệp đơn vị Systemd và khởi động máy chủ Kafka:
Tạo tệp đơn vị cho zookeeper:
sudo nano /etc/systemd/system/zookeeper.service
Thêm đoạn code này vào:
[Unit] Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple User=kafka ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Tiếp theo, tạo tệp dịch vụ systemd cho kafka:
sudo nano /etc/systemd/system/kafka.service
Thêm đoạn code này vào tệp:
[Unit] Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=kafka ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1' ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Bây giờ bạn đã xác định các đơn vị, hãy bắt đầu Kafka bằng lệnh sau:
sudo systemctl start kafka
Để đảm bảo rằng máy chủ đã khởi động thành công, hãy kiểm tra nhật ký nhật ký cho kafka:
sudo systemctl status kafka
Như các bạn đã thấy Kafka đã hoạt động.
Bạn đã bắt đầu dịch vụ kafka. Nhưng nếu bạn khởi động lại máy chủ của mình, Kafka sẽ không tự động khởi động lại. Để bật dịch vụ kafka khi khởi động máy chủ, hãy chạy các lệnh sau:
sudo systemctl enable zookeeper sudo systemctl enable kafka
Phần kết:
Ở trên mình đã hướng dẫn các bạn cài đặt Apache Kafka trên Ubuntu 20.04