เมื่อเร็ว ๆ นี้ฉันได้ดูZookeeperและสงสัยว่ามีใครใช้มันอยู่หรือไม่และพวกเขาใช้มันเพื่อจัดเก็บอะไรโดยเฉพาะ
กรณีการใช้งานที่พบบ่อยที่สุดคือข้อมูลการกำหนดค่า แต่คุณจัดเก็บข้อมูลประเภทใดและข้อมูลเท่าใด
เมื่อเร็ว ๆ นี้ฉันได้ดูZookeeperและสงสัยว่ามีใครใช้มันอยู่หรือไม่และพวกเขาใช้มันเพื่อจัดเก็บอะไรโดยเฉพาะ
กรณีการใช้งานที่พบบ่อยที่สุดคือข้อมูลการกำหนดค่า แต่คุณจัดเก็บข้อมูลประเภทใดและข้อมูลเท่าใด
คำตอบ:
การใช้งาน Apache CXFของ DOSGi ใช้ zookeeper สำหรับที่เก็บการลงทะเบียนบริการ แต่ละคอนเทนเนอร์มีชุดซอฟต์แวร์แบบกระจาย (dsw) ที่รับฟังเหตุการณ์บริการทั้งหมดและเมื่อสถานะบริการเปลี่ยนแปลงที่มีคุณสมบัติที่ระบุการแจกจ่าย dsw พูดถึงชุดข้อมูลการค้นพบซึ่งในกรณีการใช้งานอ้างอิงใช้ zookeeper เพื่อจัดเก็บบริการเป็นโหนดชั่วคราว อินสแตนซ์อื่น ๆ จะมองหาการเปลี่ยนแปลงโครงสร้างโหนดและลงทะเบียนพร็อกซีในระบบโลคัล ผลลัพธ์สุดท้ายคือคุณสามารถโค้ดเป็น OSGi ธรรมดาและจบลงด้วยการกระจายแบบโปร่งใส
โครงการซอฟต์แวร์ฟรีที่ขับเคลื่อนโดย ZooKeeper:
โครงการ Apache ที่ขับเคลื่อนโดย ZooKeeper:
ที่มา: https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
HBase ใช้ Zookeeper ในการประสานงานกิจกรรมที่ "โหนดหัว" รับผิดชอบก่อนเวอร์ชันปัจจุบัน การย้ายไปใช้ Zookeeper หมายความว่าการควบคุมส่วนกลางไม่ใช่จุดเดียวของความล้มเหลวอีกต่อไป
Zookeeper มีความหลากหลายมาก นี่คือตัวอย่างของการใช้เพื่อสร้างคิวพร้อมกันแบบกระจาย:
http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/
คุณยังสามารถใช้เพื่อสร้างการล็อกทรัพยากร ฯลฯ ในระบบแบบกระจาย
คำถามเก่า แต่เนื่องจากหน้านี้ปรากฏขึ้นเป็นอันดับแรกในการค้นหา Google สำหรับกรณีการใช้งาน Zookeeper ฉันจึงคิดว่าเป็นการดีที่สุดที่จะให้รายชื่อที่อัปเดต
Norbertเป็นตัวอย่างที่ดีจากระบบการผลิตที่ปรับขนาดได้ โดยทั่วไปแล้วจะรวม Netty, Protocol Buffers และ Zookeeper ไว้ในเฟรมเวิร์กที่มีน้ำหนักเบาสำหรับการเรียกใช้บริการคลัสเตอร์ Protocol Buffers ใช้เพื่อระบุ API บริการของคุณ Netty ใช้งาน abstractions ชั้นการขนส่งและ Zookeeper เป็นบริการค้นหาที่ยอมรับข้อผิดพลาด
ทุกครั้งที่เริ่มต้นอินสแตนซ์บริการ Norbert จะลงทะเบียนอินสแตนซ์ที่พร้อมใช้งานของประเภทบริการเฉพาะ จากมุมมองของการนำไปใช้งานจะสร้างต้นไม้ Zookeeper สองต้น:
คุณสมบัติที่สำคัญที่สุดสำหรับแต่ละโหนดคือ url ที่จะใช้เชื่อมต่อกับอินสแตนซ์บริการที่เกี่ยวข้อง มันเปิดใช้งานการทำโหลดบาลานซ์ฝั่งไคลเอ็นต์ - ไคลเอนต์นอร์เบิร์ตพบรายการ URL สำหรับชื่อบริการที่กำหนดและพยายามเชื่อมต่อกับหนึ่งในนั้นเป็นคำสั่งบางอย่าง (เช่นแบบวนรอบหรือแบบสุ่ม)
มีบทความดีๆZooKeeper - ราชาแห่งการประสานงานเกี่ยวกับ ZooKeeper ที่ Elastic Cloud
ตัวอย่างเช่นที่ Found เราใช้ ZooKeeper อย่างกว้างขวางสำหรับการค้นพบการจัดสรรทรัพยากรการเลือกตั้งผู้นำและการแจ้งเตือนที่มีลำดับความสำคัญสูง ในบทความนี้เราจะแนะนำคุณให้รู้จักกับราชาแห่งการประสานงานและดูอย่างใกล้ชิดว่าเราใช้ ZooKeeper ที่ Found อย่างไร
Solr นอกจากนี้ยังมีการทำงานที่จะบูรณาการ ZooKeeper ที่นี่คุณจะเห็นว่าพวกเขาใช้สำหรับการกำหนดค่าแบบไดนามิกการชาร์ดการกำจัด SPOF (การเลือกตั้งหลัก / ทาส) การปรับสมดุล ฯลฯ
พายุใช้ Zookeeper เพื่อจัดเก็บสถานะทั้งหมดเพื่อให้สามารถกู้คืนจากการหยุดทำงานในบริการส่วนประกอบใด ๆ (แบบกระจาย)
สิ่งนี้ทำให้บริการคอมโพเนนต์ไม่มีสถานะและเพียงแค่ดาวน์โหลดหรือซิงค์กับเซิร์ฟเวอร์ Zookeeper เมื่อต้องการข้อมูลการกำหนดค่า หากคุณเคยต้องกู้คืนเซิร์ฟเวอร์ที่ใช้งานจริงคุณจะรู้ว่ามันน่าปวดหัวขนาดไหน!
ผู้บริโภคคิวคาฟคาสามารถใช้ Zookeeper เพื่อจัดเก็บข้อมูล (เครื่องหมายน้ำสูง) เกี่ยวกับสิ่งที่บริโภคจากคิว
ในกรณีของฉันเรากำลังจัดเก็บไฟล์คอนฟิกูเรชันใน zookeeper ensemble สำหรับการใช้งานคลัสเตอร์ เรากำลังใช้สคีมาลีดเดอร์ -> ผู้ติดตาม ดังนั้นเมื่อคนดูแลสวนสัตว์คนหนึ่งลงมาเราจะเปลี่ยนไปใช้อีกคนหนึ่ง (โหมดจำลอง)
Zookeeper ถูกใช้สำหรับหลาย ๆ อย่างนอกเหนือจากการกำหนดค่า นี่คือรายการอย่างเป็นทางการของการใช้งานดั้งเดิมแบบกระจายโดยใช้ Zookeeper
Neo4j ใช้ Zookeeper เซิร์ฟเวอร์องค์กร High Availability! http://docs.neo4j.org/chunked/milestone/ha.html
datomicใช้ apache zookeeper เพื่อจัดการการจัดเก็บข้อมูลตาม riak
เนื่องจาก Riak รองรับเฉพาะความสอดคล้องในที่สุดในขณะนี้ระบบ Datomic ที่ทำงานบน Riak ยังใช้ Apache ZooKeeper ซึ่งเป็นบริการประสานงานที่พร้อมใช้งานสูง Datomic ใช้ ZooKeeper สำหรับการประสานงานล้มเหลวของทรานแซคเตอร์และสำหรับคีย์จำนวนหนึ่งต่อฐานข้อมูลที่ต้องอัปเดตด้วย CAS ที่มา: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html
นี่คือรายละเอียดบางส่วนเกี่ยวกับวิธีที่ HBase ใช้ ZooKeeperรวมถึงข้อมูลเกี่ยวกับวิธีที่พวกเขาตั้งใจจะใช้ในอนาคต โดยทั่วไปจะใช้เพื่อกำจัด SPOF บนเซิร์ฟเวอร์ภูมิภาคผ่านการเลือกตั้งผู้นำที่ดำเนินการโดยใช้ ZooKeeper