Score:0

วิธีกำหนดค่าพร็อกซีโหลดบาลานซ์ Apache ด้วย BalancerMember ที่สแตนด์บายแบบร้อน

ธง vn

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

สิ่งที่ฉันต้องการบรรลุ:

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

สิ่งที่ฉันกำหนดค่า:

<VirtualHost *:80>
    ProxyRequests off
    ProxyPreserveHost On
    
    ProxyHCExpr status_ok {hc('body') ~ /Status: ok/}
    
    <Proxy balancer://application-cluster>
            BalancerMember http://application1:8080 route=worker1 hcexpr=status_ok hcmethod=get hcuri=/status
            BalancerMember http://application2:8080 route=worker2 hcexpr=status_ok hcmethod=get hcuri=/status
            BalancerMember http://application1:8080 route=standby status=+H
            ProxySet lbmethod=byrequests 
    </Proxy>
    
    <Location /balancer-manager>
            SetHandler balancer-manager
    </Location>

    ProxyPass /balancer-manager !

    ProxyPass / balancer://application-cluster/
    ProxyPassReverse / balancer://application-cluster/
</VirtualHost>

ดังที่คุณเห็นที่นี่ application1 ถูกกำหนดให้เป็น hot standby และควรเป็น "เหยื่อ" ในการจัดการคำขอหาก BalanceMembers อื่น ๆ ทั้งหมด "ออฟไลน์" สำหรับคำขอใหม่

งานอะไร:

  • คำขอมีการโหลดที่สมดุลกับ BalancerMembers ทั้งสอง
  • application1 และ application2 สามารถส่งสัญญาณไม่รับคำขอใดๆ ในกรณีนี้ BalancerMembers ทั้งสองจะแสดงสถานะ "Init HcFl" ที่คาดไว้บนหน้า Balancer Manager

อะไรไม่ทำงาน:

  • application1 ไม่แสดงเป็น hot standby บนหน้า Balance Manager
  • ดังนั้นคำขอจะไม่ถูกส่งต่อไปยังแอปพลิเคชัน1

เป็นไปได้ แต่ฉันไม่ต้องการทำ:

  • ถ้าฉันกำหนดค่า hot standby เพื่อส่งต่อไปยังพอร์ตอื่นบน application1 มันจะแสดงและส่งต่อคำขอไปยังพอร์ตนี้

ดูเหมือนว่า Apache เพิ่งลบ BalancerMember หากโฮสต์และพอร์ตเท่ากับ BalancerMember อื่น ฉันพลาดอะไรไปหรือมีวิธีอื่นในการบรรลุสิ่งที่ฉันต้องการหรือไม่?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา