Você está na página 1de 8

Transferências (/openjdk-downloads) Portal do cliente (https://portal.perforce.com/s/?

utm_term=trendemon) Empresa Contato


(https://www.perforce.com/?
utm_term=trendemon)

(/)
SOLUÇÕES SERVIÇOS BLOGUE (/BLOG) RECURSOS CLIENTES (/CUSTOMERS) FALE COM UM ESPECIALISTA (/TALK-TO-EXPERT)

Lar (/) » Recursos (https://www.openlogic.com/resources) » Blogue (https://www.openlogic.com/blog) » O que é Apache ActiveMQ?


l%20
m/sh 4 de junho de 2020

%20A
O que é Apache ActiveMQ?
INFRAESTRUTURA WEB | MIDDLEWARE
i l%20
blog/f Por Justin Reock

ActiveMQ é um serviço de mensagens popular que facilita dados díspares em escala em sistemas corporativos. Neste tutorial do ActiveMQ, damos uma
visão geral do ActiveMQ, seus benefícios, como funciona e quando deve ser usado.

O que é ActiveMQ?
Para que é usado o ApacheMQ?
Como funcionam os corretores Apache ActiveMQ 👋 Want to hear my favorite stat 1
Qual é a diferença entre JMS e ActiveMQ? from the 2023 State of Open
Source Report?
Arquitetura e funções principais do ActiveMQ
ENVIAR COMENTÁRIOS
Apache ActiveMQ 5 versus Apache ActiveMQ 6
Você deve usar ActiveMQ?

O que é ActiveMQ?
ActiveMQ é um popular serviço de mensagens de código aberto desenvolvido com base em Java. Funciona como um middleware orientado a
mensagens ( MoM (https://ieeexplore.ieee.org/document/5636872) ).

ActiveMQ foi projetado para enviar mensagens entre dois ou mais aplicativos, assim como todo middleware orientado a mensagens.

Para que é usado o ActiveMQ?


Como qualquer outro corretor de mensagens, o ActiveMQ é usado como uma ponte de comunicação entre vários componentes que podem ser
hospedados em servidores separados ou escritos em diferentes linguagens de programação.

Corretores de mensagens como este são frequentemente encontrados em sistemas corporativos — ou em qualquer sistema que tenha uma arquitetura
complexa. O objetivo da implementação é criar uma comunicação confiável entre os componentes desse sistema.

Um bom exemplo é o setor financeiro e bancário, onde um sistema de alta disponibilidade é essencial. A velocidade é importante nesta indústria, mas
mais importante do que isso é a confiabilidade de todo o sistema.

Embora todos desejemos 100% de disponibilidade para tudo, ainda haverá raros momentos em que um serviço estará offline. O que você faz neste
caso?

ENVIAR COMENTÁRIOS
Colocar sua mensagem em uma fila de mensagens geralmente funcionará nesse cenário. A mensagem não é entregue e processada imediatamente. Em
vez disso, ele será processado quando o outro lado do serviço voltar a ficar online.

ENVIAR COMENTÁRIOS
ENVIAR COMENTÁRIOS
O exemplo acima é um caso de nicho. Mas o caso de uso geral das mensagens é a capacidade de moldar o tráfego de forma assíncrona. Pode haver
casos em que o serviço ainda esteja online, mas pode simplesmente não ser capaz de processar as mensagens tão rapidamente quanto elas são
produzidas no sistema. Ou pode não ser capaz de lidar com uma explosão sem algum preenchimento.

Portanto, se você tem um sistema - e é obrigatório que uma mensagem seja enviada, não importa o que aconteça e não importa o período de tempo,
agora ou mais tarde - então um corretor de mensagens como o ActiveMQ é o que você precisa.

O que são corretores Apache ActiveMQ?


Os corretores Apache ActiveMQ são implementações do Java Messaging Service, ou JMS. JMS é uma especificação Java
(https://github.com/javaee/jms-spec) que permite que aplicativos enviem dados entre si de maneira fácil e padrão.

Antes de sistemas de mensagens como o ActiveMQ, era difícil — se não impossível — “federar” aplicativos que:

Foram escritos em línguas diferentes.


Residiu em plataformas heterogêneas.
Usou diferentes estruturas de dados e protocolos.

Um dos primeiros objetivos do Java era apresentar uma linguagem com o poder do C que não fosse prejudicada por seus problemas de plataforma
cruzada. O JMS surgiu de uma necessidade crescente de federar sistemas muito diferentes entre si.

Antes do ActiveMQ, isso significava construir o código-fonte com base em ferramentas e bibliotecas nativas. As alternativas eram portar ou reescrever
completamente o aplicativo em sistemas operacionais separados.

ENVIAR COMENTÁRIOS
Qual é a diferença entre JMS e ActiveMQ?
ActiveMQ é um provedor JMS. Um provedor JMS forma a estrutura de software para facilitar o uso de conceitos JMS dentro de um aplicativo. Um
único nó do ActiveMQ que permite que os clientes se conectem a ele e usem esses conceitos de mensagens é chamado de “ActiveMQ Broker”.

Portanto, ActiveMQ é um corretor de mensagens que implementa JMS. Usar o ActiveMQ é importante para muitas empresas – especialmente empresas.

As empresas sentem essa disparidade com ações empresariais como fusões e aquisições. Isso cria a necessidade de manter uma coleção cada vez mais
heterogênea de aplicativos de negócios. À medida que sua empresa cresce, aumenta também a necessidade de permitir que todas essas plataformas
compartilhem dados. Existem hoje vários padrões arquitetônicos que ajudam a resolver esse problema.

Outros provedores JMS


Alguns outros exemplos de provedores JMS são:

HornetQ
CoelhoMQ
SonicMQ
Mensagens do Windows Azure

Treine sua equipe no ActiveMQ


OpenLogic oferece um curso ministrado por instrutor sobre Fundamentos de administração do ActiveMQ para que você possa ajustar, monitorar e
otimizar suas instalações do ActiveMQ. Você aprenderá os recursos e funcionalidades do ActiveMQ e JMS e obterá exemplos reais de como
começar a implantá-los em um ambiente de produção.

INICIAR (https://www.openlogic.com/training/activemq-administration-essentials)

Visão geral da arquitetura ActiveMQ


A anatomia do ActiveMQ consiste em padrões de dados chamados mensagens, filas e tópicos (https://www.openlogic.com/blog/activemqs-dynamic-
queue-creation-working-you) .

As mensagens são exatamente o que parecem, cargas de dados que podem ser enviadas entre vários sistemas. Essas cargas podem ter cabeçalhos e
propriedades associadas a elas que podem:

Categorize-os
Controle várias partes de seu roteamento
Facilite a movimentação de cargas úteis em uma rede conectada de aplicativos
ENVIAR COMENTÁRIOS
Aqui está uma estrutura JMS básica, como ActiveMQ:

A carga útil em si pode ser qualquer objeto Java em uma implementação Java pura. Mas normalmente é alguma forma de mensagem de texto. Observe
que o texto também pode ser um formato de marcação, como XML ou JSON. O objetivo de um sistema de mensagens é mover essas cargas entre
sistemas heterogêneos de maneira padrão.

ActiveMQ como uma solução de mensagens de classe empresarial


Uma solução de mensagens de classe empresarial pode fazer isso e, ao mesmo tempo, manter a integridade dos dados, garantindo nenhuma perda de
dados, considerando alta disponibilidade, segurança, capacidade de recuperação e outras preocupações empresariais comuns.

Os próprios aplicativos em nossa rede são considerados terminais. E existem duas categorias deles. Os terminais de entrada usados ​para ler ou receber
mensagens são chamados de consumidores, e os de saída destinados a enviar dados para o sistema de mensagens são chamados de produtores.

Isso é tratado programaticamente. O terminal é definido no contexto do programa que está interagindo com o sistema de mensagens.

Como funcionam as mensagens ActiveMQ


Depois que as mensagens chegam ao sistema, elas são organizadas em dois padrões: filas e tópicos. As filas
(https://www.openlogic.com/blog/activemqs-dynamic-queue-creation-working-
you#:~:text=ActiveMQ%20queue%20is%20a%20pipeline,in%20who%20receives%20the%20message.) são pipelines FIFO
(https://en.wikipedia.org/wiki/FIFO_and_LIFO_accounting#:~:text=%22FIFO%22%20stands%20for%20first%2D,is%20the%20cost%20expensed%20first.)
(primeiro a entrar, primeiro a sair) de mensagens produzidas e consumidas por corretores e clientes. Os produtores criam mensagens e as enviam para
essas filas. Em seguida, essas mensagens são pesquisadas e coletadas por aplicativos consumidores, uma mensagem por vez.

Os tópicos são canais de transmissão de mensagens baseados em assinatura. Quando um aplicativo produtor envia uma mensagem, vários destinatários
que estão 'assinados' nesse tópico recebem uma transmissão da mensagem. Este aplicativo produtor às vezes é chamado de 'editor' no contexto de
mensagens de tópico,

Todos esses componentes são apenas partes da especificação JMS, mas não são nenhum software em particular. Para concretizar a especificação na
vida real, podemos criar uma implementação específica do fornecedor da especificação JMS, conhecida como provedor JMS.
ENVIAR COMENTÁRIOS
Resumindo, a principal diferença entre uma fila e um tópico (https://activemq.apache.org/how-does-a-queue-compare-to-a-topic) é:

Um tópico implementa um fluxo de trabalho de publicação e assinatura.


Uma fila implementa um fluxo de trabalho de balanceamento de carga.

Principais funções do ActiveMQ


Além do JMS, o ActiveMQ fornece funcionalidades adicionais, como:

Um objeto de connection factory nativo do ActiveMQ para Java.


Recursos poderosos de observabilidade com seu mecanismo detalhado de métricas e estatísticas JMX.
Painéis estendidos por meio de Jolokia e HawtIO.
Segurança JAS.
Vários protocolos de conexão.
Recursos nativos de HA e DR.
Funcionalidade integrada para escala horizontal e vertical.

Apache ActiveMQ 5 versus Apache ActiveMQ 6


Apache ActiveMQ 5 implementa a especificação JMS 1.1. ActiveMQ 6 (Artemis) implementará JMS 2.0.

Além dos conceitos JMS descritos acima, o ActiveMQ também fornece persistência (https://www.openlogic.com/blog/activemq-connection-pooling-
c3p0-and-jdbc-persistence) . Isso permite que as mensagens sejam “repetidas” caso um corretor trave. Junto com isso, a durabilidade permite que os
assinantes do tópico recebam mensagens de difusão quando a conectividade com o intermediário for interrompida.

Você deve usar ActiveMQ?


ActiveMQ é uma plataforma madura e bem adotada. Milhares de empresas o utilizam. É de longe o corretor de mensagens OSS mais flexível disponível.

ENVIAR COMENTÁRIOS

Você também pode gostar