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:

APP_DISCOVERY_ADAPTER=local
APP_PROCESS_ADAPTER=local

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

Item de configuraçãoDescrição
Nome da aplicaçãoNome da aplicação exibido na interface
Identificador da aplicaçãoIdentificador da aplicação, globalmente único
Modo de inicialização- Iniciar no primeiro acesso: a sub-aplicação inicia apenas quando o usuário a acessa pela primeira vez via URL
- Iniciar com a aplicação principal: inicia a sub-aplicação simultaneamente ao iniciar a aplicação principal (aumenta o tempo de inicialização da aplicação principal)
AmbienteNo modo de memória compartilhada, apenas o ambiente local está disponível, ou seja, local
Conexão de banco de dadosUsado para configurar a fonte de dados principal da aplicação, suportando três métodos:
- Novo banco de dados: reutiliza o serviço de banco de dados atual para criar um banco de dados independente
- Nova conexão de dados: conecta-se a outros serviços de banco de dados
- Modo Schema: quando a fonte de dados principal atual é PostgreSQL, cria um Schema independente para a aplicação
AtualizaçãoSe existirem dados de uma aplicação NocoBase de versão inferior no banco de dados conectado, define se permite a atualização automática para a versão atual da aplicação
Chave JWTGera automaticamente uma chave JWT independente para a aplicação, garantindo que a sessão da aplicação seja independente da aplicação principal e de outras aplicações
Domínio personalizadoConfigura um domínio de acesso independente para a aplicaçã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:

http://localhost:13000/apps/a_7zkxoarusnx/admin/

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.