เนื่องจากมันเขียนลงดิสก์ผ่าน binlog ฉันคิดว่าคุณสามารถทำสิ่งที่คล้ายกับสิ่งที่ผู้ดูแลระบบ MySQL มักจะทำ: heartbeat w / DRBD ( ตัวอย่างที่นี่)
ครั้งล่าสุดที่ฉันพยายามใช้การเต้นของหัวใจแม้ว่ามันจะไม่สนับสนุนการตรวจสอบที่ไม่ใช่มัลติแคสต์ระหว่างโหนดซึ่งหมายความว่ามันเป็นไปไม่ได้ที่จะทำงานบนคลาวด์ / โครงสร้างพื้นฐาน VPS (AWS, Linode, Slicehost ฯลฯ ) มากขึ้นหรือน้อยลง บริการคลัสเตอร์ส่วนใหญ่ใช้มัลติคาสต์ อาจไม่เป็นเช่นนั้นอีกต่อไป แต่เป็นสิ่งที่ควรระวัง คุณอาจจะสามารถที่จะใช้keepalivedล้มเหลวที่จะให้ IP-based ซึ่งยังรองรับเฉพาะ multicast แต่มีแพทช์สามารถใช้ได้ผ่านทางวิลลี่ Tarreau (ผู้เขียนHAProxy ) เพื่อเพิ่มการสนับสนุน unicast ฉันได้ทำการทดสอบเป็นการส่วนตัวกับเซิร์ฟเวอร์ Linode VPS คู่หนึ่งและที่เก็บไว้จะสามารถล้มเหลวที่อยู่ IP ที่ใช้ร่วมกันในกรณีที่เซิร์ฟเวอร์หลักล้มเหลว
สิ่งหนึ่งที่คุณสามารถทำได้ซึ่งน่าจะเหมาะสมน้อยกว่าคือการเขียนงานไปยังเซิร์ฟเวอร์จำนวนมากของ beanstalkd (การแบ่งพาร์ทิชัน) หากหนึ่งในนั้นลดลงให้แอปของคุณตรวจจับสิ่งนี้และเขียนไปที่อินสแตนซ์อื่นแทน พนักงานของคุณจะต้องสำรวจอย่างชาญฉลาดในแต่ละกรณีของ beanstalkd และสามารถละเว้นกรณีที่ตายแล้ว เนื่องจากคุณกำลัง binlogging การนำอินสแตนซ์สำรองควรง่ายพอ ๆ กับการรีสตาร์ทและแอพ / คนงานจะตรวจจับสิ่งนี้และดำเนินการต่อตามปกติ (และเริ่มการประมวลผลงานในอินสแตนซ์ที่เพิ่งเริ่มใหม่) เห็นได้ชัดว่าฉันทำให้กระบวนการง่ายขึ้น แต่นั่นก็เป็นอีกวิธีหนึ่งในการจัดการ