เมนู

CAMServer ซ้ำซ้อน/โหลดบาลานซ์

สารบัญ

เกี่ยวกับความซ้ำซ้อนและการปรับสมดุลโหลด

ด้วยแผนขั้นสูงสุดของ CAMServerง่ายมากในสภาพแวดล้อมภายในองค์กรเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์วิดีโอสามารถดำเนินการซ้ำซ้อนและปรับสมดุลโหลดได้ ซึ่งช่วยให้บริการสามารถดำเนินต่อไปได้แม้ว่าเซิร์ฟเวอร์ตัวใดตัวหนึ่งล่ม และแม้ว่าผู้ใช้จำนวนมากจะใช้งาน ก็สามารถกระจายการประมวลผลและให้บริการได้โดยไม่ลดประสิทธิภาพลง

การกำหนดค่าแบบกระจาย แคมเซิร์ฟเวอร์ อย่างไรก็ตาม การสื่อสารแบบเรียลไทม์ก็เป็นไปได้ ตัวอย่างเช่น,แคมเซิร์ฟเวอร์1 ลูกค้าที่เชื่อมต่อกับCAMServer2 คุณสามารถสนทนาหรือประชุมทางเว็บกับไคลเอนต์อื่นที่เชื่อมต่อกับ การปรับสมดุลโหลดเซิร์ฟเวอร์วิดีโอจะดำเนินการตามจำนวนการประชุมที่ใช้งานอยู่และจำนวนผู้ใช้ที่เข้าร่วม

จำนวนการประชุมผ่านเว็บพร้อมกันนั้นง่ายมากแคมเซิร์ฟเวอร์สิ่งนี้ไม่สามารถทำได้โดยการเพิ่มจำนวนโหนด นอกจากนี้ยังจำเป็นต้องพิจารณาการกำหนดค่าเครือข่ายเพื่อไม่ให้การประชุมทั้งหมดส่งต่อผ่าน VPN หรือเราเตอร์กลางเดียวกัน

การกำหนดค่าการกระจายความซ้ำซ้อน/โหลด

คุณสามารถกำหนดค่าสภาพแวดล้อมที่เหมาะสมที่สุดตามระดับคำขอและต้นทุนของบริษัทของคุณได้

การกำหนดค่าเริ่มต้นเล็กน้อย

  • พื้นที่จัดเก็บ:วาง DB/File บนฝั่ง CAMServer1 และอ้างอิงจาก CAMServer2 เช่นกัน ในกรณีนี้ ผู้ใช้ทุกคนสามารถแชร์ข้อมูลได้แบบเรียลไทม์
  • การสำรองข้อมูล: ข้อมูล DB/ไฟล์จำเป็นต้องได้รับการสำรองไว้ที่ CAMServer2 ทุกวัน
  • การกระจายโหลด: การกระจายโหลดสามารถทำได้โดยการแบ่ง CAMServer ที่เข้าถึงตามแผนก (หรือทำให้เป็นระบบสแตนด์บาย)
  • ความพร้อมใช้งาน: เมื่อเกิดความล้มเหลวเวอร์ชันเว็บแอป ถ้าคุณใช้ cam.clusterHostsการตรวจจับและการเฟลโอเวอร์อัตโนมัติ ในกรณีที่ดิสก์ล้มเหลวการสำรองข้อมูลได้ทำรับประกันข้อมูลถึงวันก่อนหน้า
  • ค่าใช้จ่าย: การกำหนดค่าที่ถูกที่สุด คุณสามารถเริ่มต้นด้วยการกำหนดค่าหน่วยเดียวและขยายขนาดตามปริมาณงาน

การกำหนดค่าที่จัดเก็บข้อมูลภายนอก (NAS)

  • พื้นที่จัดเก็บ: วาง DB/ไฟล์บน NAS ที่จัดเก็บข้อมูลภายนอกที่มีความทนทานสูงในการกำหนดค่า RAID และอ้างอิงทั้ง CAMServer1 และ CAMServer2
  • การสำรองข้อมูล: แม้ว่าจะมีการกำหนดค่า RAID ก็จำเป็นต้องสำรองข้อมูล DB/ไฟล์ทุกวันเพื่อพิจารณาถึงความล้มเหลวของแหล่งจ่ายไฟ/เคส และความล้มเหลวของมนุษย์
  • การกระจายโหลด: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
  • ความพร้อมใช้งาน: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
  • ค่าใช้จ่าย: การกำหนดค่าค่อนข้างถูก

การกำหนดค่าที่จัดเก็บข้อมูลภายนอกซ้ำซ้อน

  1. พื้นที่จัดเก็บ: การกำหนดค่าที่เน้นความพร้อมใช้งานสูงต่อความล้มเหลวของดิสก์โดยใช้เซิร์ฟเวอร์การแชร์ไฟล์ที่ซ้ำซ้อน (Windows Server Failover Clustering +SAN, AWS S3 ฯลฯ)
  2. การสำรองข้อมูล: ข้อมูลจะถูกจำลองแบบอัตโนมัติ ดังนั้นจึงไม่จำเป็นต้องสำรองข้อมูล ทั้งนี้ขึ้นอยู่กับนโยบาย อย่างไรก็ตาม หากคุณกำลังพิจารณาถึงความล้มเหลวของมนุษย์ (เช่น การลบดิสก์ด้วยตนเอง) คุณจะยังคงต้องมีการสำรองข้อมูล
  3. การกระจายโหลด: เช่นเดียวกับการกำหนดค่าเริ่มต้นขนาดเล็ก
  4. ความพร้อมใช้งาน: เว็บเซิร์ฟเวอร์เหมือนกับการกำหนดค่าเริ่มต้นขนาดเล็ก การสลับอัตโนมัติสามารถทำได้แม้ในกรณีที่เกิดความล้มเหลวเนื่องจากดิสก์หรือตัวเครื่องขัดข้อง
  5. ค่าใช้จ่าย: ค่าใช้จ่ายในการแนะนำสูง 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)

  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

  • URL をkoピーしました!
สารบัญ