Khởi động cụm RisingWave qua Docker Compose
Thực thi lệnh khởi tạo dịch vụ
Đảm bảo bạn đang ở trong thư mục chứa file docker-compose.yml đã cấu hình ở Phần 2. Lệnh này sẽ kéo (pull) các image Docker cần thiết, tạo mạng (network) và khởi tạo các container cho Frontend, Compute, Frontend, Meta, và Storage.
docker compose up -d
Kết quả mong đợi: Terminal trả về thông báo "Creating risingwave-frontend-1...", "Creating risingwave-compute-1...", "Starting risingwave-frontend-1...". Không có lỗi (error) hay cảnh báo (warning) về cổng (port) bị chiếm dụng.
Xác minh trạng thái container đã chạy
Ngay sau khi lệnh up kết thúc, bạn cần kiểm tra nhanh xem tất cả container đã chuyển sang trạng thái Up hay chưa. Các container RisingWave cần thời gian để khởi động và handshake với nhau.
docker compose ps
Kết quả mong đợi: Bạn thấy danh sách 4-5 container với trạng thái Up (ví dụ: Up 10 seconds). Nếu có container nào ở trạng thái Exited hoặc Restarting, bạn cần kiểm tra log ngay lập tức.
Theo dõi log khởi động và xác nhận trạng thái các node
Giám sát log tổng hợp của cụm
Thay vì vào từng container riêng lẻ, hãy sử dụng lệnh logs -f để xem toàn bộ output của tất cả dịch vụ theo thời gian thực. Đây là bước quan trọng nhất để xác định quá trình khởi động có bị tắc ở đâu.
docker compose logs -f
Kết quả mong đợi: Bạn thấy dòng log liên tục từ các service. Quan trọng nhất là tìm các dòng chứa INFO với nội dung Frontend started, Compute node started, Meta node started, và Storage node started.
Xác nhận trạng thái từng thành phần (Component Status)
Sau khi thấy các log khởi động thành công, hãy tách biệt log của từng component để đảm bảo chúng đã sẵn sàng nhận kết nối. Nhấn Ctrl+C để thoát log tổng hợp nếu cần, sau đó chạy lệnh riêng cho từng service.
docker compose logs -f frontend
Kết quả mong đợi: Dòng log cuối cùng của Frontend là Listening on port 4566 (hoặc cổng bạn cấu hình). Không có lỗi Connection refused khi nó cố gắng kết nối tới Meta.
docker compose logs -f compute
Kết quả mong đợi: Dòng log cuối cùng chứa Compute node started và xác nhận nó đã đăng ký thành công với Meta service (Registered to meta).
docker compose logs -f storage
Kết quả mong đợi: Dòng log cuối cùng chứa Storage node started và xác nhận nó đã kết nối được với object storage (MinIO hoặc S3) nếu có cấu hình.
Chờ cụm ổn định (Stabilization)
RisingWave cần thời gian để các node Compute thực hiện heartbeat và đồng bộ trạng thái với Meta. Đừng vội chạy lệnh kiểm tra ngay khi container vừa Up.
sleep 30
Kết quả mong đợi: Không có output, chỉ là thời gian chờ 30 giây để đảm bảo các dịch vụ bên trong đã hoàn tất quá trình handshake và sẵn sàng.
Kiểm tra sức khỏe cụm bằng lệnh rwctl và Web UI
Sử dụng lệnh rwctl để kiểm tra trạng thái Meta
rwctl là công cụ dòng lệnh chính thức của RisingWave để quản lý và kiểm tra sức khỏe cụm. Lệnh này gọi API của Meta service để lấy thông tin trạng thái các node.
docker compose exec -T meta rwctl status
Kết quả mong đợi: Một bảng hiển thị trạng thái của các node. Bạn cần thấy cột state hiển thị Running cho tất cả các loại node (Frontend, Compute, Storage). Nếu thấy Unhealthy hoặc Starting, cụm chưa sẵn sàng.
Kiểm tra danh sách Compute Node chi tiết
Để đảm bảo các worker thực thi query (Compute Node) đã online và có tài nguyên sẵn sàng, hãy xem danh sách chi tiết của chúng.
docker compose exec -T meta rwctl compute-node list
Kết quả mong đợi: Danh sách hiển thị ít nhất 1 compute node với trạng thái Running. Cột worker_id sẽ hiện số ID của node đó.
Kiểm tra sức khỏe qua giao diện Web (RisingWave Dashboard)
RisingWave cung cấp một giao diện web tích hợp để trực quan hóa dữ liệu. Mặc dù thường dùng để xem query, nó cũng là nơi hiển thị trạng thái cluster rất rõ ràng.
curl -s http://localhost:4567 | grep -o "RisingWave"
Kết quả mong đợi: Lệnh trả về chuỗi "RisingWave", xác nhận dịch vụ web dashboard đang lắng nghe cổng 4567 (cổng mặc định của RisingWave Dashboard).
Mở trình duyệt web và truy cập địa chỉ: http://localhost:4567.
Kết quả mong đợi: Giao diện đăng nhập hoặc trang chủ hiện ra. Nếu bạn thấy trang web load thành công và không bị lỗi ERR_CONNECTION_REFUSED, nghĩa là Frontend và Meta đã kết nối thành công và Dashboard có thể truy xuất dữ liệu trạng thái.
Verify cuối cùng: Kết nối và chạy lệnh SQL đơn giản
Cách kiểm tra chắc chắn nhất là thử thực thi một lệnh SQL cơ bản để đảm bảo toàn bộ luồng (Client -> Frontend -> Compute -> Storage -> Meta) đều hoạt động.
docker compose exec -T frontend psql -h localhost -U root -d dev -c "SELECT version();"
Kết quả mong đợi: Terminal trả về phiên bản RisingWave (ví dụ: RisingWave 1.x.x). Nếu lệnh này chạy thành công, cụm của bạn đã hoàn toàn sẵn sàng cho Phần 4.
Điều hướng series:
Mục lục: Series: Triển khai Database Serverless với RisingWave trên Ubuntu 24.04
« Phần 2: Cấu hình Docker Compose để triển khai RisingWave
Phần 4: Kết nối client và thực thi các truy vấn cơ bản »