[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
nicholas de paula
Criador nicholas de paula 27/05/2022

Minha dúvida é o seguinte quando a gente utiliza a estrutura de micro serviços não utilizamos os controles, por exemplo eu tenho um serviço que emite notas fiscais e nele teria o metodo do para emitir a nota fiscal o método para cancelar a nota fiscal e um outro método para checar se a nota fiscal que está válida ou não numa estrutura normal , tudo isso estaria dentro de um único controle, porém como estamos trabalhando com micro serviços teríamos que criar um job pra cada um desses métodos e então nós não utilizaremos mais os controles correto?

 

Ou a possibilidade de trabalhar com os controles como que funcionaria neste caso

Manager Carlos Ferreira 27/05/2022

Olá, Nicholas!
Tudo bem?

Só para entender melhor a sua pergunta amigo, quando você diz "quando a gente utiliza a estrutura de micro serviços não utilizamos os controles", se refere aos controllers do Laravel mesmo, ou a algum classe tipo serviço dentro do sistema?

----

Sobre  o uso de JOBs, sempre você pode usar para fazer algum processamento pesado, como por exemplo processar um arquivo de vídeo (integrando com alguma I.A. da Google ou da Aws).

Neste caso, jogamos o processo para um job para ele ser processado em outro microservices, a ideia foi justamente trabalhar a comunicação assíncrona entre os microsserviços.

Ficou mais claro? Se quiser te dou outros exemplos.

Carlos Ferreira
Criador nicholas de paula 27/05/2022

Isso justamente seriam os controles do Laravel mesmo, Eu entendi a aparte da comunicação entre jobs e filas pra poder mandar processos de um serviço para o outro, hoje vendo algumas outras aulas eu vi também que a comunicação ocorre também via apis, quando se tem a necessidade de por exemplo pegar alguns dados de um serviço, porém agora me levantou um outro. Existe alguma autenticação entre serviços ? Por exemplo eu tenho um serviço de estoque aonde que o meu gateway ele acessa meu serviço de estoque e traz  os itens que eu tenho estoque, porém por mais que o serviço de estoque ele não seja público que ninguém tenha a url daquele serviço seria o ideal ter uma indicação entre um serviço de estoque e o gateway pra que  somente serviços autorizados possam se conectar de que maneira podemos fazer isso? 

nicholas de paula
Manager Carlos Ferreira 27/05/2022

Sim, neste curso aqui passo as estratégias de autenticação: https://academy.especializati.com/curso/laravel-microservices-autenticacao-autorizacao-acl

as chamadas assíncronas que usa o RabbitMQ você não precisa se preocupar com a segurança, porque como os microservices já estarão usando as credenciais deste serviço de messageria, do ponto de vista de segurança está ok, porque ninguém consege ter acesso externo.

Agora, para as chamas síncronas (http), você pode usar a ideia que passo ao longo dos microservices, que é exigir no header da request o token único de cada microservice, neste caso, precisa criar um middleware que vai validar se o token recebido realmente está correto.

Pegou a ideia?

Agora, se quer algo mais robusto, que vai ser virar com toda a parte de usuários, acl, segurança e autenticação dos microservices, dá uma olhada no Keycloak;

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!