Redis vs Zookeeper


25

ดูเหมือนว่าโง่เมื่อเปรียบเทียบเซิร์ฟเวอร์ทั้งสองนี้เนื่องจากพวกเขามีความหมายที่แตกต่างกันมาก แต่ถ้าคุณคิดเกี่ยวกับมันพวกเขาสามารถทำสิ่งที่คล้ายกันมากมาย: เก็บข้อมูลการกำหนดค่าการล็อคแบบกระจายการเข้าคิว ฯลฯ

ฉันมีตัวอย่างของRedisที่ฉันใช้กับสิ่งที่เกี่ยวข้องกับการผลิตบางอย่าง แต่ต้องการทำการซิงโครไนซ์อย่างง่ายระหว่างเซิร์ฟเวอร์ อะไรZookeeperให้ฉันที่ Redis จะไม่?


Redis ไม่ได้ (โดยเฉพาะ) สำหรับการกำหนดค่า เป็นผลิตภัณฑ์ที่แตกต่างกันมาก
Rein Henrichs

4
ทำไม? เราใช้ PostgreSQL เพื่อกำหนดค่า อะไรทำให้การกำหนดค่าแตกต่างจากตรรกะทางธุรกิจ
Dmitry Negoda

คำตอบ:


26

เราใช้ทั้ง Redis และ Zookeeper ในที่ทำงานดังนั้นนี่เป็นประสบการณ์มือแรก

Redis เร็ว เร็วจริงๆ นอกจากนี้ยังสอดคล้องกันในทันทีดังนั้นจึงเหมาะสำหรับชุดข้อมูลที่เคลื่อนไหวเร็ว ข้อเสียคือการทำงานบนเซิร์ฟเวอร์หนึ่งถ้ามันล้มเหลวแล้วคุณจะสูญเสียการเข้าถึงการเขียนจนกว่าเซิร์ฟเวอร์อื่นจะเกิดขึ้น การเปลี่ยนเซิร์ฟเวอร์เป็นการดำเนินการด้วยตนเองเว้นแต่คุณจะทำเองโดยอัตโนมัติ (คุณยังคงสามารถเข้าถึงการอ่านข้อมูลของคุณหากคุณกำหนดค่าอินสแตนซ์ทาส)

Zookeeper ยังมีคุณสมบัติที่สอดคล้องกันในทันที ไม่ใช่ครึ่งเร็ว แต่จะกู้คืนโดยอัตโนมัติ (หากเป็นไปได้) เมื่อพบกับความล้มเหลวดังนั้นหากคุณต้องการเข้าถึงการเขียนอย่างต่อเนื่องแม้ว่าเซิร์ฟเวอร์ของคุณจะล้มเหลวคุณก็ต้องการใช้ Zookeeper

คำแนะนำของฉันคือใช้ zookeeper สำหรับการประสานงาน: การติดตามว่าโหนดใดที่ทำงานอยู่การเลือกผู้นำในกลุ่ม ฯลฯ ใช้ redis สำหรับชุดข้อมูลที่ต้องการการเขียนที่รวดเร็ว เข้าชมเคาน์เตอร์สำหรับหน้าเว็บเช่น


ฉันกำลังทำงานในโครงการและกำลังคิดว่าผู้ดูแลสวนสัตว์จะเป็นหนทางที่จะไป หากคุณมีข้อมูลเพิ่มเติมใด ๆ ที่คุณสามารถแบ่งปันที่ไหนสักแห่งจะยอดเยี่ยม เรากำลังติดต่อกับการแลกเปลี่ยนโฆษณาหลายรายการและติดตามเหตุการณ์ประมาณ 4 พันล้านรายการต่อวัน เรากำลังมองหาการออกแบบเซิร์ฟเวอร์ส่วนหน้าของเราและกำลังดู zookeeper เพื่อเก็บข้อมูลเกี่ยวกับจำนวนการติดตามน้ำหนักที่น้อยที่สุด ฯลฯ ฉันสามารถยืนยันความเร็วของ redis แต่ประสบการณ์ของฉันมันไม่มีโครงสร้างแบบลำดับชั้นที่เราต้องการใช้กับ zookeeper ท่าทางของคุณเปลี่ยนไปใน 3 ปีตั้งแต่ปี 2012 หรือไม่?
Chris Hinshaw

@ChrisHinshaw ฉันกำลังเผชิญกับปัญหาเดียวกัน พิจารณาทั้ง Redis และ Zookeeper สำหรับตัวจัดการรีซอร์สแบบกระจายซึ่งต้องการทั้งการล็อกแบบกระจายและ perfomance คุณมีข้อเสนอแนะหรือไม่?
Rafael Saraiva

ตอนนี้ฉันกำลังเขียนเรื่องนี้อีกครั้ง ฉันไปด้วย redis เนื่องจากความเร็ว มีปัญหาเกี่ยวกับประสิทธิภาพการทำงานกับ zookeeper แต่ฉันไม่จำปัญหาได้ เรากำลังจัดเก็บข้อมูลชุดเวลาตามตัวชี้วัดและการนับ ฉันใช้สคริปต์ lua เพื่ออัปเดตการนับสำหรับแต่ละช่วงเวลาเพื่อ จำกัด จำนวนการโทร ตัวอย่างคือเรามีแฮ็ชคีย์สำหรับคำขอราคาเสนอในรูปแบบของ br: 1: 2: 3: 4 โดยที่ตัวเลขแสดงลำดับชั้นของเมทริก: เอเจนซี: ผู้ลงโฆษณา: แคมเปญ: โฆษณา ในแฮชค่าคือปี: เดือน: วัน: ชั่วโมง: นาที ในสคริปต์ lua ของฉันฉันจะอัปเดตการนับสำหรับแต่ละ
Chris Hinshaw

ของชิ้นเวลา ดังนั้นสคริปต์ของฉันจึงแยก y: m: d: h ด้วยเครื่องหมายจุดคู่และอัปเดตยอดรวมสำหรับแต่ละชิ้น วิธีนี้ฉันสามารถใช้ hscan หรือดึงรายการของคีย์สำหรับช่วงเวลาใดก็ได้ สิ่งที่สำคัญที่สุดในสีแดงคือการสร้างแบบจำลองสำหรับคีย์ ในบางจุดในอนาคตฉันอยากจะย้ายสิ่งเหล่านี้ทั้งหมดเพื่อจุดประกาย rdd กับร้านคาสซานดรา ถ้าฉันมีเวลาฉันจะใช้ประกายการสตรีมเพื่อเปรียบเทียบว่า ฉันคิดว่ามันน่าจะเทียบเท่ากับ Redis และให้ความยืดหยุ่นในการวิเคราะห์
Chris Hinshaw
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.