เกี่ยวกับความซ้ำซ้อนและการปรับสมดุลโหลด
ด้วยแผนขั้นสูงสุดของ CAMServerง่ายมากในสภาพแวดล้อมภายในองค์กรเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์วิดีโอสามารถดำเนินการซ้ำซ้อนและปรับสมดุลโหลดได้ ซึ่งช่วยให้บริการสามารถดำเนินต่อไปได้แม้ว่าเซิร์ฟเวอร์ตัวใดตัวหนึ่งล่ม และแม้ว่าผู้ใช้จำนวนมากจะใช้งาน ก็สามารถกระจายการประมวลผลและให้บริการได้โดยไม่ลดประสิทธิภาพลง
การกำหนดค่าแบบกระจาย แคมเซิร์ฟเวอร์
อย่างไรก็ตาม การสื่อสารแบบเรียลไทม์ก็เป็นไปได้ ตัวอย่างเช่น,แคมเซิร์ฟเวอร์1
ลูกค้าที่เชื่อมต่อกับCAMServer2
คุณสามารถสนทนาหรือประชุมทางเว็บกับไคลเอนต์อื่นที่เชื่อมต่อกับ การปรับสมดุลโหลดเซิร์ฟเวอร์วิดีโอจะดำเนินการตามจำนวนการประชุมที่ใช้งานอยู่และจำนวนผู้ใช้ที่เข้าร่วม
จำนวนการประชุมผ่านเว็บพร้อมกันนั้นง่ายมากแคมเซิร์ฟเวอร์
สิ่งนี้ไม่สามารถทำได้โดยการเพิ่มจำนวนโหนด นอกจากนี้ยังจำเป็นต้องพิจารณาการกำหนดค่าเครือข่ายเพื่อไม่ให้การประชุมทั้งหมดส่งต่อผ่าน VPN หรือเราเตอร์กลางเดียวกัน
การกำหนดค่าการกระจายความซ้ำซ้อน/โหลด
คุณสามารถกำหนดค่าสภาพแวดล้อมที่เหมาะสมที่สุดตามระดับคำขอและต้นทุนของบริษัทของคุณได้
การกำหนดค่าเริ่มต้นเล็กน้อย
- พื้นที่จัดเก็บ:วาง DB/File บนฝั่ง CAMServer1 และอ้างอิงจาก CAMServer2 เช่นกัน ในกรณีนี้ ผู้ใช้ทุกคนสามารถแชร์ข้อมูลได้แบบเรียลไทม์
- การสำรองข้อมูล: ข้อมูล DB/ไฟล์จำเป็นต้องได้รับการสำรองไว้ที่ CAMServer2 ทุกวัน
- การกระจายโหลด: การกระจายโหลดสามารถทำได้โดยการแบ่ง CAMServer ที่เข้าถึงตามแผนก (หรือทำให้เป็นระบบสแตนด์บาย)
- ความพร้อมใช้งาน: เมื่อเกิดความล้มเหลวเวอร์ชันเว็บแอป ถ้าคุณใช้
cam.clusterHosts
การตรวจจับและการเฟลโอเวอร์อัตโนมัติ ในกรณีที่ดิสก์ล้มเหลวการสำรองข้อมูลได้ทำรับประกันข้อมูลถึงวันก่อนหน้า - ค่าใช้จ่าย: การกำหนดค่าที่ถูกที่สุด คุณสามารถเริ่มต้นด้วยการกำหนดค่าหน่วยเดียวและขยายขนาดตามปริมาณงาน
การกำหนดค่าที่จัดเก็บข้อมูลภายนอก (NAS)
- พื้นที่จัดเก็บ: วาง DB/ไฟล์บน NAS ที่จัดเก็บข้อมูลภายนอกที่มีความทนทานสูงในการกำหนดค่า RAID และอ้างอิงทั้ง CAMServer1 และ CAMServer2
- การสำรองข้อมูล: แม้ว่าจะมีการกำหนดค่า RAID ก็จำเป็นต้องสำรองข้อมูล DB/ไฟล์ทุกวันเพื่อพิจารณาถึงความล้มเหลวของแหล่งจ่ายไฟ/เคส และความล้มเหลวของมนุษย์
- การกระจายโหลด: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
- ความพร้อมใช้งาน: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
- ค่าใช้จ่าย: การกำหนดค่าค่อนข้างถูก
การกำหนดค่าที่จัดเก็บข้อมูลภายนอกซ้ำซ้อน
- พื้นที่จัดเก็บ: การกำหนดค่าที่เน้นความพร้อมใช้งานสูงต่อความล้มเหลวของดิสก์โดยใช้เซิร์ฟเวอร์การแชร์ไฟล์ที่ซ้ำซ้อน (Windows Server Failover Clustering +SAN, AWS S3 ฯลฯ)
- การสำรองข้อมูล: ข้อมูลจะถูกจำลองแบบอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องสำรองข้อมูล ทั้งนี้ขึ้นอยู่กับนโยบาย อย่างไรก็ตาม หากคุณกำลังพิจารณาถึงความล้มเหลวของมนุษย์ (เช่น การลบดิสก์ด้วยตนเอง) คุณจะยังคงต้องมีการสำรองข้อมูล
- การกระจายโหลด: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
- ความพร้อมใช้งาน: เว็บเซิร์ฟเวอร์เหมือนกับการกำหนดค่าเริ่มต้นขนาดเล็ก การสลับอัตโนมัติสามารถทำได้แม้ในกรณีที่เกิดความล้มเหลวเนื่องจากดิสก์หรือตัวเครื่องขัดข้อง
- ค่าใช้จ่าย: ค่าใช้จ่ายในการแนะนำสูง AWS S3 สามารถสร้างได้ด้วยต้นทุนที่ต่ำ แต่ไม่ใช่ตัวเลือกหากคุณมุ่งเน้นที่ภายในองค์กร
การกำหนดค่าโหลดบาลานเซอร์
- พื้นที่จัดเก็บ: การกำหนดค่าเริ่มต้นขนาดเล็ก / สามารถเลือก NAS / SAN ได้
- การสำรองข้อมูล: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก / NAS / SAN
- การกระจายโหลด:โดยการวาง Load Balancer ไว้ที่ด้านหน้า CAMServer จะทำให้เกิดความซ้ำซ้อนและการกระจายโหลดได้* Load Balancer 構成の要件詳細も確認してください。
- ความพร้อมใช้งาน: สามารถเฟลโอเวอร์อัตโนมัติสำหรับทุกเลเยอร์เมื่อรวมกับการกำหนดค่าที่จัดเก็บข้อมูลภายนอกที่ซ้ำซ้อน
- ค่าใช้จ่าย: ค่าใช้จ่ายในการแนะนำสูง
การตั้งค่าความซ้ำซ้อน/โหลดบาลานซ์
การตั้งค่าทั่วไปสำหรับแต่ละเซิร์ฟเวอร์แบบกระจาย
เพื่อรองรับ CAMServer redundancy และ load balancing ให้ติดตั้ง CAMServer บนเซิร์ฟเวอร์แบบกระจายแต่ละเครื่องCAMServer/cam.ini
เพิ่มรายการต่อไปนี้ลงในไฟล์
cam.clusterHosts=camserver1;camserver2
cam.clusterHostsDesc=camserver1 がメインサーバ、camserver2 は待機系サーバです。
cam.serverDatePath=\\disk\CAMServer\data
cam.enabledSingleProcessingHost=camserver1
cam.clusterHosts
cam.clusterHosts
คือชื่อโฮสต์ของแต่ละเซิร์ฟเวอร์แบบกระจาย ;
แจกแจงแยกกันโดย. ชื่อโฮสต์จากฝั่งไคลเอ็นต์ https://ชื่อโฮสต์/
จะต้องสามารถเข้าถึงได้
cam.clusterHosts=camserver1;camserver2
หากคุณต้องการแยก CAMServers สำหรับแต่ละแผนก ให้เขียนชื่อโฮสต์ไว้ที่จุดเริ่มต้นของไฟล์ ini ของแต่ละ CAMServer ลำดับการแจงนับได้รับผลกระทบเมื่อเลือกเซิร์ฟเวอร์การเชื่อมต่อเริ่มต้นและเซิร์ฟเวอร์วิดีโอเมื่อเริ่มต้นระบบ อีกด้วยเวอร์ชันเว็บแอป โดยใช้ การเชื่อมต่อเฟลโอเวอร์เป็นไปได้ในกรณีที่เกิดความล้มเหลว
cam.clusterHostsDesc
cam.clusterHostsDesc
สามารถเปลี่ยนความคิดเห็นในช่องคำอธิบายเซิร์ฟเวอร์แบบกระจาย
cam.serverDatePath
cam.serverDatePath
ระบุฐานข้อมูลที่จะบันทึกไฟล์แนบที่อัพโหลด ระบุดิสก์ที่ใช้ร่วมกัน เช่น NAS ที่สามารถเข้าถึงได้จากเซิร์ฟเวอร์แบบกระจาย
*หากไม่มีดิสก์ที่ใช้ร่วมกัน CAMServer ย่อยจะเป็น CAMServer หลัก CAMServer/การกำหนดค่า
พื้นที่เก็บข้อมูลสามารถแชร์ได้โดยการระบุโฟลเดอร์
cam.enabledSingleProcessingHost
cam.enabledSingleProcessingHost
โปรดระบุชื่อโฮสต์ของเซิร์ฟเวอร์แรกที่แสดงอยู่ใน cam.clusterHosts กระบวนการที่สามารถรันบนโฮสต์เดียวเท่านั้น เช่น การประมวลผลแบบแบตช์ ได้รับการกำหนดค่าให้ดำเนินการหลังจากพิจารณาว่าโฮสต์ถูกกำหนดไว้ใน cam.enabledSingleProcessingHost หรือไม่
ตั้งค่าเซิร์ฟเวอร์ย่อยเท่านั้น
cam.disableLANNetwork=true
คุณสามารถปิดใช้งานการเชื่อมต่อ TCP/UDP สำหรับ LAN ได้โดยการตั้งค่า ดำเนินการตั้งค่านี้สำหรับ CAMServers ย่อยตัวที่สองและตัวถัดไป
cam.disableLANNetwork=true
Load Balancer の要件詳細
Load Balancer 構成で必要となる要件詳細を記述致します。
1. SSL終端(SSL Termination)
- ロードバランサーでSSL証明書をインストールし、SSL/TLSの復号を行う。
- クライアントからの通信はHTTPSで受け付け、ロードバランサーからバックエンドにはHTTPを使用。
2. 負荷分散アルゴリズム
- ラウンドロビンでの負荷分散
- クッキー(Cookie)ベースのセッション維持(セッション・アフィニティー)が必要で、同一 Client のアクセスを同一ノードへ振り分ける機能を有しているか確認が必要。
3. バックエンドサーバー(8080)に転送するヘッダや追加処理
X-Forwarded-Proto
LBがバックエンドサーバーに転送する際に、リクエストが https である事を識別させるヘッダ項目
X-Forwarded-For
LBがバックエンドサーバーに転送する際に、クライアントのIPアドレスを識別させるヘッダ項目
WebSocketのUpgradeヘッダーの処理
HTTPリクエストを解析し、Upgrade ヘッダーを検出すると、それをトリガーにTCP切り替え
4. バックエンドサーバとの通信
ロードバランサーから各CAMServerへの通信は以下のプロトコルとポートで行う。
- プロトコル: HTTP
- ポート番号: 8080
- 接続例: http://HOSTNAME:8080/
5. ヘルスチェック(Health Check)
- ロードバランサーは次のURLを定期的にリクエストし、条件を満たす場合に「正常」と判定。
- ヘルスチェックURL: http://HOSTNAME:8080/CAMServer/healthcheck
- ヘルスチェックの条件: HTTPステータスコード: 200レスポンスボディ: {“status”:200}
6. サーバ間データ同期のため、通信許可
- リアルタイムなデータ(ユーザプレゼンス状態、メッセージ、チャットルーム等)更新はCAMServer間で同期を行うためFirewall などでサーバ間の通信許可が必要。
- サーバ間接続URLは、iniファイルの cam.clusterHosts で定義
- 例)cam.clusterHosts=camserver1:8080;camserver2:8080;camserver3:8080
※ camserver1 でユーザ情報が更新された場合、以下URLに接続しデータ同期を行う
http://camserver2:8080/CAMServer/syncWebSocketData
http://camserver3:8080/CAMServer/syncWebSocketData