ฉันจะแก้ปัญหานี้ได้อย่างไร ผู้ใช้ต้องใช้แบนด์วิธของเซิร์ฟเวอร์ปลายทางแทนเซิร์ฟเวอร์เปลี่ยนเส้นทาง ขอขอบคุณ.
โดยทั่วไปมีสองสามวิธี:
- ใช้ Round Robin DNS เซิร์ฟเวอร์ทั้งหมดใช้ชื่อเดียวกัน แต่ใช้ IP ต่างกัน ลูกค้าจะเลือกเซิร์ฟเวอร์แบบสุ่ม
- ใช้การเปลี่ยนเส้นทางเพื่อส่งผู้ใช้ไปยังเซิร์ฟเวอร์ที่เหมาะสม
- ใช้ Anycast ทุกเซิร์ฟเวอร์มี IP เดียวกัน เนื่องจากวิธีการทำงานของการกำหนดเส้นทาง โดยทั่วไป ผู้ใช้จะเชื่อมต่อกับเครือข่ายท้องถิ่น
Round Robin DNS และการเปลี่ยนเส้นทางโดยทั่วไปเป็นสิ่งที่คุณสามารถกำหนดค่าได้เอง สำหรับการออกอากาศใดๆ คุณจะต้องสามารถประกาศ BGP ในหลายภูมิภาคด้วยตัวคุณเอง และมีส่วนร่วมกับ ISP หลายแห่งทั่วโลก
ความคิดที่ยอดเยี่ยมอีกประการหนึ่งก็คือการเพิกเฉยต่อปัญหาและตบบริการอย่าง Cloudflare หรือ Akami ไว้ข้างหน้า แล้วปล่อยให้พวกเขาจัดการโหลดบาลานซ์ หากคุณต้องการการควบคุมที่มากขึ้น ก็เป็นไปได้เช่นกันที่จะโฮสต์เนื้อหาในโซลูชันระบบคลาวด์ เช่น Azure หรือ Google Cloud ซึ่งในระดับที่น้อยกว่าคุณต้องกังวลเกี่ยวกับภาระในการรับสิ่งต่างๆ จากที่เก็บข้อมูล Blob
กฎของคุณทำอะไร
ด้วยกฎของคุณ คุณจะเขียนปลายทางของแพ็กเก็ตใหม่ และส่งไปยังเซิร์ฟเวอร์อื่น ใน ส่วนที่เพิ่มเข้าไป คุณ สวมหน้ากากพวกเขาเพื่อให้เซิร์ฟเวอร์ส่วนหลังดูเหมือนว่าแพ็คเกจมาจากส่วนหน้าของคุณ แบ็คเอนด์ทำหน้าที่ตอบรับ โดยส่งแพ็กเก็ตตอบกลับกลับไปยังฟรอนท์เอนด์ของคุณ ซึ่งค้นหาในตารางว่าการเชื่อมต่อนั้นมาจากที่ใด และส่งแพ็กเก็ตไปยังไคลเอ็นต์ดั้งเดิม เซิร์ฟเวอร์ - ซึ่งเป็นเราเตอร์จริงๆ ต้องสัมผัสแพ็กเก็ตเพื่อเขียนส่วนหัวใหม่ และแพ็กเก็ตทั้งหมดต้องผ่านเซิร์ฟเวอร์นั้น
ในหลายกรณี การตั้งค่าดังกล่าวสามารถเข้าท่ามาก ค่อนข้างเล็กน้อยในการกำหนดเส้นทางการรับส่งข้อมูลจำนวนมาก และกำหนดค่าได้ง่ายและทนทาน อนุญาตให้มี High Availability โดยเซิร์ฟเวอร์ไม่ตอบสนอง และสำหรับการโหลดที่ไม่มีสถานะ การเพิ่มความจุทำได้ง่ายมาก ตราบใดที่เราเตอร์ของคุณสามารถจัดการกับปริมาณการรับส่งข้อมูลได้