ZooKeeper là một thành phần distributed coordination kinh điển, thường được dùng làm service registry, quản lý cấu hình, distributed lock, Leader election và quản lý metadata của cluster. Khi học ZooKeeper, bạn có thể nắm mô hình dữ liệu và Watcher trước, sau đó tìm hiểu giao thức ZAB, Leader election và thực tiễn triển khai.
Bài viết này minh họa ngắn gọn cách sử dụng các lệnh thường gặp của ZooKeeper và cách sử dụng cơ bản client Curator Java của ZooKeeper. Các nội dung được giới thiệu đều là thao tác cơ bản nhất, đáp ứng nhu cầu cơ bản trong công việc hằng ngày.
Bài viết thiên về thực hành, không giải thích vì sao ZooKeeper có thể thực hiện coordination. Bạn nên đọc Hướng dẫn nhập môn ZooKeeper trước để tìm hiểu ZNode, Watcher và Session, sau đó đọc Giải thích chi tiết ZooKeeper nâng cao hoặc Giải thích chi tiết giao thức ZAB để bổ sung kiến thức về giao thức và cơ chế cluster.
Có lẽ bạn không còn xa lạ với ZooKeeper. Nhưng bạn có thật sự hiểu ZooKeeper dùng để làm gì không? Nếu người khác hoặc interviewer yêu cầu bạn trình bày hiểu biết về ZooKeeper, bạn có thể trả lời đến đâu?
Lấy bản thân tôi làm ví dụ. Khi còn học đại học và dùng Dubbo để làm một dự án phân tán, tôi đã dùng ZooKeeper làm registry. Để bảo đảm các hệ thống phân tán có thể truy cập đồng bộ vào một tài nguyên, tôi cũng từng dùng ZooKeeper để triển khai distributed lock. Khi học Kafka, tôi biết nhiều chức năng của Kafka phụ thuộc vào ZooKeeper.
Được FrancisQ đóng góp.
ZooKeeper là gì
ZooKeeper do Yahoo phát triển, sau đó được tặng cho Apache và hiện đã trở thành dự án cấp cao nhất của Apache. ZooKeeper là một server điều phối ứng dụng phân tán mã nguồn mở, cung cấp dịch vụ consistency cho hệ thống phân tán. Consistency này được hoàn thành thông qua giao thức ZAB (ZooKeeper Atomic Broadcast) được thiết kế riêng cho ZooKeeper. Các chức năng chính gồm: duy trì cấu hình, đồng bộ phân tán, quản lý cluster, v.v.
