Modo de memória compartilhada
App supervisorEnterprise Edition+Introdução
Quando você deseja realizar uma separação de domínios de negócio em nível de aplicação, mas não quer introduzir uma arquitetura complexa de implantação e operação, pode utilizar o modo multi-aplicação de memória compartilhada.
Neste modo, várias aplicações podem ser executadas simultaneamente em uma única instância do NocoBase. Cada aplicação é independente, pode se conectar a um banco de dados independente e pode ser criada, iniciada e interrompida individualmente, mas elas compartilham o mesmo processo e espaço de memória, permitindo que você mantenha apenas uma instância do NocoBase.
Guia de uso
Configuração de variáveis de ambiente
Antes de utilizar a funcionalidade multi-aplicação, certifique-se de que as seguintes variáveis de ambiente foram definidas ao iniciar o NocoBase:
Criação de aplicação
No menu de configurações do sistema, clique em "App Supervisor" para acessar a página de gerenciamento de aplicações.

Clique no botão "Adicionar novo" para criar uma nova aplicação.

Explicação dos itens de configuração
Inicialização da aplicação
Clique no botão Iniciar para iniciar a sub-aplicação.
Se a opção "Iniciar no primeiro acesso" foi marcada durante a criação, ela será iniciada automaticamente no primeiro acesso.

Acesso à aplicação
Clique no botão Acessar para abrir a sub-aplicação em uma nova aba.
Por padrão, utiliza-se /apps/:appName/admin/ para acessar a sub-aplicação, por exemplo:
Além disso, você também pode configurar um domínio independente para a sub-aplicação, sendo necessário apontar o domínio para o IP atual; se estiver usando Nginx, também precisará adicionar o domínio na configuração do Nginx.
Interrupção da aplicação
Clique no botão Parar para interromper a sub-aplicação.

Status da aplicação
Você pode visualizar o status atual de cada aplicação na lista.

Exclusão de aplicação
Clique no botão Excluir para remover a aplicação.

Perguntas frequentes
1. Gerenciamento de plugins
Os plugins que outras aplicações podem utilizar são os mesmos da aplicação principal (incluindo a versão), mas os plugins podem ser configurados e utilizados de forma independente.
2. Isolamento de banco de dados
Outras aplicações podem configurar bancos de dados independentes. Se desejar compartilhar dados entre aplicações, isso pode ser feito através de fontes de dados externas.
3. Backup e migração de dados
Atualmente, o backup de dados na aplicação principal não suporta a inclusão de dados de outras aplicações (contém apenas informações básicas da aplicação); é necessário realizar o backup e a migração manualmente dentro das outras aplicações.
4. Implantação e atualização
No modo de memória compartilhada, as versões das outras aplicações seguirão automaticamente a atualização da aplicação principal, garantindo a consistência das versões das aplicações.
5. Sessão da aplicação
- Se a aplicação usar uma chave JWT independente, a sessão da aplicação será independente da aplicação principal e de outras aplicações. Se acessar diferentes aplicações através de subcaminhos do mesmo domínio, como o TOKEN da aplicação é armazenado no LocalStorage, será necessário fazer login novamente ao alternar entre aplicações. Recomenda-se configurar domínios independentes para diferentes aplicações para obter um melhor isolamento de sessão.
- Se a aplicação não usar uma chave JWT independente, ela compartilhará a sessão da aplicação principal, não sendo necessário fazer login novamente ao retornar à aplicação principal após acessar outras aplicações no mesmo navegador. No entanto, existe um risco de segurança: se os IDs de usuário forem duplicados em diferentes aplicações, isso pode levar ao acesso não autorizado aos dados de outras aplicações.

