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%

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, File Service et Exchange Service, et accède directement à la base de données ; les points d’injection sont les mêmes que sur une machine unique. Les deux types de nœuds font pointer File Service vers le même stockage de fichiers et installent le même Middleware d’autorisation sur UniverCollabService.

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. Tous les nœuds utilisent la même licence, qui couvre le nombre de nœuds exécutés ; voir nœuds de collaboration. 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.