Title: Desenvolvimento de Software / ActiveMQ
Tags: Desenvolvimento_de_Software Resumo
On every note of this deck, unless a note says otherwise:
tldr: - Apache ActiveMQ Artemis (ActiveMQ) é um broker/MoM open source para mensageria assíncrona de alta performance, com clusterização, alta disponibilidade e suporte a múltiplos protocolos.
- É escrito em Java (requer Java 11+), tem poucas dependências e pode ser usado isolado, embutido na aplicação ou integrado a servidores Jakarta/Java EE.
- Arquitetura baseada em POJOs e com journal por servidor para persistência eficiente.
- Suporta modelos de comunicação:
- Point-to-point (fila, entrega direta ao consumidor)
- Pub/Sub (tópicos, consumidores se inscrevem e consomem)
- APIs client-side disponíveis:
- Core API (mais controle e menos complexidade que JMS)
- JMS 2.0 / Jakarta Messaging 2.0
- Jakarta Messaging 3.0 (mesma API, muda o pacote de javax para jakarta)
- Agnóstico a protocolos: suporta AMQP, OpenWire, MQTT, STOMP, HornetQ e Core (Artemis).
- Formas de executar o broker:
- Standalone (processo/serviço separado)
- Embedded (dentro da aplicação Java)
- Integrado com Jakarta/Java EE (via contêiner como Tomcat/WildFly)
- Mensagens (padrão JMS): cabeçalho + propriedades opcionais + corpo:
- Cabeçalho inclui regras como expiração (TTL/max delivery count) e persistência (por padrão, persistente)
- Corpo pode ser TextMessage, MapMessage, BytesMessage, StreamMessage, ObjectMessage ou Message (vazia)
- Federação (replicação entre brokers do cluster): distribui mensagens entre nós; tipologias:
- Simétrica (interconexão entre nós; recomenda max-hops = 1 para evitar duplicação)
- Full mesh (todos os nós conectados entre si)
- Anel (ring) (conexão unidirecional em ciclo; max-hops = n-1)
- Fan-out (estrutura em árvore, propagação hierárquica para todos os nós)
link: https://documentacao.online/estudos/es2v.html

front: (Inédita/Prof. ) Acerca dos sistemas de mensageria, julgue o item abaixo. O Apache ActiveMQ Artemis é um sistema de mensageria de código fechado, desenvolvido em C#, com foco em disponibilidade e performance.
response: Errado
comment: Dois erros basilares na construção da afirmativa. O primeiro deles é que o ActiveMQ é de código aberto, open source, e o segundo é a linguagem de desenvolvimento: o ActiveMQ é desenvolvido em Java, e usado no seu ecossistema. Portanto, incorreta a afirmativa. (Gabarito: Errado)
title: ActiveMQ
Other fields (not shown on cards):
back: Errado - Dois erros basilares na construção da afirmativa. O primeiro deles é que o ActiveMQ é de código aberto, open source, e o segundo é a linguagem de desenvolvimento: o ActiveMQ é desenvolvido em Java, e usado no seu ecossistema. Portanto, incorreta a afirmativa. (Gabarito: Errado)

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre o ecossistema Apache, julgue o item abaixo. O Apache ActiveMQ Artemis, framework de mensageria de código aberto, é amplamente adotado por suportar diversos protocolos de troca de mensagens, como AMQP e MQTT.
response: Certo
comment: Perfeito! Uma das vantagens do ActiveMQ é justamente ele ser agnóstico em relação ao protocolo de implementação, permitindo o uso de um grande conjunto de protocolos, adaptando a aplicação à situação mais desejada. (Gabarito: Certo)
title: ActiveMQ
Other fields (not shown on cards):
back: Certo - Perfeito! Uma das vantagens do ActiveMQ é justamente ele ser agnóstico em relação ao protocolo de implementação, permitindo o uso de um grande conjunto de protocolos, adaptando a aplicação à situação mais desejada. (Gabarito: Certo)

front: (Inédita/Prof. ) A empresa XPTO, inscrita em um tópico de mensageria em um ActiveMQ, recebe uma mensagem JMS com o corpo vazio. O tipo de mensagem JMS recebida pela empresa XPTO é:
a) BytesMessage
b) MapMessage
c) ObjectMessage
d) Message
e) TextMessage
response: Alternativa D
comment: Tipos de Mensagens JMS TextMessage MapMessage BytesMessage StreamMessage ObjectMessage Message Como a resposta recebida possuia um campo vazio, podemos afirmar que o tipo de mensagem recebida foi Message. (Gabarito: Letra D)
title: ActiveMQ
Other fields (not shown on cards):
back: Alternativa D - Tipos de Mensagens JMS TextMessage MapMessage BytesMessage StreamMessage ObjectMessage Message Como a resposta recebida possuia um campo vazio, podemos afirmar que o tipo de mensagem recebida foi Message. (Gabarito: Letra D)

front: (Inédita/Prof. ) A entidade XPTO, empresa pública, adota um sistema ActiveMQ de mensageria e somente tem a estrutura para publicar uma mensagem unicamente em um nó local, porém, com necessidade de que essa mensagem chegue a todos os outros consumidores, mesmo que não ligados diretamente a esse nó inicial. Qual deve ser a topologia de federação adotada pela XPTO para satisfazer essa necessidade?
a) Mesh
b) Symetric
c) Full Mesh
d) Fan out
e) Ring
response: Alternativa D
comment: A topologia de rede que permite a publicação em um único nó e que, mesmo assim, a mensagem se propague a todos os nós - mesmo que não estejam conectados de forma direta ao nó inicial - é a topologia Fan Out. (Gabarito: Letra D)
title: ActiveMQ
Other fields (not shown on cards):
back: Alternativa D - A topologia de rede que permite a publicação em um único nó e que, mesmo assim, a mensagem se propague a todos os nós - mesmo que não estejam conectados de forma direta ao nó inicial - é a topologia Fan Out. (Gabarito: Letra D)

front: (COPERVE UFSC/TAE UFSC/2022 - Adaptada) Julgue a afirmativa abaixo. O Apache ActiveMQ permite a troca de mensagens entre aplicações remotas utilizando o protocolo AMQP (Advanced Message Queuing Protocol).
response: Correto
comment: O ActiveMQ é uma ferramenta de mensageria para projetos menores, da Apache. Apesar disso, ele é agnóstico a protocolos, o que permite a implementação de diversos protocolos - dentre eles, o AMQP. Portanto, correta a afirmativa.
title: ActiveMQ
Other fields (not shown on cards):
back: Correto - O ActiveMQ é uma ferramenta de mensageria para projetos menores, da Apache. Apesar disso, ele é agnóstico a protocolos, o que permite a implementação de diversos protocolos - dentre eles, o AMQP. Portanto, correta a afirmativa.

front: (COPERVE UFSC/TAE UFSC/2018 - Adaptada) Julgue a afirmativa abaixo. O servidor Apache ActiveMQ implementa os padrões JMS e AMQP.
response: Correto
comment: A mesma pergunta, mas em anos diferentes. Sim, o ActiveMQ implementa os padrões JMS (Java Message System) e AMQP. Portanto, correta a afirmativa.
title: ActiveMQ
Other fields (not shown on cards):
back: Correto - A mesma pergunta, mas em anos diferentes. Sim, o ActiveMQ implementa os padrões JMS (Java Message System) e AMQP. Portanto, correta a afirmativa.

front: (Inédita/Prof. ) Acerca dos sistemas de mensageria, julgue o item abaixo. O Apache ActiveMQ Artemis é um sistema de mensageria de código fechado, desenvolvido em C#, com foco em disponibilidade e performance.
response: Errado
comment: Dois erros basilares na construção da afirmativa. O primeiro deles é que o ActiveMQ é de código aberto, open source, e o segundo é a linguagem de desenvolvimento: o ActiveMQ é desenvolvido em Java, e usado no seu ecossistema. Portanto, incorreta a afirmativa.
title: ActiveMQ
Other fields (not shown on cards):
back: Errado - Dois erros basilares na construção da afirmativa. O primeiro deles é que o ActiveMQ é de código aberto, open source, e o segundo é a linguagem de desenvolvimento: o ActiveMQ é desenvolvido em Java, e usado no seu ecossistema. Portanto, incorreta a afirmativa.

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre ActiveMQ, julgue o item abaixo. No ActiveMQ é possível definir se uma mensagem será mantida no broker após a leitura, ou se será consumida (removida). Esse processo, chamado de expiração de mensagem, pode se dar, por exemplo, por quantidades máximas de leituras, ou com base no tempo de vida (time-to-live).
response: Correto
comment: Perfeito! A expiração das mensagens é um dos pontos chaves do ActiveMQ, e permite dizer quanto tempo a mensagem ficará disponível para consultas. Podemos configurar a expiração de diversas formas, através da quantidade máxima de leituras (por exemplo, se essa quantidade for 1, a mensagem será removida após uma leitura), por um tempo máximo de disponibilidade, por uma quantidade máxima de mensagens na fila, entre outros. Sendo assim, correta a afirmativa.
title: ActiveMQ
Other fields (not shown on cards):
back: Correto - Perfeito! A expiração das mensagens é um dos pontos chaves do ActiveMQ, e permite dizer quanto tempo a mensagem ficará disponível para consultas. Podemos configurar a expiração de diversas formas, através da quantidade máxima de leituras (por exemplo, se essa quantidade for 1, a mensagem será removida após uma leitura), por um tempo máximo de disponibilidade, por uma quantidade máxima de mensagens na fila, entre outros. Sendo assim, correta a afirmativa.