Redis Sentinel เทียบกับการทำคลัสเตอร์


111

ฉันเข้าใจว่า redis sentinel เป็นวิธีการกำหนดค่า HA (ความพร้อมใช้งานสูง) ระหว่างอินสแตนซ์ Redis หลายรายการ อย่างที่ฉันเห็นมีหนึ่งอินสแตนซ์ redis ที่ให้บริการตามคำขอของลูกค้าในช่วงเวลาใดเวลาหนึ่ง มีเซิร์ฟเวอร์เพิ่มเติมอีกสองเซิร์ฟเวอร์อยู่ในโหมดสแตนด์บาย (กำลังรอให้เกิดความล้มเหลวขึ้นดังนั้นหนึ่งในนั้นจึงสามารถทำงานได้อีกครั้ง)

  • เสียทรัพยากรหรือเปล่า
  • มีวิธีที่ดีกว่าในการใช้ทรัพยากรที่มีอยู่อย่างเต็มที่หรือไม่
  • Redis จัดกลุ่มเป็นทางเลือกแทน Redis Sentinel หรือไม่?

ฉันได้ค้นหาเอกสาร redis สำหรับSentinelและclusteringแล้วใครมีประสบการณ์ช่วยอธิบายหน่อยได้ไหม

การกำหนดค่า Master Slave ใน Redis sentinel - ก่อนที่จะล้มเหลว

อาจารย์ล้มเหลวและทาสเริ่มลงมือ

อัปเดต

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

สถานการณ์เฟลโอเวอร์

ตามหลักการแล้วฉันคิดว่าเมื่อเซิร์ฟเวอร์ Master cache ล้มเหลว (กระบวนการ Redis หยุดทำงานหรือเครื่องขัดข้อง) แอปพลิเคชันใน Jboss จำเป็นต้องเชื่อมต่อกับเซิร์ฟเวอร์แคชของ Slave ฉันจะกำหนดค่าเซิร์ฟเวอร์ redis เพื่อให้บรรลุสิ่งนี้ได้อย่างไร

+--------+          +--------+
| Master  |---------| Slave  |
|         |         |        |
+--------+          +--------+

Configuration: quorum = 1

2
สิ่งนี้สามารถช่วยได้เช่นกัน - fnordig.de/2015/06/01/redis-sentinel-and-redis-cluster
Itamar Haber

คำตอบ:


119

ก่อนอื่นให้พูดคุยยาม

Sentinel จัดการเฟลโอเวอร์ไม่ได้กำหนดค่า Redis สำหรับ HA นับเป็นความแตกต่างที่สำคัญ ประการที่สองไดอะแกรมที่คุณโพสต์เป็นการตั้งค่าที่ไม่ถูกต้องคุณไม่ต้องการเรียกใช้ Sentinel บนโหนดเดียวกับโหนด Redis ที่กำลังจัดการ เมื่อคุณสูญเสียโฮสต์นั้นคุณจะเสียทั้งสองอย่าง

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

อีกเหตุผลหนึ่งในการเรียกใช้ทาสสองคนคือการแยกการอ่าน อีกครั้งถ้าคุณต้องการมันก็ไม่เป็นการสูญเปล่า

เกี่ยวกับ "มีวิธีที่ดีกว่าในการใช้ทรัพยากรที่มีอยู่อย่างเต็มที่หรือไม่" เราไม่สามารถตอบได้ว่ามันขึ้นอยู่กับสถานการณ์และรหัสเฉพาะของคุณมากเกินไป ที่กล่าวว่าหากปริมาณข้อมูลที่จะจัดเก็บ "น้อย" และอัตราคำสั่งไม่สูงเกินไปโปรดจำไว้ว่าคุณไม่จำเป็นต้องอุทิศโฮสต์ให้กับ Redis

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

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

คำถามที่คุณถามอาจกว้างเกินไปและอิงตามความคิดเห็นที่จะอยู่รอดตามที่เขียนไว้ หากคุณมีกรณี / ปัญหาเฉพาะที่คุณกำลังดำเนินการอยู่โปรดอัปเดตด้วยเพื่อให้เราสามารถให้ความช่วยเหลือและข้อมูลที่เฉพาะเจาะจงได้

อัปเดตเฉพาะ:

สำหรับการจัดการความล้มเหลวที่เหมาะสมในสถานการณ์ของคุณฉันจะใช้ทหารรักษาการณ์ 3 นายคนหนึ่งทำงานบนเซิร์ฟเวอร์ JBoss ของคุณ หากคุณมีโหนด JBoss 3 โหนดให้ใช้โหนดต่อโหนด ฉันมี Redis pod (master + slave) บนโหนดที่แยกจากกันและปล่อยให้ Sentinel จัดการเฟลโอเวอร์

จากนั้นเป็นเรื่องของการเดินสาย JBoss / Jedis เพื่อใช้ Sentinel สำหรับข้อมูลและการจัดการการเชื่อมต่อ เนื่องจากฉันไม่ได้ใช้การค้นหาด่วนเหล่านั้นปรากฎว่า Jedis มีการสนับสนุนคุณเพียงแค่ต้องกำหนดค่าให้ถูกต้อง ตัวอย่างบางส่วนที่ฉันพบคือLooking for an example of Jedis with Sentinelและhttps://github.com/xetorthio/jedis/issues/725ซึ่งพูดถึงJedisSentinelPoolการเป็นเส้นทางในการใช้สระว่ายน้ำ

เมื่อ Sentinel ดำเนินการเฟลโอเวอร์ไคลเอนต์จะถูกตัดการเชื่อมต่อและเจดิสจะ (ควร?) จัดการการเชื่อมต่อใหม่โดยถาม Sentinels ว่าใครคือมาสเตอร์คนปัจจุบัน


6
สวัสดี @ The-Real-Bill คุณช่วยอธิบายรายละเอียดเกี่ยวกับ "Sentinel จัดการความล้มเหลวได้โดยไม่ได้กำหนดค่า Redis สำหรับ HA" ในเอกสารอย่างเป็นทางการ ( redis.io/topics/sentinel ) ระบุว่า "Redis Sentinel มีความพร้อมใช้งานสูงสำหรับ Redis"
Xiao Peng - ZenUML.com

1
HA Redis ต้องการหลายชิ้นเพื่อเป็น HA Sentinel จัดการเพียงชิ้นเดียวเท่านั้น: เฟลโอเวอร์ ไม่ได้ตั้งค่าการจำลองแบบและไม่ได้จัดเตรียมและจุดสิ้นสุด HA ให้การค้นพบบริการเพื่อให้ลูกค้าสามารถทราบว่าจะพูดคุยกับผู้เชี่ยวชาญได้ที่ไหน สิ่งนี้ไม่ได้กำหนดค่า Redis สำหรับ HA
The Real Bill

5
การอ้างสิทธิ์ในที่นี้ไม่เป็นความจริง - redis with sentinel DOES จัดการการจำลองแบบจากโหนดหลักไปจนถึงสแตนด์บาย ในกรณีล้มเหลวต้นแบบจะถูกเปลี่ยนและการจำลองย้ายไปยังโหนดที่เหลือจากต้นแบบใหม่ โหนดที่กู้คืนจะกลายเป็นไซต์รองเป็นเป้าหมายสำหรับการจำลองแบบ ส่วนที่ขาดหายไปคือลูกค้าจำเป็นต้องพูดคุยกับ Sentinel เพื่อรับข้อมูลเกี่ยวกับการเปลี่ยนแปลงสถานะ Sentinel จึงเป็นโซลูชันที่มีความพร้อมใช้งานสูง
JasonG

6
ฉันบอกว่ามันไม่ได้ตั้งค่าการจำลองแบบและนี่เป็นเรื่องจริง คุณกำหนดค่าการจำลองแบบ Redis โดยการตั้งค่าทาส จากนั้นทหารยามจะค้นพบและจัดการความล้มเหลว Sentinel ไม่สามารถตั้งค่าการจำลองแบบได้เนื่องจากจะจัดการเฉพาะการตั้งค่าการจำลองแบบที่มีอยู่เท่านั้น ลองมัน. เปิดเซิร์ฟเวอร์ Redis สองเซิร์ฟเวอร์ที่เป็นอิสระและรับ Sentinel เพื่อสร้างทาสหนึ่งไปยังอีกเครื่องหนึ่งโดยไม่ต้องใช้ทาสโดยตรง มันไม่ได้ผล และไม่สามารถเพิ่มทาสใหม่ได้ ดังนั้นมันจึง มันตั้งค่าการจำลองแบบ
บิลตัวจริง

35

คำแนะนำทุกที่คือการเริ่มต้นด้วยอินสแตนซ์จำนวนคี่ไม่ใช่ใช้สองหรือหลายของสอง นั่นได้รับการแก้ไข แต่ให้แก้ไขจุดอื่น ๆ

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

ประการที่สองการเรียกใช้ Sentinel บนเครื่องเดียวกับอินสแตนซ์ redis เป้าหมายไม่ใช่ "การตั้งค่าที่ไม่ถูกต้อง": หากคุณสูญเสียยามหรืออินสแตนซ์ redis ของคุณหรือทั้งเครื่องผลลัพธ์จะเหมือนกัน นั่นอาจเป็นเหตุผลว่าทำไมทุกตัวอย่างของการกำหนดค่าดังกล่าวจึงแสดงให้เห็นว่าทั้งสองทำงานบนเครื่องเดียวกัน


6
ที่จริงดูเหมือนจะมีข้อผิดพลาดที่ Sentinel จะล้มเหลวในการเริ่มต้นการเลือกตั้งในการตั้งค่า "sentinel-on-the-instance" และฉันเคยเห็นมันหลายครั้งที่นี่ใน ML และในการให้คำปรึกษารายบุคคล การย้ายทหารรักษาการณ์ออกจากเซิร์ฟเวอร์ Redis จะแก้ไขทุกครั้ง ดังนั้นใช่การทำแบบนั้นเป็นการตั้งค่าที่ไม่ดีซึ่งจะทำให้คุณล้มเหลวในช่วงเวลาที่คุณต้องการ ตัวอย่างแสดงให้เห็นอย่างนั้นเนื่องจากไม่ได้เขียนโดยผู้ที่มีประสบการณ์ในการปฏิบัติงานมากและง่ายกว่า
บิลตัวจริง

3
นี่คือข้อบกพร่องใดมีรายงานข้อบกพร่องหรือไม่ รู้ไหมว่ายังมีอยู่
sivann

มีปัญหาที่คล้ายกันในการวางทหารรักษาการณ์บนเครื่องแอปพลิเคชันหรือไม่?
OrangeDog

31

นี่ไม่ใช่คำตอบโดยตรงสำหรับคำถามของคุณ แต่คิดว่ามันเป็นข้อมูลที่มีประโยชน์สำหรับมือใหม่ Redis เช่นฉัน นอกจากนี้คำถามนี้ยังปรากฏเป็นลิงก์แรกใน Google เมื่อค้นหา "Redis cluster vs sentinel"

Redis Sentinel เป็นชื่อของโซลูชันความพร้อมใช้งานระดับสูงของ Redis ... ไม่มีส่วนเกี่ยวข้องใด ๆ กับ Redis Cluster และมีวัตถุประสงค์เพื่อให้ผู้ที่ไม่ต้องการใช้ Redis Cluster แต่เป็นเพียงวิธีเดียวในการดำเนินการล้มเหลวโดยอัตโนมัติเมื่อผู้เชี่ยวชาญ อินสแตนซ์ทำงานไม่ถูกต้อง

นำมาจากแบบร่างการออกแบบ Redis Sentinel 1.3

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


10

นี่คือความเข้าใจของฉันหลังจากกระแทกหัวตลอดทั้งเอกสาร

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

คลัสเตอร์ Redis เป็นโซลูชันแบบกระจายมากหรือน้อยซึ่งทำงานอยู่บนเศษ ข้อมูลแต่ละส่วนจะถูกแจกจ่ายระหว่างโหนดหลักและโหนดทาส ปัจจัยการจำลองแบบขั้นต่ำเป็น 2 ช่วยให้มั่นใจได้ว่าคุณมีส่วนแบ่งที่ใช้งานอยู่สองชิ้นในมาสเตอร์และทาส หากคุณรู้จัก Sharding ใน Mongo หรือ Elasticsearch ก็จะสามารถติดตามได้ง่าย


6

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

เมื่อใช้ Redis ในโหมดอินสแตนซ์เดียวซึ่งเซิร์ฟเวอร์ Redis เดียวจัดการฐานข้อมูลที่ไม่ได้แบ่งพาร์ติชันทั้งหมด Redis Sentinel จะใช้เพื่อจัดการความพร้อมใช้งาน

นอกจากนี้ยังกล่าวว่า:

คลัสเตอร์ Redis ซึ่งข้อมูลถูกแบ่งระหว่างอินสแตนซ์หลักหลายตัวจัดการความพร้อมใช้งานด้วยตัวเองและไม่ต้องใช้ส่วนประกอบเพิ่มเติม

ดังนั้นจึงสามารถมั่นใจได้ใน 2 สถานการณ์ที่กล่าวถึง หวังว่านี่จะคลายข้อสงสัย กลุ่ม Redis และทหารรักษาการณ์ไม่ใช่ทางเลือกซึ่งกันและกัน ใช้เพื่อให้แน่ใจว่า HA ในกรณีต่างๆของต้นแบบที่แบ่งพาร์ติชันหรือไม่แบ่งพาร์ติชัน


4

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

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

การทำคลัสเตอร์จะช่วยให้คุณสามารถปรับขนาดในแนวนอนและช่วยรองรับการโหลดสูงได้ การตั้งค่าและกำหนดค่าล่วงหน้าจะใช้เวลาเล็กน้อย

มีทางแยกโอเพนซอร์สของ Redis ซึ่งก็คือ“ KeyDB” ที่ขจัดความจำเป็นในการใช้โหนด sentinel ด้วยตัวเลือกแบบจำลองที่ใช้งานอยู่ สิ่งนี้ช่วยให้โหนดจำลองยอมรับการอ่านและเขียน เมื่อเกิดความล้มเหลว HAProxy จะหยุดอ่าน / เขียนด้วยโหนดที่ล้มเหลวและใช้โหนดที่ใช้งานอยู่ที่เหลือซึ่งซิงค์อยู่แล้ว การประทับเวลาช่วยให้โหนดที่ล้มเหลวสามารถเข้าร่วมใหม่โดยอัตโนมัติและซิงค์ใหม่โดยไม่สูญเสียข้อมูลเมื่อกลับมาออนไลน์ การตั้งค่าทำได้ง่ายและสำหรับการรับส่งข้อมูลที่สูงขึ้นคุณไม่จำเป็นต้องตั้งค่าล่วงหน้าพิเศษเพื่อกำหนดทิศทางการอ่านไปยังโหนดจำลองและอ่าน / เขียนไปยังต้นแบบ ดูตัวอย่างการจำลองแบบที่ใช้งานอยู่ที่นี่ดูตัวอย่างของการจำลองแบบการใช้งานที่นี่KeyDB ยังเป็นแบบมัลติเธรดซึ่งสำหรับบางแอปพลิเคชันอาจเป็นทางเลือกในการทำคลัสเตอร์ แต่จริงๆแล้วขึ้นอยู่กับความต้องการของคุณ

นอกจากนี้ยังมีตัวอย่างของการตั้งค่าการจัดกลุ่มด้วยตนเองและมีเครื่องมือในการสร้างคลัสเตอร์ นี่เป็นขั้นตอนเดียวกันหากคุณใช้ Redis (แทนที่ 'keydb' ด้วย 'redis' ในคำแนะนำ)


1

ข้อมูลเพิ่มเติมสำหรับคำตอบข้างต้น

คลัสเตอร์ Redis

  • จุดประสงค์หลักอย่างหนึ่งของคลัสเตอร์ Redis คือการกระจายโหลดข้อมูลของคุณอย่างเท่าเทียมกัน / สม่ำเสมอโดยการชาร์ด

  • Redis Cluster ไม่ได้ใช้การแฮชที่สอดคล้องกัน แต่เป็นรูปแบบการชาร์ดที่แตกต่างกันโดยที่ทุกคีย์เป็นส่วนหนึ่งของแนวคิดที่เรียกว่าแฮชสล็อต

  • มีสล็อตแฮช 16384 สล็อตใน Redis Cluster ทุกโหนดใน Redis Cluster รับผิดชอบเซตย่อยของสล็อตแฮชตัวอย่างเช่นคุณอาจมีคลัสเตอร์ที่มี 3 โหนดโดยที่:

    โหนด A มีช่องแฮชตั้งแต่ 0 ถึง 5500 โหนด B มีช่องแฮชตั้งแต่ 5501 ถึง 11000 โหนด C มีช่องแฮชตั้งแต่ 11001 ถึง 16383

ทำให้เราสามารถเพิ่มและลบโหนดในคลัสเตอร์ได้อย่างง่ายดาย ตัวอย่างเช่นหากเราต้องการเพิ่มโหนด D ใหม่เราจำเป็นต้องย้ายช่องแฮชจากโหนด A, B, C ไปยัง D

  • คลัสเตอร์ Redis รองรับโครงสร้าง Master-Slave คุณสามารถสร้าง Slave A1, B1, C2 พร้อมกับ master A, B, C เมื่อสร้างคลัสเตอร์ดังนั้นเมื่อ Master B ลงไป Slave B1 จะได้รับการเลื่อนขั้นเป็น master

คุณไม่จำเป็นต้องจัดการเฟลโอเวอร์เพิ่มเติมเมื่อใช้ Redis Cluster และคุณไม่ควรชี้อินสแตนซ์ Sentinel ไปที่โหนดคลัสเตอร์ใด ๆ

ในทางปฏิบัติคุณได้อะไรจาก Redis Cluster?

1. ความสามารถในการแยกชุดข้อมูลของคุณโดยอัตโนมัติระหว่างหลาย ๆ โหนด

2. ความสามารถในการดำเนินการต่อเมื่อส่วนย่อยของโหนดประสบความล้มเหลวหรือไม่สามารถสื่อสารกับส่วนที่เหลือของคลัสเตอร์ได้

Redis Sentinel

  • Redis สนับสนุนทาสหลายตัวที่จำลองข้อมูลจากโหนดหลัก
  • สิ่งนี้จัดเตรียมการสำรองข้อมูลในโหนดหลัก
  • Redis Sentinel เป็นระบบที่ออกแบบมาเพื่อจัดการเจ้านายและทาส มันทำงานเป็นโปรแกรมแยกต่างหาก จำนวนทหารรักษาการณ์ขั้นต่ำที่ต้องการในระบบอุดมคติคือ 3 พวกมันสื่อสารกันเองและตรวจสอบให้แน่ใจว่านายท่านยังมีชีวิตอยู่หากไม่มีชีวิตพวกเขาจะส่งเสริมทาสคนใดคนหนึ่งให้เป็นนายดังนั้นในภายหลังเมื่อโหนดที่ตายหมุนมันจะเป็น ทำหน้าที่เป็นทาสของนายใหม่
  • สามารถกำหนดโควรัมได้ โดยพื้นฐานแล้วมันคือจำนวนทหารรักษาการณ์ที่ต้องเห็นด้วยในขณะที่นายใหญ่ลดลง N / 2 +1ควรเห็นด้วย N คือจำนวนโหนดใน Pod (โปรดทราบว่าการตั้งค่านี้เรียกว่าพ็อดและไม่ใช่คลัสเตอร์)

ในทางปฏิบัติคุณได้อะไรจาก Redis Sentinel?

เพื่อให้แน่ใจว่า Master พร้อมใช้งานอยู่เสมอ (ถ้า Master ลงไปทาสจะได้รับการเลื่อนขั้นเป็น Master)

อ้างอิง:

https://fnordig.de/2015/06/01/redis-sentinel-and-redis-cluster/

https://redis.io/topics/cluster-tutorial

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.