Envie e receba mensagens usando o SDK do ApsaraMQ for RocketMQ para Java em uma aplicação Spring ou Spring Boot.
O ApsaraMQ for RocketMQ oferece projetos de demonstração que integram o SDK ons-client a beans gerenciados pelo Spring. Esses projetos fornecem componentes de produtor e consumidor prontos para injeção de dependência. Este guia aborda a demonstração com Spring Boot. A demonstração com Spring simples segue o mesmo padrão.
Tipos de mensagem compatíveis
A integração com Spring é compatível com produtores e consumidores para os seguintes tipos de mensagem:
Mensagens normais
Mensagens ordenadas
Mensagens transacionais
A integração com Spring não oferece suporte a mensagens agendadas nem atrasadas.
Pré-requisitos
Antes de começar, verifique se você tem:
IntelliJ IDEA ou outra IDE Java
Uma instância do ApsaraMQ for RocketMQ com endpoint TCP
Um par de AccessKey (AccessKey ID e AccessKey secret)
Etapa 1: Baixe o projeto de demonstração
Clone ou baixe um dos projetos de demonstração no GitHub:
|
Demonstração |
Repositório |
|
Spring Boot (usada neste guia) |
|
|
Spring |
Etapa 2: Crie recursos
Crie os seguintes recursos no console do ApsaraMQ for RocketMQ:
Criar um tópico. Defina o tipo de mensagem correspondente ao que você planeja enviar. Por exemplo, selecione Normal para mensagens normais ou Ordered para mensagens ordenadas.
Criar um grupo. Selecione TCP como tipo de protocolo, pois o SDK ons-client se comunica via TCP.
Obter o endpoint TCP da sua instância.
Etapa 3: Configure o projeto de demonstração
Abra o projeto de demonstração no IntelliJ IDEA e atualize a dependência do Maven e as propriedades da aplicação.
Adicionar a dependência ons-client
Adicione as seguintes dependências ao arquivo pom.xml. Substitua a versão do ons-client pela mais recente disponível. Para consultar o histórico de versões, veja as Notas de lançamento.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>ons-client</artifactId>
<!-- Replace with the latest version -->
<version>1.8.8.8.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Defina as propriedades da aplicação
Edite o arquivo java-springboot-demo/src/main/resources/application.properties com as informações dos recursos obtidas na Etapa 2.
|
Parâmetro |
Descrição |
Exemplo |
||
|
|
AccessKey ID para autenticação |
|
||
|
|
AccessKey secret para autenticação |
|
||
|
|
Endpoint TCP da sua instância do ApsaraMQ for RocketMQ |
|
||
|
|
Nome do tópico para mensagens normais |
|
||
|
|
Group ID do consumidor |
|
||
|
|
Expressão de filtro de tag. Use |
TagB`. Para mais detalhes, consulte Filtragem de mensagens. |
|
|
|
|
Nome do tópico para mensagens ordenadas |
|
||
|
|
Group ID do consumidor de mensagens ordenadas |
|
||
|
|
Expressão de filtro de tag para mensagens ordenadas |
|
Etapa 4: Execute a demonstração
Verifique se as classes em java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/example foram importadas para o projeto e execute o método main().
Referência de código de exemplo
A demonstração inclui produtores e consumidores para cada tipo de mensagem compatível. Todo o source está disponível no GitHub.
Mensagens normais
|
Função |
Classe |
|
Produtor |
|
|
Envio síncrono |
|
|
Envio assíncrono |
|
|
Consumidor (filtragem por tag) |
|
|
Consumidor (filtragem por SQL) |
Mensagens ordenadas
|
Função |
Classe |
|
Produtor |
|
|
Consumidor |
Mensagens transacionais
|
Função |
Classe |
|
Produtor |
|
|
Consumidor |
Próximos passos
Filtragem de mensagens -- Filtre mensagens por tag ou expressão SQL.
Notas de lançamento -- Verifique a versão mais recente do SDK ons-client.