選單

CAMServer 冗余和负载平衡

目錄

關於冗餘和負載平衡

借助 CAMServer 的終極計劃,在本地環境中非常簡單可以進行Web伺服器和視訊伺服器的冗餘和負載平衡。這樣,即使一台伺服器當機,服務也能繼續,即使有大量用戶使用,也可以在不降低效能的情況下分散處理並提供服務。

分散式配置 CAMServer 然而,即時通訊是可能的。例如,CAM伺服器1 一個客戶端連接到CAM伺服器2 您可以與連接到 的另一個用戶端聊天或召開網路會議。視訊伺服器負載平衡是根據活動會議數量和參與用戶數量執行的。

同時進行的網路會議的數量很簡單CAMServer這不能透過簡單地增加節點數量來實現。還需要考慮網路配置,以便所有會議不會透過同一 VPN 或中心路由器進行中繼。

冗餘/負載分配配置

您可以根據您公司的要求等級和成本配置最佳環境。

小啟動配置

  • 貯存:將 DB/File 放置在 CAMServer1 端,並從 CAMServer2 引用它。即使在這種情況下,所有用戶都可以即時共享資料。
  • 備份:每天需要將DB/File資料備份到CAMServer2上。
  • 負荷分配:透過將存取的CAMServer按部門劃分(或使其成為備用系統),可以進行負載分配。
  • 可用性:發生故障時,网络应用程序版本 如果你使用 cam.clusterHosts檢測和自動故障轉移。如果磁碟故障備份已完成保證數據截至前一天。
  • 成本: 最便宜的配置。您可以從單一設備配置開始,然後根據負載進行擴充。

外部儲存 (NAS) 配置

  • 貯存:將資料庫/檔案放置在 RAID 配置中的高度耐用的外部儲存 NAS 上,並引用 CAMServer1 和 CAMServer2。
  • 備份:即使使用 RAID 配置,也需要每天備份 DB/文件數據,以應對電源/外殼故障和人為故障。
  • 負荷分配:與小啟動配置相同。
  • 可用性:與小啟動配置相同。
  • 成本:相對便宜的配置。

冗餘外部儲存配置

  1. 貯存:透過使用冗餘檔案共用伺服器(Windows Server 故障轉移叢集 +SAN、AWS S3 等)強調針對磁碟故障的高可用性的配置。
  2. 備份:資料會自動複製,因此根據策略不需要備份。但是,如果您考慮人為故障(例如手動擦除磁碟),您仍然需要備份。
  3. 負荷分配:與小啟動配置相同。
  4. 可用性:web伺服器與小啟動配置相同。即使由於磁碟或機箱故障而發生故障,也可以自動切換。
  5. 成本: 引進成本高。 AWS S3 可以以低成本構建,但如果您的重點是本地,那麼它不是一個選擇。

負載平衡器配置

  • 貯存:小型啟動配置/NAS/SAN可選。
  • 備份:與小型啟動配置/NAS/SAN 相同。
  • 負荷分配:透過將負載平衡器放置在CAMServer之前,可以實現冗餘和負載分配。附注(补充信息) 文号 Load Balancer 構成の要件詳細も確認してください。
  • 可用性:與冗餘外部儲存配置結合使用時,所有層都可以進行自動故障轉移。
  • 成本: 引進成本高。

冗餘/負載平衡設置

每個分散式伺服器的通用設置

為了支援CAMServer冗餘和負載平衡,在每個分散式伺服器上安裝CAMServer,CAM伺服器/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 

如果您想為每個部門單獨設定 CAMServer,請在每個 CAMServer 的 ini 檔案的開頭寫入主機名稱。啟動時選擇初始連接伺服器和視訊伺服器時,枚舉順序會受到影響。還网络应用程序版本 透過使用 ,在發生故障時可以進行故障轉移連線。

cam.clusterHosts描述

cam.clusterHosts描述 可以變更分佈式伺服器描述欄位中的註解。

cam.serverDatePath

cam.serverDatePath 指定資料庫,用於儲存上傳的附件。指定可以從分散式伺服器存取的共用磁碟,例如 NAS。
*如果沒有共用磁碟,則子CAMServer為主CAMServer CAM伺服器/配置 也可以透過指定資料夾來共用儲存。

cam.enabledSingleProcessingHost

cam.enabledSingleProcessingHost 請指定 cam.clusterHosts 中列出的第一台伺服器的主機名稱。只能在單一主機上執行的進程,例如批次,配置為在cam.enabledSingleProcessingHost中判斷主機是否定義後執行。

僅設定子伺服器

cam.disableLANNetwork=true 您可以透過設定停用 LAN 的 TCP/UDP 連線。對第二個及後續子 CAMServer 執行此設定。

cam.disableLANNetwork=true

Load Balancer の要件詳細

Load Balancer 構成で必要となる要件詳細を記述致します。

1. SSL終端(SSL Termination)

  1. ロードバランサーでSSL証明書をインストールし、SSL/TLSの復号を行う。
  2. クライアントからの通信はHTTPSで受け付け、ロードバランサーからバックエンドにはHTTPを使用。

2. 負荷分散アルゴリズム

  1. ラウンドロビンでの負荷分散
  2. クッキー(Cookie)ベースのセッション維持(セッション・アフィニティー)が必要で、同一 Client のアクセスを同一ノードへ振り分ける機能を有しているか確認が必要。

3. バックエンドサーバー(8080)に転送するヘッダや追加処理

X-Forwarded-Proto
LBがバックエンドサーバーに転送する際に、リクエストが https である事を識別させるヘッダ項目

X-Forwarded-For
LBがバックエンドサーバーに転送する際に、クライアントのIPアドレスを識別させるヘッダ項目

WebSocketのUpgradeヘッダーの処理
HTTPリクエストを解析し、Upgrade ヘッダーを検出すると、それをトリガーにTCP切り替え

昨今のロードバランサー(AWS/GCP/Azure)はデフォルトで設定されている標準的な内容

4. バックエンドサーバとの通信

ロードバランサーから各CAMServerへの通信は以下のプロトコルとポートで行う。

  • プロトコル: HTTP
  • ポート番号: 8080
  • 接続例: http://HOSTNAME:8080/

5. ヘルスチェック(Health Check)

  1. ロードバランサーは次のURLを定期的にリクエストし、条件を満たす場合に「正常」と判定。
  2. ヘルスチェックURL: http://HOSTNAME:8080/CAMServer/healthcheck
  3. ヘルスチェックの条件: HTTPステータスコード: 200レスポンスボディ: {“status”:200}

6. サーバ間データ同期のため、通信許可

  1. リアルタイムなデータ(ユーザプレゼンス状態、メッセージ、チャットルーム等)更新はCAMServer間で同期を行うためFirewall などでサーバ間の通信許可が必要。
  2. サーバ間接続URLは、iniファイルの cam.clusterHosts で定義
    • 例)cam.clusterHosts=camserver1:8080;camserver2:8080;camserver3:8080

※ camserver1 でユーザ情報が更新された場合、以下URLに接続しデータ同期を行う
http://camserver2:8080/CAMServer/syncWebSocketData
http://camserver3:8080/CAMServer/syncWebSocketData

  • 網址をコピーしました!
目錄