Hướng dẫn về ZooKeeper: Là gì, Archikiến trúc của Apache ZooKeeper

Hệ thống phân tán là gì?

Ứng dụng phân tán là ứng dụng có thể chạy trên nhiều hệ thống trong một mạng. Nó chạy đồng thời bằng cách phối hợp với nhau để hoàn thành một tác vụ nhất định. Những tác vụ này có thể mất nhiều giờ để hoàn thành bởi bất kỳ ứng dụng không phân tán nào.

Người quản lý vườn thú là gì?

Người quản lý vườn thú Apache là một dịch vụ điều phối phân phối mã nguồn mở giúp quản lý một lượng lớn máy chủ. Quản lý và điều phối trong môi trường phân tán là điều khó khăn. Zookeeper tự động hóa quy trình này và cho phép các nhà phát triển tập trung vào việc xây dựng các tính năng phần mềm thay vì lo lắng về tính chất phân tán của nó.

Zookeeper giúp bạn duy trì thông tin cấu hình, đặt tên, dịch vụ nhóm cho các ứng dụng phân tán. Nó triển khai các giao thức khác nhau trên cụm để ứng dụng không nên tự triển khai. Nó cung cấp một cái nhìn mạch lạc duy nhất của nhiều máy.

Tại sao là Người quản lý vườn thú Apache?

Dưới đây là những lý do quan trọng đằng sau sự phổ biến của Zookeeper:

  • Nó cho phép loại trừ lẫn nhau và hợp tác giữa các quy trình máy chủ
  • Nó đảm bảo rằng ứng dụng của bạn chạy ổn định.
  • Quá trình giao dịch không bao giờ được hoàn thành một phần. Nó được đưa ra trạng thái Thành công hoặc thất bại. Trạng thái phân tán có thể được giữ nguyên nhưng không bao giờ sai
  • Bất kể máy chủ mà nó kết nối đến, khách hàng sẽ có thể thấy cùng một chế độ xem dịch vụ
  • Giúp bạn mã hóa dữ liệu theo bộ quy tắc cụ thể
  • Nó giúp duy trì một không gian tên phân cấp chuẩn tương tự như các tệp và thư mục
  • Máy tính chạy như một hệ thống duy nhất có thể được kết nối cục bộ hoặc địa lý
  • Nó cho phép Tham gia/rời nút trong một cụm và trạng thái nút theo thời gian thực
  • Bạn có thể tăng hiệu suất bằng cách triển khai nhiều máy hơn
  • Nó cho phép bạn bầu một nút làm người lãnh đạo để phối hợp tốt hơn
  • ZooKeeper hoạt động nhanh với khối lượng công việc trong đó việc đọc dữ liệu phổ biến hơn ghi

Vườn bách thú Archikiến trúc: Nó hoạt động như thế nào?

Đây là lời giải thích ngắn gọn về Apache Kiến trúc của người quản lý sở thú:

  • Zookeeper tuân theo Máy khách-Máy chủ Archikiến trúc
  • Tất cả các hệ thống đều lưu trữ một bản sao của dữ liệu
  • Lãnh đạo được bầu khi khởi nghiệp
Archikiến trúc của ZooKeeper
Archikiến trúc của ZooKeeper

Server: Máy chủ gửi xác nhận khi có bất kỳ máy khách nào kết nối. Trong trường hợp không có phản hồi từ máy chủ được kết nối, máy khách sẽ tự động chuyển hướng tin nhắn đến máy chủ khác.

Khách hàng: Máy khách là một trong các nút trong cụm ứng dụng phân tán. Nó giúp bạn truy cập thông tin từ máy chủ. Mỗi máy khách sẽ gửi một tin nhắn đến máy chủ theo định kỳ để giúp máy chủ biết rằng máy khách vẫn còn hoạt động.

Lãnh đạo: Một trong các máy chủ được chỉ định là Người lãnh đạo. Nó cung cấp tất cả thông tin cho khách hàng cũng như xác nhận rằng máy chủ vẫn hoạt động. Nó sẽ thực hiện khôi phục tự động nếu bất kỳ nút nào được kết nối không thành công.

Người theo dõi: Nút máy chủ tuân theo hướng dẫn của người lãnh đạo được gọi là người theo dõi.

  • Yêu cầu đọc của khách hàng được xử lý bởi máy chủ Zookeeper được kết nối tương ứng
  • Các yêu cầu viết của khách hàng được xử lý bởi người đứng đầu Zookeeper.

hòa tấu/Cluster: Nhóm máy chủ Zookeeper được gọi là tập hợp hoặc một Cluster. Bạn có thể sử dụng cơ sở hạ tầng ZooKeeper ở chế độ cụm để hệ thống đạt giá trị tối ưu khi bạn chạy Apache.

Giao diện người dùng web của ZooKeeper: Nếu bạn muốn làm việc với quản lý tài nguyên ZooKeeper, thì bạn cần sử dụng WebUI. Nó cho phép làm việc với ZooKeeper bằng giao diện người dùng web, thay vì sử dụng dòng lệnh. Nó cung cấp khả năng liên lạc nhanh chóng và hiệu quả với ứng dụng ZooKeeper.

Mô hình dữ liệu của người quản lý vườn thú (ZDM)

Bây giờ trong hướng dẫn ZooKeeper này, hãy cùng tìm hiểu về Mô hình dữ liệu Zookeeper. Hình dưới đây giải thích Mô hình dữ liệu vườn thú của Apache:

Mô hình dữ liệu của Zookeeper
Mô hình dữ liệu của người quản lý vườn thú
  • Mô hình dữ liệu của người quản lý vườn thú tuân theo không gian tên Phân cấp trong đó mỗi nút được gọi là ZNode. Nút là một hệ thống nơi cụm chạy.
  • Mỗi ZNode đều có dữ liệu. Có thể có hoặc không có con
  • Đường dẫn ZNode:
    • Canonical, phân tách bằng dấu gạch chéo và tuyệt đối
    • Không sử dụng bất kỳ tài liệu tham khảo tương đối
    • Tên có thể có ký tự Unicode
  • ZNode duy trì cấu trúc thống kê và số phiên bản để thay đổi dữ liệu.

Các loại nút Zookeeper

Có ba loại Znode:

Persistence znode: Loại znode này vẫn tồn tại ngay cả sau khi máy khách tạo znode cụ thể đó bị ngắt kết nối. Theo mặc định, trong trình quản lý vườn thú, tất cả các nút đều liên tục nếu nó không được chỉ định.

Không lâu znode: Loại znode của người quản lý vườn thú này tồn tại cho đến khi khách hàng còn sống. Do đó, khi khách hàng bị ngắt kết nối với người quản lý vườn thú, nó cũng sẽ bị xóa. Hơn nữa, các nút phù du không được phép có con.

Tuần tự znode: Các znode tuần tự có thể là tạm thời hoặc liên tục. Vì vậy, khi một znode mới được tạo dưới dạng znode tuần tự. Bạn có thể chỉ định đường dẫn của znode bằng cách đính kèm số thứ tự gồm 10 chữ số vào tên gốc.

ZDM- Đồng hồ

Zookeeper, sự kiện watch là một trigger một lần được gửi đến máy khách để thiết lập watch. Sự kiện này xảy ra khi dữ liệu từ watch đó thay đổi. ZDM watch cho phép máy khách nhận thông báo khi znode thay đổi. Các hoạt động đọc ZDM như getData(), getChidleren(), exist có tùy chọn thiết lập watch.

Đồng hồ được sắp xếp, thứ tự các sự kiện xem tương ứng với thứ tự các bản cập nhật. Khách hàng sẽ có thể xem sự kiện theo dõi cho znode trước khi xem dữ liệu mới tương ứng với znode đó.

ZDM- Danh sách kiểm soát truy cập

Zookeeper sử dụng ACL để kiểm soát quyền truy cập vào các znode của nó. ACL được tạo thành từ một cặp (Sơ đồ: id, quyền)

Xây dựng trong các sơ đồ ACL:

thế giới: có một id duy nhất, bất cứ ai

auth: Không sử dụng bất kỳ id nào, Nó đại diện cho bất kỳ người dùng được xác thực nào

thông báo: sử dụng tên người dùng: mật khẩu

máy chủ: Cho phép bạn sử dụng tên máy chủ của khách hàng làm nhận dạng id ACL

IP: sử dụng địa chỉ IP máy chủ của máy khách làm nhận dạng id ACL

Quyền ACL:

  • TẠO NÊN
  • ĐỌC
  • VIẾT
  • DELETE
  • QUẢN TRỊ VIÊN

Ví dụ (IP: 192.168.0.0/16, ĐỌC)

ZKS – Trạng thái phiên và thời gian tồn tại

ZKS – Trạng thái phiên
ZKS – Trạng thái phiên
  • Trước khi thực hiện bất kỳ yêu cầu nào, điều quan trọng là máy khách phải thiết lập một phiên với dịch vụ
  • Tất cả các hoạt động khách hàng được gửi đến dịch vụ sẽ tự động được liên kết với một phiên
  • Máy khách có thể kết nối với bất kỳ máy chủ nào trong cụm. Nhưng nó sẽ chỉ kết nối với một máy chủ duy nhất
  • Phiên này cung cấp "đảm bảo đơn hàng". Các yêu cầu trong phiên được thực hiện theo thứ tự FIFO
  • Các trạng thái chính của phiên là 1) Đang kết nối, 2) Đã kết nối 3) Đã đóng 4) Không được kết nối.

Cách cài đặt ZooKeeper

Bước 1) Bấm vào Tiếp tục Đăng ký
Đi đến đây Link và nhấp vào 'Tiếp tục đăng ký'

Cài đặt ZooKeeper

Bước 2) Chấp nhận các Điều khoản & Điều kiện
Trên trang tiếp theo, Chấp nhận Thỏa thuận cấp phép

Cài đặt ZooKeeper

Bước 3) Tin nhắn cảm ơn được hiển thị
Bạn sẽ thấy thông báo sau

Cài đặt ZooKeeper

Bước 4) Bấm vào Tiếp tục cấu hình
Làm mới trang sau 5 phút và tiến hành cấu hình

Cài đặt ZooKeeper

Bước 5) Nhấp vào 'Tiếp tục khởi chạy'
Trong màn hình tiếp theo, Khởi chạy ZooKeeper

Cài đặt ZooKeeper

Bước 6) Xin chúc mừng!
Bạn xong việc rồi!

Ứng dụng Apache ZooKeeper

Apache Zookeeper được sử dụng cho các mục đích sau:

  • Quản lý cấu hình
  • Dịch vụ đặt tên
  • Lựa chọn người lãnh đạo
  • Xếp hàng tin nhắn
  • Quản lý hệ thống thông báo
  • Syncsự hóa thân
  • Phân phối Cluster Quản lý

Các công ty sử dụng Zookeeper

  • Yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Nhược điểm của việc sử dụng Zookeeper

  • Mất dữ liệu có thể xảy ra nếu bạn thêm Máy chủ Zookeeper mới
  • Không cho phép di chuyển đối với người dùng
  • Không cung cấp hỗ trợ về vị trí và nhận thức về Giá đỡ
  • Zookeeper không cho phép bạn giảm số lượng nhóm để tránh mất dữ liệu do tai nạn
  • Bạn không thể chuyển dịch vụ sang mạng máy chủ mà không cài đặt lại đầy đủ khi dịch vụ được triển khai trên mạng ảo
  • Dịch vụ không hỗ trợ thay đổi yêu cầu về số lượng sau khi quá trình triển khai ban đầu kết thúc
  • Có số lượng lớn nút liên quan nên có thể có nhiều hơn một điểm lỗi
  • Tin nhắn có thể bị mất trong mạng truyền thông, cần có phần mềm đặc biệt để khôi phục lại

Tổng kết

  • Ứng dụng phân tán là ứng dụng có thể chạy trên nhiều hệ thống trong mạng
  • Apache Zookeeper là một dịch vụ điều phối phân phối nguồn mở giúp bạn quản lý một lượng lớn máy chủ
  • Nó cho phép loại trừ lẫn nhau và hợp tác giữa các quy trình máy chủ
  • Máy chủ, Khách hàng, Người lãnh đạo, Người theo dõi, Nhóm/Cluster, ZooKeeper WebUI là các thành phần quan trọng của người quản lý vườn thú
  • Ba loại Znode là Kiên trì, Phù du và tuần tự
  • Đồng hồ ZDM là trình kích hoạt một lần được gửi tới khách hàng đã đặt đồng hồ. Nó xảy ra khi dữ liệu từ đồng hồ đó thay đổi
  • Zookeeper Hadoop sử dụng ACL để kiểm soát quyền truy cập vào các znode của nó
  • Quản lý cấu hình, Đặt tên dịch vụ, chọn người lãnh đạo, Xếp hàng tin nhắn, Quản lý hệ thống thông báo, Syncđồng hồ hóa, phân phối Cluster Quản lý, v.v.
  • Yahoo, Facebook, eBay, Twitter, Netflix có một số công ty nổi tiếng đang sử dụng công cụ quản lý vườn thú
  • Hạn chế chính của công cụ là có thể xảy ra mất mát nếu bạn thêm Máy chủ Zookeeper mới