Core & Common
Por que estou recebendo um NATS error. Could not connect to server: Error: connect ECONNREFUSED 127.0.0.1:4222
quando tento iniciar o meu projeto?
O servidor NATS não faz parte do Moleculer. Você tem que o instalar & iniciar antes de executar o seu projeto. Baixe-o aqui: https://nats.io/download/nats-io/nats-server/
[7480] 2019/10/06 14:18:05.801763 [INF] Starting nats-server version 2.0.0 |
Como posso iniciar serviços com o Moleculer Runner no modo de debug?
Use o seguinte comando:
$ node --inspect=0.0.0.0:9229 node_modules/moleculer/bin/moleculer-runner services |
Como adicionar flags V8 ao executar o Moleculer Runner?
$ node --max-old-space-size=8192 node_modules/moleculer/bin/moleculer-runner services |
O que acontece se eu emitir um evento e o serviço que utiliza esse evento estiver offline?
Os eventos de Moleculer são “disparar e esquecer” (fire-and-forget), isso significa que caso o serviço esteja offline, o evento será perdido. Se você quiser eventos persistentes, procure por transportadores que oferecem este tipo de recursos.
Por que o broker encerra sem exibir qualquer erro quando inicio meu serviço?
Se não houver nenhum processo em execução continuamente (por exemplo, conexão com transportador, API gateway, conexão de BD) que mantenha o laço de eventos em execução, o processo será fechado. É um comportamento normal e não um erro. Se você quiser manter seu broker em execução, você deve manter o loop de eventos “ocupado”. Tente habilitar o transportador em moleculer.config.js
.
API Gateway (moleculer-web)
Por que estou recebendo uma mensagem de erro 413 - request entity too large
ao enviar um POST com muitos dados?
Você deve configurar os bodyParsers
para sobrescrever o limite padrão de 100kb
que existe para o corpo de requisições POST. Mais informações.
module.exports = { |
RecommendationUse o recurso de streaming quando você quiser enviar ou receber grandes volumes de dados de/para um serviço.
Como faço para formatar as respostas de erro?
Você deve definir um hook onError
nas configurações do API Gateway. Mais informações.
// api.service.js |
Por que estou recebendo 502 - Bad Gateway
quando a api-gateway está atrás do ALB na AWS?
Você precisa ajustar o keepAliveTimeouts no servidor HTTP. Você pode acessar a instância de servidor HTTP pela função created()
da api-gateway. Mais informações aqui.
module.exports = { |
DB Adapters (moleculer-db)
Como posso gerenciar várias entidades/tabelas por serviço?
No momento, Moleculer DB suporta apenas um modelo por serviço. Este design funciona bem se você estiver usando um banco de dados NoSQL, especialmente bancos de dados orientados a documentos, porque você pode facilmente aninhar todas as entidades filhas. No entanto, para os bancos de dados SQL as coisas ficam complicadas, porque você pode ter relações múltiplas e complexas entre as entidades/tabelas. Devido a isso, é muito difícil (com a atual força de trabalho) criar uma solução que funcionará para todos. Portanto, para cenários com várias entidades e relacionamentos, você terá que escrever seu próprio adaptador.
moleculer-db
viola o Design Orientado pelo Domínio (DDD)?
moleculer-db
é um mixin de serviço simples (e opcional) que auxilia na manipulação de uma entidade/tabela de BD. Não significa que isso obrigue ou force você a alterar sua mentalidade ou sua maneira de implementar/modelar as coisas. Se os recursos fornecidos pelo moleculer-db
não atendem a suas necessidades, então você deve escrever seu próprio serviço com ações personalizadas.