關於冗餘和負載平衡
借助 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/文件數據,以應對電源/外殼故障和人為故障。
- 負荷分配:與小啟動配置相同。
- 可用性:與小啟動配置相同。
- 成本:相對便宜的配置。
冗餘外部儲存配置
- 貯存:透過使用冗餘檔案共用伺服器(Windows Server 故障轉移叢集 +SAN、AWS S3 等)強調針對磁碟故障的高可用性的配置。
- 備份:資料會自動複製,因此根據策略不需要備份。但是,如果您考慮人為故障(例如手動擦除磁碟),您仍然需要備份。
- 負荷分配:與小啟動配置相同。
- 可用性:web伺服器與小啟動配置相同。即使由於磁碟或機箱故障而發生故障,也可以自動切換。
- 成本: 引進成本高。 AWS S3 可以以低成本構建,但如果您的重點是本地,那麼它不是一個選擇。
負載平衡器配置
- 貯存:小型啟動配置/NAS/SAN可選。
- 備份:與小型啟動配置/NAS/SAN 相同。
- 負荷分配:透過將負載平衡器放置在CAMServer之前,可以實現冗餘和負載分配。附注(补充信息) 文号 負載平衡器配置要求詳細信息還請檢查。
- 可用性:與冗餘外部儲存配置結合使用時,所有層都可以進行自動故障轉移。
- 成本: 引進成本高。
冗餘/負載平衡設置
每個分散式伺服器的通用設置
為了支援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
負載平衡器要求詳細信息
我們將詳細描述負載平衡器配置所需的要求。
1. SSL 終止
- 在負載平衡器上安裝 SSL 憑證並執行 SSL/TLS 解密。
- 使用 HTTPS 接受來自客戶端的通信,從負載平衡器到後端使用 HTTP。
2.負載平衡演算法
- 使用循環法進行負載平衡
- 需要基於Cookie的會話維護(會話親和性),並且需要確認其具有將相同Client的存取分發到同一節點的功能。
3. 標頭和附加處理傳輸到後端伺服器(8080)
X-轉發-原型
LB轉送到後端伺服器時將請求標識為https的標頭項
X-轉寄-For
LB轉送後端伺服器時標識客戶端IP位址的頭項。
處理 WebSocket 升級標頭
分析HTTP請求並偵測Upgrade標頭,觸發TCP切換
4.與後端伺服器通信
使用以下協定和連接埠執行從負載平衡器到每個 CAMServer 的通訊。
- 協定:HTTP
- 埠號:8080
- 連線範例:http://HOSTNAME:8080/
5. 健康檢查
- 負載平衡器定期請求以下 URL,如果滿足條件,則確定其「正常」。
- 健康檢查網址:http://HOSTNAME:8080/CAMServer/healthcheck
- 健康檢查條件: HTTP 狀態碼:200 回應正文:{“status”:200}
6.伺服器間資料同步的通訊權限
- 即時資料更新(使用者狀態、訊息、聊天室等)在 CAMServer 之間同步,因此需要使用防火牆等允許伺服器之間的通訊。
- 伺服器到伺服器的連線 URL 在 ini 檔案的 cam.clusterHosts 中定義。
- 範例)cam.clusterHosts=camserver1:8080;camserver2:8080;camserver3:8080
*如果camserver1上的使用者資訊已更新,請連接到以下URL並同步資料。
http://camserver2:8080/CAMServer/syncWebSocketData
http://camserver3:8080/CAMServer/syncWebSocketData