ฉันมีกรณีการใช้งานที่พิเศษมาก - และฉันสงสัยว่าไม่มีวิธีแก้ปัญหาที่ดีกว่านี้แล้วหรือ
กรณีการใช้งาน:
ผู้ใช้หลายคนควรสามารถเข้าถึงหนึ่งในอินสแตนซ์เป้าหมายประมาณ 1,000 รายการ (C1 ถึง C1000) ที่มาจากอินสแตนซ์ Nginx (A) ในเวลาเดียวกัน
น่าเสียดายที่แต่ละอินสแตนซ์เป้าหมาย 100 รายการต้องอยู่หลังอินสแตนซ์ Nginx แยกต่างหาก (B1 ถึง B10) เป็นพร็อกซีย้อนกลับ
ปัญหา:
หากผู้ใช้หลายคนกระโดดพร้อมกันจากไคลเอ็นต์ที่เกี่ยวข้องไปยัง A และจากนั้นไปยังอินสแตนซ์ B Nginx ตัวใดตัวหนึ่ง และจากนั้นไปยังหนึ่งในอินสแตนซ์เป้าหมาย C พื้นฐาน คำถามก็เกิดขึ้นว่าจะตรวจสอบความสอดคล้องของเซสชันของแต่ละเซสชันได้อย่างไร . นอกจากนี้ อินสแตนซ์เป้าหมาย C ต้องสามารถตั้งค่าเซสชันคุกกี้บนไคลเอ็นต์ที่เกี่ยวข้องซึ่งมาที่อินสแตนซ์เป้าหมาย C นี้ผ่านอินสแตนซ์ A-Nginx จากที่นั่นไปยังอินสแตนซ์ B-Nginx ที่เกี่ยวข้อง
ทางออกของฉัน:
ผู้ใช้แต่ละคนที่โทรหา A จะได้รับพอร์ตแยกต่างหาก การเชื่อมต่อระหว่างอินสแตนซ์ A และ B แต่ละรายการทำงานผ่านพอร์ตที่แยกกัน เช่น ตั้งแต่ A ถึง B1 10000, A ถึง B2 11000 เป็นต้น A ถึง B10 20000 การเชื่อมต่อจากอินสแตนซ์ B ไปยังอินสแตนซ์เป้าหมาย C จะได้รับการบำรุงรักษาบนพอร์ตเฉพาะเช่นกัน เช่น การเชื่อมต่อ B1 ถึง C0001 บนพอร์ต 10001 การเชื่อมต่อ B1 ถึง C0002 บนพอร์ต 10002 เป็นต้น
ฉันเกลียดโครงสร้างนี้ แต่ใช้งานได้ คำถามคือ - ฉันพลาดอะไรไป ฉันไม่สามารถจินตนาการได้ว่าไม่มีวิธีที่หรูหรากว่านี้อีกแล้ว
ใครบ้างมีความคิดที่ดีในการแก้ปัญหาด้วยวิธีที่หรูหรากว่านี้? อาจจะด้วยคุกกี้เซสชั่น?
ขอแสดงความนับถือ,
ง.