เกี่ยวกับความซ้ำซ้อนและการปรับสมดุลโหลด
แคมเซิร์ฟเวอร์
ด้วยแผน 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
สามารถตรวจจับและล้มเหลวได้โดยอัตโนมัติ - ค่าใช้จ่าย: การกำหนดค่าค่อนข้างถูก
การกำหนดค่าที่จัดเก็บข้อมูลภายนอกซ้ำซ้อน

- พื้นที่จัดเก็บ:การกำหนดค่าที่ใช้เซิร์ฟเวอร์การแชร์ไฟล์ซ้ำซ้อน (Windows Server Failover Clustering + SAN, AWS S3 + rclone ฯลฯ) และเน้นความพร้อมใช้งานสูงเพื่อป้องกันความล้มเหลวของดิสก์
- การสำรองข้อมูล: ข้อมูลจะถูกจำลองแบบอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องสำรองข้อมูล ทั้งนี้ขึ้นอยู่กับนโยบาย อย่างไรก็ตาม หากคุณกำลังพิจารณาถึงความล้มเหลวของมนุษย์ (เช่น การลบดิสก์ด้วยตนเอง) คุณจะยังคงต้องมีการสำรองข้อมูล
- การกระจายโหลด: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
- ความพร้อมใช้งาน: เว็บเซิร์ฟเวอร์เหมือนกับการกำหนดค่าเริ่มต้นขนาดเล็ก การสลับอัตโนมัติสามารถทำได้แม้ในกรณีที่เกิดความล้มเหลวเนื่องจากดิสก์หรือตัวเครื่องขัดข้อง
- ค่าใช้จ่าย: ค่าใช้จ่ายในการแนะนำสูง 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
กล้อง.ปิดการใช้งานเครือข่าย LAN
การเชื่อมต่อ TCP/UDP สำหรับ LAN ไม่จำเป็นสำหรับการกำหนดค่าซ้ำซ้อน ดังนั้นโปรดปิดการใช้งาน
cam.disableLANNetwork=true
การอนุญาตการสื่อสารไฟร์วอลล์สำหรับการซิงโครไนซ์ข้อมูลระหว่างเซิร์ฟเวอร์
- การอัปเดตข้อมูลแบบเรียลไทม์ (สถานะการแสดงตนของผู้ใช้ ข้อความ ห้องสนทนา ฯลฯ) จะถูกซิงโครไนซ์ระหว่าง CAMServers ดังนั้นจึงต้องได้รับอนุญาตสำหรับการสื่อสารระหว่างเซิร์ฟเวอร์โดยใช้ไฟร์วอลล์ ฯลฯ
- พอร์ต TCP 9090, 9091 และ 9092 สำหรับการเข้าถึงโหนดมาสเตอร์ DB
- พอร์ต TCP 8080 สำหรับ URL การเชื่อมต่อระหว่างเซิร์ฟเวอร์
- กำหนดไว้ในไฟล์ ini cam.clusterHosts
- ตัวอย่าง) cam.clusterHosts=camserver1:8080;camserver2:8080;camserver3:8080
รายละเอียดข้อกำหนดโหลดบาลานเซอร์

เราจะอธิบายรายละเอียดข้อกำหนดที่จำเป็นสำหรับการกำหนดค่า Load Balancer
1. การยกเลิก SSL
- ติดตั้งใบรับรอง SSL บนโหลดบาลานเซอร์และทำการถอดรหัส SSL/TLS
- การสื่อสารจากไคลเอ็นต์ได้รับการยอมรับโดยใช้ HTTPS และใช้ HTTP จากโหลดบาลานเซอร์ไปยังแบ็กเอนด์
2. อัลกอริธึมการปรับสมดุลโหลด
- โหลดบาลานซ์ด้วย Round Robin
- จำเป็นต้องมีการบำรุงรักษาเซสชันตามคุกกี้ (ความสัมพันธ์ของเซสชัน) และจำเป็นต้องยืนยันว่ามีฟังก์ชันในการกระจายการเข้าถึงจากไคลเอนต์เดียวกันไปยังโหนดเดียวกัน
3. ส่วนหัวและการประมวลผลเพิ่มเติมที่ถ่ายโอนไปยังเซิร์ฟเวอร์ส่วนหลัง (8080)
X-ส่งต่อ-Proto
รายการส่วนหัวที่ระบุคำขอเป็น https เมื่อ LB ส่งต่อไปยังเซิร์ฟเวอร์แบ็กเอนด์
X-ส่งต่อ-สำหรับ
รายการส่วนหัวที่ระบุที่อยู่ IP ของไคลเอ็นต์เมื่อ LB ส่งต่อไปยังเซิร์ฟเวอร์ส่วนหลัง
การจัดการส่วนหัวการอัพเกรด WebSocket
วิเคราะห์คำขอ HTTP และตรวจจับส่วนหัวการอัพเกรด ทริกเกอร์สวิตช์ TCP
4. การสื่อสารกับเซิร์ฟเวอร์ส่วนหลัง
การสื่อสารจากโหลดบาลานเซอร์ไปยัง CAMServer แต่ละตัวจะดำเนินการโดยใช้โปรโตคอลและพอร์ตต่อไปนี้
- โปรโตคอล: HTTP
- หมายเลขพอร์ต: 8080
- ตัวอย่างการเชื่อมต่อ: http://HOSTNAME:8080/
5. ตรวจสุขภาพ
- ตัวจัดสรรภาระงานจะขอ URL ต่อไปนี้เป็นระยะๆ และพิจารณาว่า URL นั้น "ปกติ" หากตรงตามเงื่อนไข
- URL การตรวจสอบสุขภาพ: http://HOSTNAME:8080/CAMServer/healthCheck
- เงื่อนไขการตรวจสุขภาพ: รหัสสถานะ HTTP: 200 เนื้อหาการตอบสนอง: {“สถานะ”:200}