พื้นหลังการป้องกันตนเอง
ก่อนอื่นเราต้องเข้าใจเกี่ยวกับศูนย์ลงทะเบียนยูเรก้าว่าโหนดทั้งหมดในยูเรก้าเท่ากันและไม่มีแนวคิดของบทบาทใน ZK แม้ว่าโหนด N-1 จะหายไป แต่ก็จะไม่ส่งผลกระทบต่อการทำงานปกติของโหนดอื่น
โดยค่าเริ่มต้นหากเซิร์ฟเวอร์ยูเรก้าไม่ได้รับการเต้นของหัวใจจากอินสแตนซ์ microservice ภายในเวลาหนึ่ง (เริ่มต้น 90 วินาที) เซิร์ฟเวอร์ยูเรก้าจะลบอินสแตนซ์ อย่างไรก็ตามเมื่อความล้มเหลวของพาร์ติชันเครือข่ายเกิดขึ้น Microservice ไม่สามารถสื่อสารได้ตามปกติกับเซิร์ฟเวอร์ยูเรก้า microservice นี้ไม่ควรถูกลบออกในเวลานี้ดังนั้นจึงมีการแนะนำกลไกการป้องกันตัวเอง
กลไกการป้องกันตนเอง
คำจำกัดความอย่างเป็นทางการของกลไกการป้องกันตนเอง: https://github.com/netflix/eureka/wiki/understanding-eureka-to-to-to-to-to-to-to-to-to-to-toe-communication
โหมดการป้องกันตัวเองเป็นมาตรการป้องกันความปลอดภัยสำหรับความผันผวนของเครือข่ายที่ผิดปกติ การใช้โหมดการป้องกันตัวเองสามารถทำให้คลัสเตอร์ยูเรก้าทำงานได้อย่างแข็งแกร่งและเสถียรมากขึ้น
กลไกการทำงานของกลไกการป้องกันตนเองคือถ้ามากกว่า 85% ของโหนดลูกค้าไม่มีการเต้นของหัวใจปกติภายใน 15 นาทีจากนั้นยูเรก้าเชื่อว่าลูกค้าและศูนย์การลงทะเบียนมีความล้มเหลวของเครือข่ายและเซิร์ฟเวอร์ยูเรก้าเข้าสู่กลไกการป้องกันตนเองโดยอัตโนมัติ ในเวลานี้สถานการณ์ต่อไปนี้จะเกิดขึ้น:
1. เซิร์ฟเวอร์ยูเรก้าไม่ลบบริการที่ควรหมดอายุอีกต่อไปเพราะพวกเขายังไม่ได้รับการเต้นของหัวใจเป็นเวลานาน -
2. เซิร์ฟเวอร์ยูเรก้ายังสามารถยอมรับคำขอลงทะเบียนและสอบถามสำหรับบริการใหม่ แต่จะไม่ถูกซิงโครไนซ์กับโหนดอื่น ๆ เพื่อให้แน่ใจว่าโหนดปัจจุบันยังคงมีอยู่ -
3. เมื่อเครือข่ายมีความเสถียรข้อมูลการลงทะเบียนใหม่ของเซิร์ฟเวอร์ยูเรก้าจะถูกซิงโครไนซ์กับโหนดอื่น ๆ
ดังนั้นเซิร์ฟเวอร์ยูเรก้าสามารถจัดการกับสถานการณ์ที่บางโหนดหายไปเนื่องจากความล้มเหลวของเครือข่ายและจะไม่ทำให้ครึ่งหนึ่งของพวกเขากลายเป็นอัมพาตเหมือน ZK
สวิตช์ป้องกันตนเอง
กลไกการป้องกันตัวเองยูเรก้าจริงที่จะเปิดใช้งาน/เท็จโดยการกำหนดค่ายูเรก้าเซิร์ฟเวอร์การรักษาตนเองเพื่อปิดใช้งานกลไกการป้องกันตนเอง ค่าเริ่มต้นจะเปิดขึ้น ขอแนะนำให้เปิดการกำหนดค่านี้ในสภาพแวดล้อมการผลิต
การกำหนดค่าสภาพแวดล้อมการพัฒนา
หากคุณต้องการลบความล้มเหลวของบริการในสภาพแวดล้อมการพัฒนาโดยอัตโนมัติคุณจะต้องแก้ไขการกำหนดค่าต่อไปนี้เท่านั้น
1. ศูนย์การลงทะเบียนปิดกลไกการป้องกันตัวเองและปรับเปลี่ยนเวลาในการตรวจสอบบริการที่ไม่ถูกต้อง
ยูเรก้า: เซิร์ฟเวอร์: เปิดใช้งานการอนุรักษ์ด้วยตนเอง: การขับไล่ที่ผิดพลาดอินเทอร์เมอร์-อิน-เมอร์-อิน-เมน
2. การปรับเปลี่ยน Microservice ช่วยลดเวลาในการเต้นของหัวใจ
# ค่าเริ่มต้น 90 วินาทีการเช่า-ระยะเวลาในวินาที: 10# ค่าเริ่มต้น 30 วินาทีสัญญาเช่า-ต่ออายุภายในวินาที: 3
แนะนำให้กำหนดค่าข้างต้นเพื่อใช้การกำหนดค่าเวลาเริ่มต้นในสภาพแวดล้อมการผลิต ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น