デプロイガイド

規模に応じて Server SDK アプリケーションのデプロイ形態を選びます。単一マシン、インポートとエクスポートの分離、複数の共同編集ノード。

このページでは、Server SDK アプリケーションの 3 つのデプロイ形態を規模順に紹介します。先に Collaboration SDK、インポートとエクスポート、サンプルを読み、モジュールの組み立て方を把握してください。デプロイは、同じ組み立てを 1 つまたは複数のノードに配置することです。

形態共同編集インポートとエクスポート推奨規模
単一マシン1 ノード同じノードローカルアプリケーション、開発とテスト、少数の社内ユーザー
インポートとエクスポートの分離1 ノード独立ノード複数ユーザー向けのオンラインサービス、1 ノードの容量内
複数ノード複数ノード独立ノード1 ノードの容量を超える場合、またはノードのフェイルオーバーが必要な場合

単一マシン

すべての機能を 1 つの Node.js プロセスにデプロイし、ブラウザーが直接接続します。

100%
  • Database Adapter は IDatabaseAdapter の契約を実装します。データベースアダプターを参照してください。
  • インポートとエクスポートのタスクとファイルの保存、タイムアウト、ダウンロードリンクはファイル交換の統合を参照してください。
  • 変換は CPU 負荷が高く、大きなファイルは共同編集を遅くします。

変換が共同編集の応答に影響する場合や、多数のユーザーに継続してサービスを提供する場合は、インポートとエクスポートを分離します。

インポートとエクスポートの分離

インポートとエクスポートを独立ノードに移します。共同編集は 1 ノードのまま、ゲートウェイが 2 種類のパスを分けてルーティングし、両者は同じデータベースに接続します。

100%

インポートとエクスポートのノードは Database Adapter、UniverCollabService、変換モジュールを組み立て、データベースに直接アクセスします。注入ポイントは単一マシンと同じです。

1 つの共同編集ノードが扱えるドキュメント数はプロセスのメモリで決まります。容量を超える場合やフェイルオーバーが必要な場合は複数ノードに進みます。

複数の共同編集ノード

複数の共同編集ノードが同じコードを実行し、同じデータベースに接続します。pub/sub アダプターがノード間で Room、Presence、ブロードキャストを中継し、ticket store が Session Ticket を共有します。@univerjs-pro/collaboration-cluster-redis が Redis 実装を提供します。参考サンプル: Multi-node。

100%

各共同編集ノードは Redis の pub/sub アダプターと ticket store を Endpoint に渡します。それ以外の組み立てはそのままです。

TypeScript
import { createClient } from "redis";import { RedisPubSubAdapter, RedisSessionTicketStore } from "@univerjs-pro/collaboration-cluster-redis";import { UniverCollabEndpoint } from "@univerjs-pro/collaboration-endpoint";const client = createClient({ url: process.env.REDIS_URL });const subClient = client.duplicate();await Promise.all([client.connect(), subClient.connect()]);const pubSub = new RedisPubSubAdapter({ pubClient: client, subClient });const ticketStore = new RedisSessionTicketStore({ client });const endpoint = new UniverCollabEndpoint(service, { pubSub, ticketStore });

さらに先へ

1 つのノードで非常に大きなドキュメントを処理すると、同じノード上の小さなドキュメントのリクエストが遅くなります。ドキュメントの規模でノードプールを分け、ゲートウェイが大きなドキュメントを専用プールにルーティングするようにできます。ルーティングキーは unit ID のままで、すべてのプールがデータベースと pub/sub を共有します。

このガイドはいかがですか?

© 2026 DreamNum Co., Ltd.