Please enable JavaScript.
Coggle requires JavaScript to display documents.
Arquitetura de Software - Web 1 - Artigo 1, Arquitetura de Software - Web…
Arquitetura de Software - Web 1 - Artigo 1
Introdução
Visão geral do padrão de gateway de API versus comunicação direta de cliente com microsserviço.
Comunicação Direta com Microsserviços
Funcionamento
Os clientes interagem diretamente com os microsserviços sem intermediários. Cada serviço expõe sua própria API ao cliente.
Cenários de Utilização
Adequado para arquiteturas simples, com poucos serviços, ou quando a latência é uma preocupação crítica.
Vantagens e Desvantagens:
Oferece menor latência e simplicidade, mas pode aumentar a complexidade do cliente e dificultar a governança de APIs
Comunicação via API Gateway
Cenários de Utilização:
Ideal para sistemas complexos com múltiplos microsserviços, necessitando de uma camada de abstração.
Vantagens e Desvantagens:
Simplifica o cliente, oferece um único ponto de entrada e facilita a segurança e monitoramento. Pode introduzir latência adicional e ser um ponto único de falha.
Funcionamento:
Um intermediário (API Gateway) recebe as requisições dos clientes e as direciona para os microsserviços apropriados.
Principais Recursos:
Inclui autenticação, autorização, balanceamento de carga, cache, e compressão de requisições.
Comunicação em uma Arquitetura de Microsserviços
Protocolo Síncrono vs. Assíncrono
Vantagens e Desvantagens:
Protocolos síncronos, como HTTP, são simples e intuitivos, mas podem ser menos eficientes em cenários de alta carga. Protocolos assíncronos, como AMQP, são mais escaláveis e permitem comunicação não bloqueante.
Comunicação HTTP vs. Push
Funcionamento e Aplicação em Microsserviços:
HTTP é baseado em requisição-resposta, enquanto a comunicação Push (como WebSockets) permite uma comunicação bidirecional e em tempo real, adequada para atualizações dinâmicas e interativas.
Comunicação Assíncrona Baseada em Mensagens
Comunicação com um Único Destinatário
Funcionamento:
Mensagens são enviadas de um serviço para outro de forma direta.
Quando Utilizar:
Útil para tarefas que podem ser processadas de forma independente e não exigem resposta imediata.
Comunicação Controlada por Evento Assíncrono
Funcionamento:
Baseia-se na publicação de eventos, que são consumidos por microsserviços interessados.
Quando Utilizar:
Ideal para acionar ações em cadeia ou em sistemas onde eventos específicos desencadeiam múltiplas ações.
Vantagens em comparação com comunicação direta por HTTP:
Oferece maior escalabilidade, desacoplamento e resiliência, permitindo que os serviços funcionem de forma mais independente e eficiente.
Arquitetura de Software - Web 1 - Artigo 3
Comunicação Assíncrona Baseada em Mensagens
Importância:
Fundamental em microsserviços para desacoplamento, escalabilidade e eficiência.
Comunicação entre Microsserviços:
Utiliza mensagens para interações assíncronas, reduzindo dependências diretas.
Comunicação de Destinatário Único
Comunicação Ponto a Ponto:
Direta entre dois serviços, ideal para ações específicas.
Uso em Comandos Assíncronos:
Facilita tarefas assíncronas, mantendo a independência dos serviços.
Comunicação de Múltiplos Destinatários
Mecanismo de Publicação/Assinatura:
Permite a um serviço publicar mensagens consumidas por múltiplos destinatários.
Flexibilidade e Escalabilidade:
Amplia a eficácia em sistemas complexos e distribuídos.
Comunicação Controlada por Evento Assíncrono
Publicação de Eventos em Barramento de Eventos:
Centraliza a distribuição de eventos.
Assinatura de Eventos por Microsserviços:
Serviços assinam eventos relevantes, promovendo reação dinâmica a mudanças.
Tecnologias para Mensagens em Sistemas de Produção
Escolha de Tecnologias de Mensagens:
Seleção baseada em requisitos e contexto de negócios.
Implementação de Barramentos de Eventos:
Estrutura para gerenciamento eficiente de eventos.
Publicação Resiliente para o Barramento de Evento
Desafios e Soluções:
Garante consistência e confiabilidade na publicação de eventos, enfrentando desafios como atualizações atômicas.
Arquitetura de Software - Web 1 - Artigo 2
Comunicação em Microsserviços
Aborda os desafios ao migrar de sistemas monolíticos para arquiteturas de microsserviços, focando em como a comunicação eficaz é crucial para o sucesso dessa transição.
Desafios da Transição:
Migrar de um aplicativo monolítico para uma arquitetura de microsserviços apresenta desafios únicos, especialmente em termos de comunicação entre serviços independentes. A escolha correta de estratégias de comunicação é crucial para garantir a eficiência, escalabilidade e manutenibilidade do sistema.
Tipos de Comunicação
Protocolos Síncronos vs. Assíncronos:
Os protocolos síncronos, como HTTP/REST, são baseados em um modelo de solicitação e resposta. Já os assíncronos permitem comunicações que não bloqueiam o emissor, sendo ideais para operações que não necessitam de resposta imediata.
Comunicação de Único Destinatário vs. Múltiplos Destinatários:
A comunicação pode ser direcionada a um único serviço (ponto a ponto) ou a múltiplos destinatários (publicação/assinatura), influenciando a forma como os serviços interagem e se integram.
Integração Assíncrona e Autonomia dos Microsserviços
Minimização da Comunicação Síncrona:
Reduzir a dependência de comunicações síncronas ajuda a evitar gargalos e aumenta a resiliência do sistema, permitindo que os serviços operem de forma mais independente.
Estratégias para Autonomia:
Inclui o uso de eventos e mensagens assíncronas para promover a desacoplação entre os serviços, mantendo a consistência e a integridade dos dados sem comprometer a autonomia dos microsserviços individuais.
Estilos de Comunicação
Comunicação de Solicitação/Resposta com HTTP e REST:
Utiliza padrões baseados na web para comunicações síncronas, adequados para interações diretas e simples entre serviços.
Comunicação por Push e em Tempo Real Baseada em HTTP:
Emprega tecnologias como SignalR e WebSockets para estabelecer canais de comunicação bidirecional e em tempo real, úteis em cenários que requerem atualizações instantâneas e interatividade.