เรามีเว็บแอปพลิเคชันที่ใช้ Java EE ทำงานบนคลัสเตอร์เซิร์ฟเวอร์แอปGlassfish ทราฟฟิกขาเข้าส่วนใหญ่จะเป็นคำขอที่เงียบสงบสำหรับการเป็นตัวแทนที่ใช้ XML ของทรัพยากรแอปพลิเคชันของเรา แต่บางที 5% ของการรับส่งข้อมูลอาจจะใช้สำหรับการเป็นตัวแทน JSON- หรือ XHTML / CSS
ขณะนี้เรากำลังตรวจสอบโซลูชันการโหลดบาลานซ์เพื่อกระจายทราฟฟิกขาเข้าข้ามอินสแตนซ์ Glassfish ในคลัสเตอร์ นอกจากนี้เรายังดูวิธีการถ่ายโอนคลัสเตอร์โดยใช้ memcached ซึ่งเป็นแผนที่แฮชกระจายในหน่วยความจำซึ่งกุญแจจะเป็นชื่อทรัพยากร REST (เช่น "/ user / bob", "/ group / jazzlovers") และค่าที่เป็น การเป็นตัวแทน XML ที่สอดคล้องกัน
วิธีการหนึ่งที่ให้สัญญาว่าจะฆ่านกทั้งสองด้วยหินก้อนเดียวและใช้เซิร์ฟเวอร์nginx HTTP น้ำหนักเบาและพร็อกซีย้อนกลับอย่างรวดเร็ว Nginx จะจัดการคำขอที่เข้ามาแต่ละรายการโดยค้นหา URI เป็นครั้งแรกใน memcached เพื่อดูว่ามีการแสดง XML ที่ยังไม่หมดอายุที่นั่นหรือไม่ ถ้าไม่ได้ nginx ส่งการร้องขอไปยังหนึ่งในอินสแตนซ์ Glassfish โมดูล nginx memcached อธิบายไว้ในการเขียนสั้น ๆนี้
ความประทับใจโดยรวมของคุณกับ nginx และ memcached ใช้วิธีนี้คุณมีความสุขมากแค่ไหน? แหล่งข้อมูลใดที่คุณคิดว่ามีประโยชน์ที่สุดสำหรับการเรียนรู้เกี่ยวกับพวกเขา หากคุณลองพวกเขาและพวกเขาไม่ตรงกับวัตถุประสงค์ของคุณทำไมไม่และคุณใช้อะไรแทน
หมายเหตุ: นี่เป็นคำถามที่เกี่ยวข้อง ก่อนที่ผมจะรู้เกี่ยวกับ ServerFault ผมถามเกี่ยวกับเรื่องนี้StackOverflow
แก้ไข: คำตอบทั้งหมดที่นี่จนถึงมีประโยชน์มากแม้ว่าจะไม่มีประสบการณ์โดยตรง ในที่สุดคำตอบนี้ก็ปรากฏขึ้นใน StackOverflow และมันค่อนข้างรั้นในการตั้งค่า nginx / memcached