Sử dụng Zookeeper trong thế giới thực [đã đóng cửa]


122

Tôi đã xem Zookeeper gần đây và tự hỏi liệu có ai đang sử dụng nó hiện tại không và họ đang sử dụng nó để lưu trữ cụ thể là gì.

Trường hợp sử dụng phổ biến nhất là dành cho thông tin cấu hình, nhưng bạn đang lưu trữ loại dữ liệu nào và bao nhiêu dữ liệu?


3
Nó thuộc nhóm công nghệ Hadoop, có một trường hợp sử dụng từ Yahoo ở đây khá tốt - developer.yahoo.net/blogs/hadoop/2009/05/…
Jon

Tôi không biết chi tiết cụ thể về cách nó được sử dụng, nhưng tôi biết rằng phiên bản mới nhất của HBase (một triển khai BigTable mã nguồn mở) sử dụng ZooKeeper.
Leo P

10
Câu hỏi này có nhiều phiếu ủng hộ hơn tất cả các câu trả lời cộng lại. Zookeeper cần một wiki usecase tốt hơn.
mixdev

1
Kiểm tra cách Netflix sử dụng nó. github.com/Netflix/curator/wiki/Recipes Curator là thư viện trình bao bọc của Netflix dành cho ZK.
eSniff

Kiểm tra bài viết này: stackextend.com/zookeeper/…
Mouad EL Fakir

Câu trả lời:


13

Việc triển khai Apache CXF của DOSGi sử dụng Zookeeper cho kho đăng ký dịch vụ của nó. Các vùng chứa riêng lẻ có một gói phần mềm phân phối (dsw) lắng nghe tất cả các sự kiện dịch vụ và khi trạng thái dịch vụ thay đổi có một thuộc tính chỉ ra phân phối. Dsw nói chuyện với gói khám phá, trong trường hợp triển khai tham chiếu, sử dụng người giữ vườn thú để lưu trữ dịch vụ dưới dạng các nút tạm thời. Các trường hợp khác sẽ tìm kiếm các thay đổi đối với cấu trúc nút và đăng ký proxy trên hệ thống cục bộ của chúng. Kết quả cuối cùng là bạn có thể viết mã thành OSGi đơn giản và kết thúc với phân phối minh bạch.


17

17

HBase sử dụng Zookeeper để điều phối các hoạt động mà "nút đầu" của nó chịu trách nhiệm trước phiên bản hiện tại. Việc chuyển sang sử dụng Zookeeper có nghĩa là điều khiển trung tâm không còn là một điểm thất bại.

Zookeeper rất linh hoạt; đây là một ví dụ về việc sử dụng nó để tạo một hàng đợi đồng thời phân tán:

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

Tất nhiên, bạn cũng có thể sử dụng nó để tạo khóa tài nguyên, v.v. trong hệ thống phân tán.



10

Norbert là một ví dụ điển hình từ hệ thống sản xuất có khả năng mở rộng. Tôi nói chung, nó tích hợp Netty, Bộ đệm giao thức và Zookeeper vào một khung công tác nhẹ để chạy các dịch vụ theo nhóm. Bộ đệm giao thức được sử dụng để chỉ định API dịch vụ của bạn, Netty triển khai các trừu tượng hóa lớp truyền tải và Zookeeper về cơ bản là một dịch vụ khám phá có khả năng chịu lỗi.

Mỗi khi một cá thể dịch vụ được khởi động, Norbert sẽ đăng ký nó như một thể hiện có sẵn của một loại dịch vụ cụ thể. Từ góc độ triển khai, nó tạo ra hai cây Zookeeper:

  • "/ ServiceName / thành viên" liệt kê tất cả các phiên bản đã biết của dịch vụ
  • "/ ServiceName / available" liệt kê các phiên bản hiện có của dịch vụ

Thuộc tính quan trọng nhất cho mỗi nút là url sử dụng để kết nối với phiên bản dịch vụ tương ứng. Nó cho phép cân bằng tải phía máy khách - một máy khách Norbert tìm thấy danh sách các url cho một tên dịch vụ nhất định và cố gắng kết nối với một trong số chúng theo thứ tự nào đó (ví dụ: round-robin hoặc random).


6

Có một bài báo hay ZooKeeper - Vua điều phối về ZooKeeper tại Elastic Cloud.

Ví dụ: tại Found, chúng tôi sử dụng ZooKeeper rộng rãi để khám phá, phân bổ tài nguyên, bầu cử lãnh đạo và các thông báo có mức độ ưu tiên cao. Trong bài viết này, chúng tôi sẽ giới thiệu cho bạn về Vua điều phối này và xem xét kỹ cách chúng tôi sử dụng ZooKeeper tại Found



3
  • Storm được sử dụng bởi một số công ty (Twitter và Groupon là hai trong số những công ty được biết đến nhiều hơn) và dựa vào Zookeeper.
  • Kafka được Linkedin sử dụng và dựa vào Zookeeper.

Storm sử dụng Zookeeper để lưu trữ tất cả trạng thái để nó có thể phục hồi sau khi ngừng hoạt động trong bất kỳ dịch vụ thành phần (phân tán) nào của nó.

Điều này cho phép các dịch vụ thành phần không có trạng thái và chỉ cần tải xuống hoặc đồng bộ hóa với máy chủ Zookeeper khi cần dữ liệu cấu hình. Nếu bạn đã từng phải khôi phục một máy chủ sản xuất, bạn sẽ biết điều này có thể gây đau đầu như thế nào!

Người tiêu dùng trong hàng đợi Kafka có thể sử dụng Zookeeper để lưu trữ thông tin (mốc nước cao) về những gì đã được tiêu thụ từ hàng đợi.


2

Trong trường hợp của tôi, chúng tôi đang lưu trữ các tệp cấu hình trong nhóm người giữ vườn thú để sử dụng cụm. Chúng tôi đang sử dụng lược đồ leader -> follower. Vì vậy, khi một người trông coi sở thú xuống, chúng tôi được chuyển sang một người khác (chế độ sao chép)




1

datomic sử dụng apache Zookeeper để quản lý lưu trữ dữ liệu dựa trên riak .

Vì Riak chỉ hỗ trợ tính nhất quán cuối cùng tại thời điểm này, hệ thống Datomic chạy trên Riak cũng sử dụng Apache ZooKeeper, một dịch vụ điều phối rất sẵn có. Datomic sử dụng ZooKeeper để điều phối chuyển đổi dự phòng giao dịch viên và cho một số ít khóa trên mỗi cơ sở dữ liệu cần được cập nhật với CAS. nguồn: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html


0

Dưới đây là một số chi tiết về cách HBase sử dụng ZooKeeper , bao gồm thông tin về cách họ dự định sử dụng nó trong tương lai. Nói chung, họ sử dụng nó để loại bỏ SPOF trên các máy chủ khu vực thông qua bầu cử Lãnh đạo được thực hiện bằng ZooKeeper.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.