Java Message Service (JMS) ou Jakarta Messaging

Explicação simples sobre JMS (ou Jakarta Messaging)

https://www.youtube.com/watch?v=lsAyTeUUXHk

Outra explicação simples sobre JMS

https://www.youtube.com/watch?v=WH0ZaGwfmz4&list=PLA80A2255382AFC98

Cliente JMS para RabbitMQ
https://www.rabbitmq.com/jms-client.html

Ferramenta GUI para monitorar filas e mensagens JMS
https://developer.jboss.org/thread/155277

Broker com suporte a JMS
https://activemq.apache.org/components/artemis/

Conceitos básicos do Java Message Service
https://docs.oracle.com/javaee/6/tutorial/doc/bncdx.html

No JMS há 2 entidades:

JMS provider - software que monitora e controla mensagens JMS.

JMS clients - Programas que consomem (consumer) ou publicam (producer, publisher) mensagens.

O que eu preciso para ter um sistema JMS funcionando?

JMS Provider

O JMS Provider é que, armazena as mensagens enviadas em filas e tópicos.

Um programa rodando um JMS Provider (em sua maioria são plataformas que implementam a especificação do Java EE 6, e acima de 6):

  • Apache ActiveMQ Artemis
  • JBoss Application Server (JBoss AS) (descontinuado)
  • Wildfly (sucessor do JBoss)
  • TomEE (Tomcat + Java EE)
  • SAP Netweaver
  • Glassfish
  • IBM WebSphere Application Server
  • IBM WebSphere Application Server Community Edition
  • Oracle Weblogic Server

... e todos os applications servers que implementem o Java EE 6 (e acima de 6)

JMS Client

São softwares que se conectam ao JMS Provider e podem consumir ou publicar mensagens.

javax.jms (nativa para qualquer projeto Java utilizando JDK 6 ou superior)
RabbitMQ JMS Client
Kafka JMS Client

Semelhanças entre JMS e AMQP 0-9-1

O JMS pode operar de duas formas:

Point-to-Point (PTP) Messaging

Muito semelhante ao "Direct" do AMQP.

Publish/Subscribe Messaging

Muito semelhante ao "Topic" do AMQP.

Referências

Tutorial completo da Oracle sobre JMS
https://docs.oracle.com/javaee/7/tutorial/partmessaging.htm

Artigo da Oracle de introdução ao JMS
https://www.oracle.com/technical-resources/articles/java/intro-java-message-service.html

Documentos da Oracle - Conceitos básicos da JMS API
https://docs.oracle.com/javaee/6/tutorial/doc/bncdx.html

Como JMS funciona e como usá-lo com o Active MQ?
https://www.devmedia.com.br/como-implementar-a-troca-de-mensagens-com-jms/25127

JMS com ActiveMQ
https://dzone.com/articles/jms-activemq

Tutorial JMS com Glassfish 3
https://www.javatpoint.com/jms-tutorial

JMS Providers, todas as plataformas que implementam o Java EE
https://www.oracle.com/java/technologies/compatibility-jsp.html

AMQP vs JMS
https://www.educba.com/amqp-vs-jms/

RabbitMQ e seu Cliente JMS
https://www.rabbitmq.com/jms-client.html

You should also read: