Visão Geral
O curso Apache ActiveMQ Developer é voltado para desenvolvedores que desejam aprender como integrar aplicações com o ActiveMQ de forma prática e robusta. Serão abordadas as principais APIs, bibliotecas, protocolos, boas práticas de design de mensageria e estratégias de tratamento de falhas. O foco está em capacitar o aluno a enviar, consumir e processar mensagens com eficiência utilizando diferentes linguagens e abordagens modernas de desenvolvimento.
Conteúdo Programatico
Módulo 1: Arquitetura e Fundamentos (2h)
- Conceitos essenciais de mensageria (Message Broker, Assíncrono, Reliable Delivery)
- JMS (Java Message Service) e seus componentes
- ActiveMQ Classic vs ActiveMQ Artemis
- Protocolos suportados: JMS, STOMP, AMQP, MQTT, REST
Módulo 2: Instalando e Executando o ActiveMQ (2h)
- Download, instalação e configuração inicial
- Uso com Docker e Docker Compose
- Navegação pelo Web Console
- Criação e observação de filas e tópicos
Módulo 3: Produzindo e Consumindo Mensagens (4h)
- Programando produtores e consumidores com Java (JMS)
- Envio de mensagens texto, JSON e binário
- Mensagens persistentes e não persistentes
- Uso de propriedades e cabeçalhos
- Demonstrações com Python (stomp.py) e Node.js
Módulo 4: Design de Integrações com Mensageria (4h)
- Estratégias de consumo: síncrono, assíncrono, concorrente
- Filtros de mensagens (Selectors)
- Modo Ponto-a-Ponto vs Publish/Subscribe
- Padrões: Work Queue, Competing Consumers, Event Notification
- Dead Letter Queue (DLQ) e Retry Manual
Módulo 5: Gerenciamento e Monitoramento (3h)
- Monitorando filas com Web Console
- Estatísticas, conexões e consumidores ativos
- Troubleshooting de mensagens não entregues
- Log e métricas com Jolokia e Prometheus
Módulo 6: Integração em Ambientes Reais (3h)
- Integração com Spring Boot e Spring JMS
- Testes locais com Docker
- Uso de ferramentas de teste (Postman, curl, MQTT.fx, stomp-cli)
- Simulação de falhas e recuperação
Módulo 7: Boas Práticas de Desenvolvimento com ActiveMQ (2h)
- Evitando duplicidade e perda de mensagens
- Escalabilidade e concorrência no consumo
- Cuidados com o acoplamento entre produtor e consumidor
- Tratamento de exceções, transações e redelivery