Sobre redundância e balanceamento de carga
Com o plano Ultimate do CAMServer,Muito fácil em um ambiente localA redundância e o balanceamento de carga do servidor Web e do servidor de vídeo podem ser executados. Isso permite que os serviços continuem mesmo se um servidor ficar inativo e, mesmo quando usado por um grande número de usuários, é possível distribuir o processamento e fornecer serviços sem degradar o desempenho.
configuração distribuída CAMServer
No entanto, a comunicação em tempo real é possível. por exemplo,CAMServer1
Um cliente conectado aCAMServer2
Você pode conversar ou realizar uma webconferência com outro Cliente conectado ao . O balanceamento de carga do servidor de vídeo é realizado com base no número de reuniões ativas e no número de usuários participantes.
O número de webconferências simultâneas é simplesmenteCAMServer
Isto não pode ser alcançado simplesmente aumentando o número de nós. Também é necessário considerar a configuração da rede para que todas as reuniões não sejam retransmitidas pela mesma VPN ou roteador central.
Configuração de redundância/distribuição de carga
Você pode configurar o ambiente ideal de acordo com o nível de solicitação e custo da sua empresa.
Configuração inicial pequena
- Armazenar:Coloque DB/File no lado CAMServer1 e referencie-o também no CAMServer2. Mesmo neste caso, todos os utilizadores podem partilhar dados em tempo real.
- cópia de segurança: Os dados do banco de dados/arquivo precisam ser copiados no CAMServer2 todos os dias.
- Distribuição de carga: A distribuição de carga é possível dividindo o CAMServer acessado por departamento (ou tornando-o um sistema standby).
- disponibilidade: Quando ocorre uma falha,Versão do aplicativo da web Se você usar
cam.clusterHosts
detecção e failover automático. Em caso de falha no discocópia de segurançafoi feitoDados garantidos até o dia anterior. - custo:A configuração mais barata. Você pode começar com uma configuração de unidade única e aumentar de acordo com a carga.
Configuração de armazenamento externo (NAS)
- Armazenar: Coloque o banco de dados/arquivo em um NAS de armazenamento externo altamente durável em uma configuração RAID e consulte CAMServer1 e CAMServer2.
- cópia de segurança: Mesmo com uma configuração RAID, é necessário fazer backup dos dados do banco de dados/arquivos todos os dias para compensar falhas na fonte de alimentação/caixa e falhas humanas.
- Distribuição de carga: Igual à configuração inicial pequena.
- disponibilidade: Igual à configuração inicial pequena.
- custo: Configuração relativamente barata.
Configuração de armazenamento externo redundante
- Armazenar: uma configuração que enfatiza a alta disponibilidade contra falhas de disco usando servidores redundantes de compartilhamento de arquivos (Windows Server Failover Clustering +SAN, AWS S3, etc.).
- cópia de segurança: os dados são replicados automaticamente, portanto, os backups não são necessários dependendo da política. No entanto, se você estiver considerando uma falha humana (como apagar manualmente o disco), ainda precisará de um backup.
- Distribuição de carga: Igual à configuração inicial pequena.
- disponibilidade:O servidor web é igual à configuração inicial pequena. A comutação automática é possível mesmo em caso de falha devido a falha do disco ou do chassi.
- custo:O custo de introdução é alto. O AWS S3 pode ser construído de forma barata, mas não é uma opção se sua prioridade for local.
Configuração do balanceador de carga
- Armazenar: Configuração inicial pequena / NAS / SAN pode ser selecionada.
- cópia de segurança: Igual à configuração inicial pequena/NAS/SAN.
- Distribuição de carga:Ao colocar o Load Balancer na frente do CAMServer, é possível redundância e distribuição de carga.* Load Balancer 構成の要件詳細も確認してください。
- disponibilidade: o failover automático é possível para todas as camadas quando combinado com uma configuração de armazenamento externo redundante.
- custo:O custo de introdução é alto.
Configurações de redundância/balanceamento de carga
Configurações comuns para cada servidor distribuído
Para suportar redundância e balanceamento de carga do CAMServer, instale o CAMServer em cada servidor distribuído,CAMServer/cam.ini
Adicione a seguinte entrada ao arquivo.
cam.clusterHosts=camserver1;camserver2
cam.clusterHostsDesc=camserver1 がメインサーバ、camserver2 は待機系サーバです。
cam.serverDatePath=\\disk\CAMServer\data
cam.enabledSingleProcessingHost=camserver1
cam.clusterHosts
cam.clusterHosts
é o nome do host de cada servidor distribuído. ;
Enumerar separado por. nome do host do lado do cliente https://nome do host/
deve ser acessível.
cam.clusterHosts=camserver1;camserver2
Se você deseja separar CAMServers para cada departamento, escreva o nome do host no início de cada arquivo ini do CAMServer. A ordem de enumeração é afetada ao selecionar o servidor de conexão inicial e o servidor de vídeo na inicialização. TambémVersão do aplicativo da web Usando , a conexão failover é possível em caso de falha.
cam.clusterHostsDesc
cam.clusterHostsDesc
pode alterar o comentário no campo de descrição do servidor distribuído.
cam.serverDatePath
cam.serverDatePath
Especifica o banco de dados onde salvar os anexos carregados. Especifique um disco compartilhado, como um NAS, que possa ser acessado a partir de servidores distribuídos.
*Se não houver disco compartilhado, o sub CAMServer é o CAMServer principal CAMServer/config
O armazenamento também pode ser compartilhado especificando uma pasta.
cam.enabledSingleProcessingHost
cam.enabledSingleProcessingHost
Especifique o nome do host do primeiro servidor listado em cam.clusterHosts. Os processos que só podem ser executados em um único host, como processamento em lote, são configurados para serem executados após determinar se o host está definido em cam.enabledSingleProcessingHost.
Definir apenas subservidor
cam.disableLANNetwork=true
Você pode desativar conexões TCP/UDP para LAN configurando . Execute esta configuração para o segundo e sub CAMServers subseqüentes.
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