1. Yêu cầu phần cứng tối thiểu
Để triển khai ổn định Debezium và Kafka trên Ubuntu 24.04, bạn cần đảm bảo server đáp ứng các thông số tối thiểu sau để tránh tình trạng Out of Memory (OOM) khi xử lý luồng dữ liệu lớn.
- CPU: Tối thiểu 2 vCPU (Khuyến nghị 4 vCPU cho môi trường Dev/Test).
- RAM: Tối thiểu 4GB (2GB cho JVM Kafka/Zookeeper, 2GB cho hệ điều hành và các dịch vụ khác).
- Disk: Tối thiểu 50GB SSD (NFS hoặc Disk chuẩn thường không đủ tốc độ I/O cho Kafka).
- Network: Băng thông ổn định, port 9092 (Kafka), 2181 (Zookeeper), 5432 (PostgreSQL) cần mở firewall.
2. Cập nhật hệ thống và cài đặt OpenJDK
Ubuntu 24.04 mặc định không cài sẵn OpenJDK 17 hoặc 21. Chúng ta cần cập nhật repository và cài đặt gói cụ thể để đảm bảo tương thích với Debezium.
Trước tiên, cập nhật danh sách gói phần mềm để lấy phiên bản mới nhất từ repository chính thức.
sudo apt update && sudo apt upgrade -y
Kết quả mong đợi: Hệ thống báo "X packages upgraded" và không có lỗi dependency.
Đến bước cài đặt OpenJDK 21 (phiên bản LTS mới nhất, được khuyến nghị cho Kafka 3.x+ và Debezium 2.4+). Nếu cần hỗ trợ legacy, có thể chọn openjdk-17-jdk.
sudo apt install -y openjdk-21-jdk
Kết quả mong đợi: Quá trình cài đặt hoàn tất, các thư viện `libopenjdk21-jre` và `openjdk-21-jdk` được cài vào `/usr/lib/jvm/`.
3. Cấu hình biến môi trường JAVA_HOME và PATH
Debezium và Kafka cần biết chính xác đường dẫn đến JDK thông qua biến `JAVA_HOME`. Nếu không cấu hình, các script khởi động có thể thất bại hoặc dùng sai phiên bản Java.
Trước khi ghi config, xác định đường dẫn thực tế của JDK vừa cài đặt.
ls -d /usr/lib/jvm/java-21-openjdk-amd64
Kết quả mong đợi: Trả về đường dẫn `/usr/lib/jvm/java-21-openjdk-amd64`. Nếu không có, dùng lệnh `ls /usr/lib/jvm/` để tìm thư mục có tên tương tự.
Tạo file cấu hình biến môi trường trong thư mục `/etc/profile.d/` để áp dụng cho toàn hệ thống và tất cả user.
Đường dẫn file: `/etc/profile.d/java.sh`
Nội dung hoàn chỉnh:
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
Kết quả mong đợi: File được tạo thành công, không cần chạy lệnh gì thêm.
Áp dụng cấu hình ngay lập tức cho session hiện tại mà không cần logout/login lại.
source /etc/profile.d/java.sh
Kết quả mong đợi: Shell prompt quay lại, biến môi trường đã được load vào memory.
4. Kiểm tra phiên bản Java và quyền truy cập
Đây là bước xác minh cuối cùng để đảm bảo mọi thứ đã sẵn sàng trước khi cài đặt Zookeeper và Kafka trong phần tiếp theo.
Kiểm tra xem biến `JAVA_HOME` đã trỏ đúng chưa.
echo $JAVA_HOME
Kết quả mong đợi: Trả về `/usr/lib/jvm/java-21-openjdk-amd64`.
Kiểm tra phiên bản Java thực tế đang chạy và quyền truy cập của user hiện tại.
java -version
Kết quả mong đợi: Xuất hiện thông tin tương tự:
- openjdk version "21.0.x" 2024-xx-xx
- OpenJDK Runtime Environment (build 21.0.x+...)
- OpenJDK 64-Bit Server VM (build 21.0.x+..., mixed mode, sharing)
Nếu thấy phiên bản 11 hoặc 8, nghĩa là biến PATH chưa được cập nhật đúng hoặc có nhiều bản JDK xung đột.
Đảm bảo user hiện tại có quyền thực thi các binary trong `$JAVA_HOME/bin`.
ls -la $JAVA_HOME/bin/java
Kết quả mong đợi: Xuất hiện dòng `-rwxr-xr-x` ở đầu, cho thấy quyền thực thi (execute) đã được cấp.
Điều hướng series:
Mục lục: Series: Triển khai Database Change Data Capture với Debezium và Kafka trên Ubuntu 24.04
Phần 2: Cài đặt và cấu hình Zookeeper cùng Kafka »