Guide de déploiement

Choisissez la forme de déploiement d’une application Server SDK selon son échelle, de la machine unique aux nœuds de collaboration multiples.

Cette page décrit trois formes de déploiement d’une application Server SDK selon l’échelle. Lisez d’abord Collaboration SDK, import et export et les exemples pour voir comment les modules s’assemblent ; le déploiement place ce même assemblage sur un ou plusieurs nœuds.

FormeCollaborationImport et exportÉchelle recommandée
Machine uniqueUn nœudMême nœudApplications locales, développement et tests, quelques utilisateurs internes
Séparer l’import et l’exportUn nœudNœud distinctService en ligne multi-utilisateurs dans la capacité d’un nœud
Plusieurs nœudsPlusieurs nœudsNœud distinctAu-delà de la capacité d’un nœud, ou basculement entre nœuds

Machine unique

Toutes les fonctions sont déployées dans un seul processus Node.js et le navigateur s’y connecte directement.

100%
  • Le Database Adapter implémente le contrat IDatabaseAdapter ; voir Adaptateurs de base de données.
  • Le stockage des tâches et des fichiers, les délais d’expiration et les liens de téléchargement de l’import et de l’export sont décrits dans Intégration de l’échange de fichiers.
  • Une conversion sollicite fortement le processeur et un fichier volumineux ralentit la collaboration.

Séparez l’import et l’export lorsque les conversions pèsent sur la réactivité de la collaboration ou que le service doit servir de nombreux utilisateurs en continu.

Séparer l’import et l’export

L’import et l’export passent sur un nœud distinct ; la collaboration reste sur un nœud ; la passerelle route séparément les deux types de chemins ; les deux utilisent la même base de données.

100%

Le nœud d’import et d’export assemble le Database Adapter, un UniverCollabService et le module de conversion, et accède directement à la base de données ; les points d’injection sont les mêmes que sur une machine unique.

Les documents servis par un seul nœud de collaboration sont limités par la mémoire du processus. Passez à plusieurs nœuds au-delà de cette capacité ou pour le basculement.

Plusieurs nœuds de collaboration

Plusieurs nœuds de collaboration exécutent le même code sur la même base de données. Un adaptateur pub/sub relaie les Rooms, la Presence et les diffusions entre les nœuds, un ticket store partage les Session Tickets et @univerjs-pro/collaboration-cluster-redis fournit l’implémentation Redis. Exemple de référence : Multi-node.

100%

Chaque nœud de collaboration transmet l’adaptateur pub/sub et le ticket store Redis à l’Endpoint ; le reste de l’assemblage reste identique :

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 });

Pour aller plus loin

Un très grand document ralentit les requêtes des petits documents du même nœud. Répartissez les nœuds en groupes selon la taille des documents et laissez la passerelle router les grands documents vers un groupe dédié ; la clé de routage reste l’unit ID et tous les groupes partagent la base de données et le pub/sub.

Que pensez-vous de ce guide ?

© 2026 DreamNum Co., Ltd.