High Availability with Sticky Session Replication

Ruk-Com Cloud จัดเตรียมการจำลองเซสชันอัตโนมัติระหว่างเซิร์ฟเวอร์ Tomcat, GlassFish และ Jetty เพื่อให้แอปพลิเคชันเว็บมีความพร้อมใช้งานสูงภายใน Java คลัสเตอร์

การจำลองเซสชันเป็นกลไกที่ใช้ในการจำลองข้อมูลที่จัดเก็บไว้ในเซสชันระหว่างอินสแตนซ์ต่างๆซึ่งจะต้องเป็นส่วนหนึ่งของคลัสเตอร์เดียวกัน เมื่อเปิดใช้งานการจำลองแบบเซสชันในคลัสเตอร์ environment ข้อมูลเซสชันทั้งหมดจะถูกคัดลอกบนอินสแตนซ์ที่จำลอง (ทำสำเนาใหม่) การดำเนินการจำลองเซสชันจะไม่คัดลอก attributes ที่ไม่สามารถทำให้เป็นอนุกรมในเซสชันและข้อมูลเฉพาะของอินสแตนซ์ การจำลองแบบเซสชันที่มีความน่าเชื่อถือ ความสามารถในการปรับขนาด และความสามารถในการรองรับ failover ที่สมบูรณ์แบบ

กระบวนการจำลองใน Ruk-Com Cloud ด้วย multicast มีข้อดีดังต่อไปนี้:

  • การแลกเปลี่ยนเซสชันระหว่างโหนดผ่าน local net;

  • ไม่จำเป็นต้องใช้โปรแกรมประเภท memcache เพิ่มเติมทำให้ระบบมีจุดทำลายน้อยลง

วิธีเปิดใช้งานการจำลองแบบเซสชัน

หากต้องการใช้การจำลองใน Ruk-Com Cloud คุณสามารถทำตามข้อมูลต่อไปนี้:

เข้าสู่ระบบ Com Cloud แล้วคลิก New Environment

เลือกแอปพลิเคชันเซิร์ฟเวอร์ที่คุณต้องการและเปิด High-Availability ดังภาพด้านล่าง:

ในขณะที่สร้าง environment การดำเนินการทั้งหมดจะแสดงใน Tasks:

เมื่อติดตั้ง environment เสร็จแล้วคุณจะเห็น environment ปรากฏดังภาพด้านล่าง:

กระบวนการทำงาน

เมื่อผู้ใช้ส่งคำขอครั้งแรกไปยังเว็บแอปพลิเคชันโหลดบาลานเซอร์ (NGINX) คำขอนั้นจะเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งภายในคลัสเตอร์ โดยตลอดเซสชันผู้ใช้จะยังคงทำงานกับอินสแตนซ์ของแอปพลิเคชันเซิร์ฟเวอร์เดียวกันต่อไป (เรียกว่า Sticky Sessions) ซึ่งเห็นได้ชัดว่าอินสแตนซ์อื่นในคลัสเตอร์ยังทำงานได้ครึ่งหนึ่ง

หากอินสแตนซ์ใดล้มเหลว ผู้ใช้ที่อยู่ในอินสแตนซ์นั้นจะถูกสลับไปยังอินสแตนซ์อื่นในคลัสเตอร์นี้โดยอัตโนมัติการจำลองแบบ ทำให้อินสแตนซ์อื่นมีเซสชันทั้งหมดของอินสแตนซ์ที่ล้มเหลวอยู่แล้ว ดังนั้นผู้ใช้ปลายทางจะไม่สังเกตเห็นการเปลี่ยนแปลงใดๆ ในกรณีที่ทั้งสองอินสแตนซ์ในคลัสเตอร์เกิดความล้มเหลวซึ่งไม่น่าจะเป็นไปได้สูง ผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังคลัสเตอร์อื่น (หากมีหลายรายการ)

นอกจากนี้ผู้ใช้ยังสามารถเปิด/ปิดการจำลองภายใน environment ที่สร้างไว้แล้วได้โดยการเปลี่ยน topology