Comunicação Síncrona e Assíncrona
Comunicação Síncrona e Assíncrona
Comunicação Síncrona e Assíncrona
Microsserviços
Com API REST, Java 11, Spring Boot, Javascript ES6,
Node.js, Express.js, RabbitMQ, Docker e Heroku.
Chamadas a APIs são síncronas, porém, o processo executado pela API pode ser
assíncrono. Exemplo:
https://sistema-exemplo.com.br/api/processar-vendas
Você pode programar essa API para esperar para dar a resposta assim que todas as
vendas forem processadas, ou você pode devolver uma resposta como “Processo
iniciado.”, e deixar o processamento executando em background.
O processamento da API é assíncrono, pode terminar daqui a 10, 15, 20 minutos, etc.
Mas a requisição HTTP não é, você faz a requisição e tem algum tipo de resposta, seja ela
200, 400, 500, etc.
Métodos HTTP
200 – OK (sucesso)
503 – SERVICE UNAVALIABLE (servidor não está pronto para lidar com a
requisição, sobrecarregado ou em manutenção)
• Apache Kafka
• RabbitMQ
• Azure Scheduler
• IBM MQ
• Apache ActiveMQ
• AmazonMQ
• Google Cloud Pub/Sub
RabbitMQ
• Direct Exchange
• Fanout Exchange
• Topic Exchange (esta que iremos utilizar)
• Headers Exchange
RabbitMQ – Direct Exchange
• Nome
• Durabilidade (se irão continuar existindo quando o broker
reiniciar)
• Auto-delete (Exchange é deletado quando a sua última fila é
desvinculada dele)
• Argumentos (são opcionais, para plugins e features
específicas)
RabbitMQ
• Nome
• Durabilidade (se irão sobreviver a um restart do broker)
• Exclusivas (usadas apenas para uma conexão, e removidas
quando a conexão é fechada)
• Auto-delete (é removida quando seu último consumer se
desvincula dela)
• Argumentos (mesma lógica das exchanges)
Referências e links
utilizados