Phần 1: Tìm hiểu về các hệ thống phân tán với zookeeper và etcd

Khái niệm

Hệ thống phân tán là một tập hợp các máy tính hoạt động cùng nhau để thực hiện cùng một tác vụ hay cung cấp một dịch vụ cụ thể. Các máy tính trong hệ thống phân tán được kết nối thông qua mạng và hoạt động cùng nhau như một cụm cluster, để tăng cường khả năng xử lý, tính tin cậy và tính sẵn sàng của hệ thống.

 

Zookeeper: Là một hệ thống phân tán mã nguồn mở được phát triển  bởi Apache Software Foundation. Nó được thiết kế để cung cấp các dịch vụ giám sát, đồng đồng bộ và quản lý lưu trữ phân tán.

Mục tiêu chính của Zookeeper là giúp đồng bộ hóa và quản lý cấu hình. Nó hỗ trợ quá trình nhóm các máy tính thành các nhóm nhỏ (Smart groups), được gọi là ensemble để đảm bảo tính sẵn sàng và độ tin cậy cao. Zookeeper lưu trữ dữ liệu bằng cách sử dụng mô hình cây dữ liệu phân cấp với các nút gọi là znode. Mỗi znode tương đương với một nút trong cây và có một đường dẫn duy nhất trong cây. Nó sử dụng mô hình ghi hết (write-all) để đồng bộ dữ liệu giữa các ensemble. 

=> Việc tăng số lượng znode và ghi dữ liệu tăng thì hiệu suất của zookeeper sẽ giảm chính vì thế nó phù  hợp cho các hệ thống đọc nhiều và ghi ít và các hệ thống yêu cầu tính tin cậy cao.

Etcd: Là một hệ thống lưu trữ phân tán mã nguồn mở được phát triển bởi CoreOs thuộc sở hữu của Red Hat. Etcd được thiết kế để cung cấp các dịch vụ lưu trữ dữ liệu phân tán và đồng bộ hóa trong các môi trường phân tán.

Dữ liệu của etcd được lưu trữ dưới các cặp khóa key-value sử dụng mô hình (write-one) để đồng bộ dữ liệu ngoài ra cũng support mô hình (write-all) để đồng bộ dữ liệu giữa tất cả các node.

=> Hiệu suất ghi của etch sẽ cao hơn nếu dùng (write-one) nhưng bù lại có thể mất mát dữ liệu. Tính gọn nhẹ và khả năng mở rộng dễ dàng thì etcd lại có ưu điểm hơn cũng như tính đọc ghi bằng key-value cũng vượt trội hơn so với zookeeper. Phù hợp với các hệ thống có tính mở rộng cao.

Kết luận: 

=> Nếu tính đáng tin cậy, tính nhất quán tuyệt đối và hiệu suất đọc cao là yêu cầu chính, Zookeeper là một lựa chọn tốt hơn. Ngược lại nếu hệ thống cần  tính sẵn sàng, hỗ trợ mở rộng và giao tiếp đa dạng là yêu cầu chính, etcd có thể là một lựa chọn phù hợp hơn.

Related Posts

Phần 2: cài đặt zookeeper, etcd và cách triển khai Leadership Election (End)

Ở Phần 1: Tìm hiểu về các hệ thống phân tán với zookeeper và etcd chúng ta cũng đã hiểu zookeeper và etcd là gì rồi ở phần…

Tìm hiểu Apache Kafka cùng Spring boot Phần 1

Mở đầu Loạt bài này mình muốn giới thiệu về Apache Kafka từ cơ bản tới chi tiết ứng dụng trong thực tiễn. Hiện nay việc sử…

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x