แอปพลิเคชัน: แสดงภาพที่ตอบสนองและปรับแต่งได้ทันทีโดยการครอบตัด/ปรับขนาด/บีบอัดภาพหลัก
โหลดปัจจุบัน: คำขอ 10,000 ต่อนาที, ปริมาณการใช้ ~ 60MBps
การกำหนดค่าปัจจุบัน : NginxPlus LB อยู่ด้านบนสุด เซิร์ฟเวอร์แอปหลายตัวที่มี nginx->tomcat อิมเมจของเซิร์ฟเวอร์แต่ละแอปจะถูกแคชใน nginx
ปัญหาปัจจุบัน:
- อัตราส่วนการเข้าถึงแคชไม่ดีเนื่องจากแคชถูกกระจายอำนาจ ความน่าจะเป็นที่คำขอเดียวกันจะกระทบกับเซิร์ฟเวอร์เดียวกันจึงต่ำ
- แคชซ้ำแม้ว่าจะสามารถยอมรับได้
- การล้างแคชเป็นเรื่องยุ่งยาก เนื่องจากอาจมีแคชอยู่ในหลายเซิร์ฟเวอร์ สำหรับการล้างแคช จึงจำเป็นต้องล้างออกจากเซิร์ฟเวอร์แอปทั้งหมด
โซลูชั่นที่มีศักยภาพ
Nginx Load Balancer กำลังแฮชที่สอดคล้องกัน ปัญหาของแนวทางนี้คืออาจทำให้เกิดการกระจายทราฟฟิกที่ไม่สม่ำเสมอ
แนะนำเลเยอร์กลางของเซิร์ฟเวอร์ nginx สองสามตัว: สามารถแนะนำเลเยอร์แคช nginx เฉพาะระหว่าง LB และเซิร์ฟเวอร์แอป แต่สมมติว่าฉันเก็บเซิร์ฟเวอร์ 3 เครื่องไว้ในเลเยอร์นี้ แต่ก็ยังมีปัญหาเดียวกันในการแคชซ้ำและการล้างข้อมูลปวดหัวแม้ว่าจะมีขนาดต่ำกว่าก็ตาม
ดิสก์ I/O อาจมีปัญหาในกรณีของ single nginx
ใครบ้างมีประสบการณ์ในการแก้ปัญหากรณีการใช้งานนี้ ? ไม่ว่าจะเป็น nginx อย่าลังเลที่จะแบ่งปันความคิดของคุณ