เมนู

CAMServer ซ้ำซ้อน/โหลดบาลานซ์

สารบัญ

เกี่ยวกับความซ้ำซ้อนและการปรับสมดุลโหลด

แคมเซิร์ฟเวอร์ ด้วยแผน Ultimateง่ายมากในสภาพแวดล้อมภายในองค์กรเซิร์ฟเวอร์เว็บและวิดีโอสามารถทำซ้ำซ้อนและทำโหลดบาลานซ์ได้ วิธีนี้จะช่วยให้บริการต่างๆ ดำเนินต่อไปได้แม้ว่าเซิร์ฟเวอร์หนึ่งเครื่องจะหยุดทำงาน และแม้ว่าจะมีผู้ใช้จำนวนมากใช้งานอยู่ การประมวลผลก็สามารถกระจายและให้บริการได้โดยไม่ทำให้ประสิทธิภาพลดลง

นอกจากนี้การกำหนดค่าแบบกระจาย แคมเซิร์ฟเวอร์ อย่างไรก็ตาม การสื่อสารแบบเรียลไทม์ก็เป็นไปได้ ตัวอย่างเช่น,แคมเซิร์ฟเวอร์1 ลูกค้าที่เชื่อมต่อกับCAMServer2 คุณสามารถสนทนาหรือประชุมทางเว็บกับไคลเอนต์อื่นที่เชื่อมต่อกับ

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

การกำหนดค่าการกระจายความซ้ำซ้อน/โหลด

คุณสามารถกำหนดค่าสภาพแวดล้อมที่เหมาะสมที่สุดตามระดับคำขอและต้นทุนของบริษัทของคุณได้

การกำหนดค่าเริ่มต้นเล็กน้อย

  • พื้นที่จัดเก็บ:วาง DB/File บนฝั่ง CAMServer1 และอ้างอิงจาก CAMServer2 เช่นกัน ในกรณีนี้ ผู้ใช้ทุกคนสามารถแชร์ข้อมูลได้แบบเรียลไทม์
  • การสำรองข้อมูล: ข้อมูล DB/ไฟล์จำเป็นต้องได้รับการสำรองไว้ที่ CAMServer2 ทุกวัน
  • การกระจายโหลด:การปรับสมดุลการโหลดสามารถทำได้โดยแบ่ง CAMServer ที่เข้าถึงตามแผนก (หรือทำให้เป็นระบบสแตนด์บาย) การประชุมทางเว็บสามารถปรับสมดุลการโหลดได้ตลอดเวลา
  • ความพร้อมใช้งาน:การตั้งค่าการเชื่อมต่อ DB เมื่อเกิดความล้มเหลวในหน่วยที่ 1 cam.serverDatePath ในกรณีที่ดิสก์ขัดข้องการสำรองข้อมูลได้ทำรับประกันข้อมูลถึงวันก่อนหน้า
  • ค่าใช้จ่าย: การกำหนดค่าที่ถูกที่สุด คุณสามารถเริ่มต้นด้วยการกำหนดค่าหน่วยเดียวและขยายขนาดตามปริมาณงาน

การกำหนดค่าที่จัดเก็บข้อมูลภายนอก (NAS)

  • พื้นที่จัดเก็บ:วาง DB/ไฟล์บน NAS จัดเก็บข้อมูลภายนอกที่มีความทนทานสูงพร้อมการกำหนดค่า RAID และดูทั้ง CAMServer1 และ CAMServer2 หรือระบุ NAS เสมือนที่จัดเตรียมโดยระบบปฏิบัติการโฮสต์ของแพลตฟอร์มเสมือน
  • การสำรองข้อมูล: แม้ว่าจะมีการกำหนดค่า RAID ก็จำเป็นต้องสำรองข้อมูล DB/ไฟล์ทุกวันเพื่อพิจารณาถึงความล้มเหลวของแหล่งจ่ายไฟ/เคส และความล้มเหลวของมนุษย์
  • การกระจายโหลด: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
  • ความพร้อมใช้งาน: เมื่อเกิดความล้มเหลวเวอร์ชันเว็บแอป ถ้าคุณใช้ cam.clusterHostsสามารถตรวจจับและล้มเหลวได้โดยอัตโนมัติ
  • ค่าใช้จ่าย: การกำหนดค่าค่อนข้างถูก

การกำหนดค่าที่จัดเก็บข้อมูลภายนอกซ้ำซ้อน

  1. พื้นที่จัดเก็บ:การกำหนดค่าที่ใช้เซิร์ฟเวอร์การแชร์ไฟล์ซ้ำซ้อน (Windows Server Failover Clustering + SAN, AWS S3 + rclone ฯลฯ) และเน้นความพร้อมใช้งานสูงเพื่อป้องกันความล้มเหลวของดิสก์
  2. การสำรองข้อมูล: ข้อมูลจะถูกจำลองแบบอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องสำรองข้อมูล ทั้งนี้ขึ้นอยู่กับนโยบาย อย่างไรก็ตาม หากคุณกำลังพิจารณาถึงความล้มเหลวของมนุษย์ (เช่น การลบดิสก์ด้วยตนเอง) คุณจะยังคงต้องมีการสำรองข้อมูล
  3. การกระจายโหลด: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
  4. ความพร้อมใช้งาน: เว็บเซิร์ฟเวอร์เหมือนกับการกำหนดค่าเริ่มต้นขนาดเล็ก การสลับอัตโนมัติสามารถทำได้แม้ในกรณีที่เกิดความล้มเหลวเนื่องจากดิสก์หรือตัวเครื่องขัดข้อง
  5. ค่าใช้จ่าย: ค่าใช้จ่ายในการแนะนำสูง AWS S3 สามารถสร้างได้ด้วยต้นทุนที่ต่ำ แต่ไม่ใช่ตัวเลือกหากคุณมุ่งเน้นที่ภายในองค์กร

การกำหนดค่าโหลดบาลานเซอร์

  • พื้นที่จัดเก็บ: การกำหนดค่าเริ่มต้นขนาดเล็ก / สามารถเลือก NAS / SAN ได้
  • การสำรองข้อมูล: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก / NAS / SAN
  • การกระจายโหลด:โดยการวาง Load Balancer ไว้ที่ด้านหน้า CAMServer จะทำให้เกิดความซ้ำซ้อนและการกระจายโหลดได้* รายละเอียดข้อกำหนดการกำหนดค่า Load Balancerกรุณาตรวจสอบด้วย
  • ความพร้อมใช้งาน: สามารถเฟลโอเวอร์อัตโนมัติสำหรับทุกเลเยอร์เมื่อรวมกับการกำหนดค่าที่จัดเก็บข้อมูลภายนอกที่ซ้ำซ้อน
  • ค่าใช้จ่าย: ค่าใช้จ่ายในการแนะนำสูง

การตั้งค่าความซ้ำซ้อน/โหลดบาลานซ์

ภาพรวมการกำหนดค่า

เพื่อรองรับ CAMServer redundancy และ load balancing ให้ติดตั้ง CAMServer บนเซิร์ฟเวอร์แบบกระจายแต่ละเครื่องCAMServer/บูตไฟล์ INI เพิ่มรายการต่อไปนี้ลงในไฟล์

cam.clusterHosts=camserver1;camserver2
cam.clusterHostsDesc=camserver1 がメインサーバ、camserver2 は待機系サーバです。
cam.serverDatePath=\\disk\CAMServer\data
cam.disableLANNetwork=true

# ビデオサーバの分散設定。「サーバ=ノード分散参加数目安値」で定義。
cam.videoDomains=camserver1=50;camserver2=50;camserver3=50

cam.clusterHosts

cam.clusterHosts คือชื่อโฮสต์ (FQDN) ของเซิร์ฟเวอร์ที่กระจายแต่ละเครื่อง ; รายการดังกล่าวจะแยกโดย

เมื่อเริ่มต้น CAMServer บนพอร์ต 443

cam.clusterHosts=camserver1;camserver2 

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

เมื่อเริ่มต้น CAMServer บนพอร์ต 8080

cam.clusterHosts=camserver1:8080;camserver2:8080 

คุณสามารถวางตัวปรับสมดุลการโหลด L7 ไว้ข้างหน้า CAMServer และให้ CAMServer ส่งต่อไปยังพอร์ต 8080 การตั้งค่าในกรณีดังกล่าวจะเหมือนกับข้างต้น ในกรณีนี้ camapp จะไม่ล้มเหลวเนื่องจากตัวปรับสมดุลการโหลดจะรับผิดชอบในความล้มเหลว นี่คือ cam.serverURLโดเมน,cam.clusterHosts เปรียบเทียบโดเมนและตรวจจับและควบคุมการมีอยู่หรือไม่อยู่ของตัวปรับสมดุลการโหลด

cam.clusterHostsDesc

cam.clusterHostsDesc สามารถเปลี่ยนความคิดเห็นในช่องคำอธิบายเซิร์ฟเวอร์แบบกระจาย

cam.serverDatePath

cam.serverDatePath ระบุ DB ที่จะบันทึกสิ่งที่แนบมาที่อัปโหลด ระบุดิสก์ที่ใช้ร่วมกันที่สามารถเข้าถึงได้จากเซิร์ฟเวอร์แบบกระจาย

* เมื่อระบุดิสก์ที่ใช้ร่วมกันและเรียกใช้บริการ ผู้ใช้ระบบปฏิบัติการที่ใช้บริการ Windowsจะต้องระบุ
*หากไม่มีดิสก์ที่ใช้ร่วมกัน CAMServer ย่อยจะเป็น CAMServer หลัก CAMServer/การกำหนดค่า พื้นที่เก็บข้อมูลสามารถแชร์ได้โดยการระบุโฟลเดอร์

โดเมนแคมวิดีโอ

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

cam.videoDomains=camserver1=50;camserver2=50;camserver3=50

・สามารถละเว้นได้หากตั้งค่า cam.clusterHosts
- ค่านี้ไม่ได้ระบุจำนวนการเชื่อมต่อสูงสุด แต่เป็นเพียงแนวทางสำหรับการปรับสมดุลโหลดเท่านั้น

กล้อง.ปิดการใช้งานเครือข่าย LAN

การเชื่อมต่อ TCP/UDP สำหรับ LAN ไม่จำเป็นสำหรับการกำหนดค่าซ้ำซ้อน ดังนั้นโปรดปิดการใช้งาน

cam.disableLANNetwork=true

การอนุญาตการสื่อสารไฟร์วอลล์สำหรับการซิงโครไนซ์ข้อมูลระหว่างเซิร์ฟเวอร์

  1. การอัปเดตข้อมูลแบบเรียลไทม์ (สถานะการแสดงตนของผู้ใช้ ข้อความ ห้องสนทนา ฯลฯ) จะถูกซิงโครไนซ์ระหว่าง CAMServers ดังนั้นจึงต้องได้รับอนุญาตสำหรับการสื่อสารระหว่างเซิร์ฟเวอร์โดยใช้ไฟร์วอลล์ ฯลฯ
  2. พอร์ต TCP 9090, 9091 และ 9092 สำหรับการเข้าถึงโหนดมาสเตอร์ DB
  3. พอร์ต TCP 8080 สำหรับ URL การเชื่อมต่อระหว่างเซิร์ฟเวอร์
    • กำหนดไว้ในไฟล์ ini cam.clusterHosts
    • ตัวอย่าง) cam.clusterHosts=camserver1:8080;camserver2:8080;camserver3:8080

รายละเอียดข้อกำหนดโหลดบาลานเซอร์

เราจะอธิบายรายละเอียดข้อกำหนดที่จำเป็นสำหรับการกำหนดค่า Load Balancer

รองรับ L7/L4 แต่ต้องมีความสัมพันธ์กับเซสชัน โปรดทราบว่า L7 สามารถแก้ไขการเชื่อมต่อตามเซสชันได้ แต่ L4 สามารถแก้ไขการเชื่อมต่อตาม IP เท่านั้น หัวข้อนี้จะอธิบายวิธีการกำหนดค่า L7

1. การยกเลิก SSL

  1. ติดตั้งใบรับรอง SSL บนโหลดบาลานเซอร์และทำการถอดรหัส SSL/TLS
  2. การสื่อสารจากไคลเอ็นต์ได้รับการยอมรับโดยใช้ HTTPS และใช้ HTTP จากโหลดบาลานเซอร์ไปยังแบ็กเอนด์

2. อัลกอริธึมการปรับสมดุลโหลด

  1. โหลดบาลานซ์ด้วย Round Robin
  2. จำเป็นต้องมีการบำรุงรักษาเซสชันตามคุกกี้ (ความสัมพันธ์ของเซสชัน) และจำเป็นต้องยืนยันว่ามีฟังก์ชันในการกระจายการเข้าถึงจากไคลเอนต์เดียวกันไปยังโหนดเดียวกัน

3. ส่วนหัวและการประมวลผลเพิ่มเติมที่ถ่ายโอนไปยังเซิร์ฟเวอร์ส่วนหลัง (8080)

X-ส่งต่อ-Proto
รายการส่วนหัวที่ระบุคำขอเป็น https เมื่อ LB ส่งต่อไปยังเซิร์ฟเวอร์แบ็กเอนด์

X-ส่งต่อ-สำหรับ
รายการส่วนหัวที่ระบุที่อยู่ IP ของไคลเอ็นต์เมื่อ LB ส่งต่อไปยังเซิร์ฟเวอร์ส่วนหลัง

การจัดการส่วนหัวการอัพเกรด WebSocket
วิเคราะห์คำขอ HTTP และตรวจจับส่วนหัวการอัพเกรด ทริกเกอร์สวิตช์ TCP

โหลดบาลานเซอร์สมัยใหม่ (AWS/GCP/Azure) มีการตั้งค่ามาตรฐานตามค่าเริ่มต้น

4. การสื่อสารกับเซิร์ฟเวอร์ส่วนหลัง

การสื่อสารจากโหลดบาลานเซอร์ไปยัง CAMServer แต่ละตัวจะดำเนินการโดยใช้โปรโตคอลและพอร์ตต่อไปนี้

  • โปรโตคอล: HTTP
  • หมายเลขพอร์ต: 8080
  • ตัวอย่างการเชื่อมต่อ: http://HOSTNAME:8080/

5. ตรวจสุขภาพ

  1. ตัวจัดสรรภาระงานจะขอ URL ต่อไปนี้เป็นระยะๆ และพิจารณาว่า URL นั้น "ปกติ" หากตรงตามเงื่อนไข
  2. URL การตรวจสอบสุขภาพ: http://HOSTNAME:8080/CAMServer/healthCheck
  3. เงื่อนไขการตรวจสุขภาพ: รหัสสถานะ HTTP: 200 เนื้อหาการตอบสนอง: {“สถานะ”:200}
  • URL をkoピーしました!
สารบัญ