Envíe y reciba mensajes mediante el SDK de ApsaraMQ for RocketMQ para Java en una aplicación de Spring o Spring Boot.
ApsaraMQ for RocketMQ proporciona proyectos de demostración que integran el SDK ons-client en beans administrados por Spring, lo que ofrece componentes de productor y consumidor listos para la inyección de dependencias. Esta guía explica el ejemplo de Spring Boot. El ejemplo de Spring estándar sigue el mismo patrón.
Tipos de mensaje compatibles
La integración con Spring admite productores y consumidores para los siguientes tipos de mensaje:
Mensajes normales
Mensajes ordenados
Mensajes transaccionales
La integración con Spring no es compatible con mensajes programados ni mensajes diferidos.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
IntelliJ IDEA u otro IDE de Java
Una instancia de ApsaraMQ for RocketMQ con un endpoint TCP
Un AccessKey pair (AccessKey ID y AccessKey secret)
Paso 1: Descargar el proyecto de demostración
Clone o descargue uno de los proyectos de demostración desde GitHub:
|
Demostración |
Repositorio |
|
Spring Boot (utilizado en esta guía) |
|
|
Spring |
Paso 2: Crear recursos
Cree los siguientes recursos en ApsaraMQ for RocketMQ console:
Create a topic. Configure el tipo de mensaje para que coincida con los mensajes que planea enviar. Por ejemplo, seleccione Normal para mensajes normales o Ordered para mensajes ordenados.
Create a group. Seleccione TCP como tipo de protocolo, ya que el SDK ons-client se comunica mediante TCP.
Get the TCP endpoint para su instancia.
Paso 3: Configurar el proyecto de demostración
Abra el proyecto de demostración en IntelliJ IDEA y actualice la dependencia de Maven y las propiedades de la aplicación.
Agregar la dependencia ons-client
Agregue las siguientes dependencias a su archivo pom.xml. Reemplace la versión de ons-client con la última versión disponible. Para consultar el historial de versiones, consulte Release notes.
<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>
Establecer las propiedades de la aplicación
Edite el archivo java-springboot-demo/src/main/resources/application.properties con la información de los recursos del Paso 2.
|
Parámetro |
Descripción |
Ejemplo |
||
|
|
AccessKey ID para autenticación |
|
||
|
|
AccessKey secret para autenticación |
|
||
|
|
Endpoint TCP de su instancia de ApsaraMQ for RocketMQ |
|
||
|
|
Nombre del topic para mensajes normales |
|
||
|
|
Group ID para el consumidor |
|
||
|
|
Expresión de filtro de etiquetas. Use |
TagB`. Para más detalles, consulte Message filtering. |
|
|
|
|
Nombre del topic para mensajes ordenados |
|
||
|
|
Group ID para el consumidor de mensajes ordenados |
|
||
|
|
Expresión de filtro de etiquetas para mensajes ordenados |
|
Paso 4: Ejecutar la demostración
Asegúrese de que las clases ubicadas en java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/example estén importadas en su proyecto y ejecute el método main().
Referencia de código de ejemplo
La demostración incluye productores y consumidores para cada tipo de mensaje compatible. Todo el código fuente está disponible en GitHub.
Mensajes normales
|
Función |
Clase |
|
Productor |
|
|
Envío síncrono |
|
|
Envío asíncrono |
|
|
Consumidor (filtrado por etiqueta) |
|
|
Consumidor (filtrado por SQL) |
Mensajes ordenados
|
Función |
Clase |
|
Productor |
|
|
Consumidor |
Mensajes transaccionales
|
Función |
Clase |
|
Productor |
|
|
Consumidor |
Pasos siguientes
Message filtering -- Filtre mensajes por etiqueta o expresión SQL.
Release notes -- Compruebe la versión más reciente del SDK ons-client.