ApsaraMQ for RocketMQ es un servicio de mensajería distribuida diseñado para la comunicación asíncrona entre aplicaciones. Se ejecuta en varios centros de datos dentro de cada región de Alibaba Cloud, por lo que la publicación y suscripción de mensajes permanecen disponibles incluso si un centro de datos deja de funcionar.
Los casos de uso comunes incluyen:
Desacoplamiento asíncrono: permite separar los servicios ascendentes del procesamiento descendente para que cada componente escale de forma independiente. Por ejemplo, un sistema de pedidos publica eventos de creación de pedidos, y los servicios descendentes (pago, inventario, envío) se suscriben y los procesan según su propia programación.
Entrega confiable de eventos: garantiza la entrega de eventos de pedidos, notificaciones de pago o actualizaciones de inventario con garantías de entrega de al menos una vez.
Ejecución de tareas programadas: activa acciones descendentes en un momento específico o tras un retraso de hasta 40 días. Por ejemplo, envíe un recordatorio de pago 30 minutos después de que un usuario realice un pedido.
Transacciones distribuidas: coordina operaciones multiservicio mediante mensajes transaccionales que proporcionan consistencia eventual. Una escritura en la base de datos local y el envío de un mensaje se completan correctamente o se revierten ambos.
El siguiente diagrama muestra la arquitectura general de funciones.

Tipos de mensajes
ApsaraMQ for RocketMQ ofrece cuatro tipos de mensajes. Elija el tipo que se ajuste a sus requisitos de entrega y ordenamiento.
Normal messages
Normal messages are messages that have no special features in ApsaraMQ for RocketMQ. They are different from featured messages, such as scheduled messages, delayed messages, ordered messages, and transactional messages.
Scheduled messages and delayed messages
ApsaraMQ for RocketMQ allows producers to deliver messages at a specific point in time or after a specific period of time. The maximum time period is 40 days.
Ordered messages
ApsaraMQ for RocketMQ allows consumers to consume messages in the order in which they are delivered.
Transactional messages
ApsaraMQ for RocketMQ provides a distributed transaction feature similar to X/Open XA to ensure ultimate transaction consistency of distributed transactions.
Mensajes normales
Son mensajes estándar sin restricciones de orden ni temporización. Utilice mensajes normales para comunicación asíncrona de propósito general, como reenviar datos de registro, distribuir notificaciones o desacoplar llamadas entre microservicios.
Para obtener más información, consulte Normal messages.
Mensajes programados y diferidos
Permiten entregar mensajes en una marca de tiempo específica (programados) o tras un retraso definido (diferidos). La ventana máxima de programación es de 40 días.
Escenarios típicos:
Enviar un recordatorio 30 minutos después de que un usuario realice un pedido.
Activar un trabajo por lotes a una hora específica cada día.
Para obtener más información, consulte Scheduled messages and delayed messages.
Mensajes ordenados
Garantizan que los consumidores reciban los mensajes en el mismo orden exacto en que se publicaron. Utilice mensajes ordenados cuando la secuencia sea importante; por ejemplo, al procesar eventos de cambio en la base de datos o ejecutar flujos de trabajo de varios pasos donde cada paso depende del anterior.
Para obtener más información, consulte Ordered messages.
Mensajes transaccionales
Implementan transacciones distribuidas basadas en el modelo X/Open XA. Un mensaje transaccional vincula una operación local de base de datos con el envío de un mensaje: ambos se completan correctamente o ambos se revierten, lo que proporciona consistencia eventual entre servicios.
Para obtener más información, consulte Transactional messages.
Comparación de tipos de mensajes
La siguiente tabla compara los modos de transmisión y el rendimiento entre los distintos tipos de mensajes.
|
Tipo de mensaje |
Transmisión síncrona confiable |
Transmisión asíncrona confiable |
Transmisión unidireccional |
Transmisión multihilo |
Rendimiento |
|
Mensajes normales |
Sí |
Sí |
Sí |
Sí |
Máximo |
|
Mensajes transaccionales |
Sí |
Sí |
Sí |
Sí |
Máximo |
|
Mensajes programados y diferidos |
Sí |
Sí |
Sí |
Sí |
Máximo |
|
Mensajes ordenados por partición |
Sí |
No |
No |
No |
Alto |
Entrega y confiabilidad
Entrega de al menos una vez
Cada mensaje se entrega al menos una vez. Dado que ApsaraMQ for RocketMQ utiliza una arquitectura distribuida, puede producirse una entrega duplicada; por ejemplo, tras el reinicio de un consumidor o una interrupción de red. Diseñe la lógica de su consumidor para que sea idempotente, de modo que procesar el mismo mensaje dos veces no cause inconsistencia en los datos.
Para consultar las mejores prácticas, vea Message idempotence.
Reintento de mensajes
Cuando un consumidor no logra procesar un mensaje y devuelve una respuesta de reintento, ApsaraMQ for RocketMQ vuelve a entregar el mensaje según la política de reintentos configurada.
Para obtener más información, consulte Message retry.
Colas de mensajes muertos
Los mensajes que agotan todos los intentos de reintento se mueven a una cola de mensajes muertos. Inspeccione y reprocese estos mensajes más tarde sin afectar el flujo normal de mensajes.
Para obtener más información, consulte Dead-letter queues.
Filtrado de mensajes
Asigne etiquetas o atributos a los mensajes al momento de publicarlos y luego establezca condiciones de filtro en los grupos de consumidores. El broker evalúa cada mensaje frente al filtro y entrega solo los que coinciden, lo que reduce el tráfico de red innecesario y la sobrecarga de procesamiento.
Para obtener más información, consulte Message filtering.
Modelos de consumo
Consumo en clúster
En el modo de clúster, un mensaje solo necesita ser procesado por un consumidor dentro de un grupo de consumidores. Utilice este modo para cargas de trabajo con balanceo de carga donde cada mensaje solo requiere procesamiento único.
Consumo por difusión
En el modo de difusión, cada consumidor del grupo recibe una copia de cada mensaje, lo que asegura que cada consumidor procese cada mensaje al menos una vez. Utilice este modo cuando todas las instancias necesiten los mismos datos, como en invalidación de caché o actualizaciones de configuración.
Para obtener detalles sobre ambos modos, consulte Clustering consumption and broadcasting consumption.
Restablecimiento del desplazamiento del consumidor
Restablezca el desplazamiento del consumidor para omitir mensajes acumulados (al moverse al desplazamiento más reciente) o para reprocesar mensajes históricos (al retroceder a un punto anterior en el tiempo).
Para obtener más información, consulte Reset consumer offsets.
Protocolos de acceso
ApsaraMQ for RocketMQ admite dos protocolos de acceso. Elija según sus requisitos de rendimiento y entorno de red.
|
Protocolo |
Ventajas |
Lenguajes compatibles |
|
TCP |
Más especializado, confiable y estable que el acceso basado en HTTP. |
Java, C, C++, .NET |
|
HTTP |
API RESTful fáciles de usar que ofrecen potentes capacidades de acceso entre redes. |
Java, C++, .NET, Go, Python, Node.js, PHP |
Para obtener detalles sobre el SDK de TCP, consulte TCP SDK release notes. Para el uso de HTTP, consulte HTTP access.
Puede desplegar sus aplicaciones en instancias de Elastic Compute Service (ECS) de Alibaba Cloud, en su propia infraestructura, en dispositivos móviles o en dispositivos IoT para conectarse a ApsaraMQ for RocketMQ y enviar o recibir mensajes. Los desarrolladores locales también pueden acceder a ApsaraMQ for RocketMQ a través de Internet.
Observability
Consulta de mensajes
Busque mensajes específicos por ID de mensaje, clave de mensaje o tema. Utilice las consultas de mensajes para comprobar el estado de entrega o depurar problemas de procesamiento.
Para obtener más información, consulte Query a message.
Rastreo de mensajes
Rastree la ruta completa de un mensaje desde el productor hasta el broker y el consumidor. Los rastreos de mensajes ayudan a identificar dónde ocurren fallos o retrasos en la canalización de entrega.
Para obtener más información, consulte Query a message trace.
Panel de control
Consulte métricas de producción, consumo y acumulación por instancia, tema o grupo. El panel de control ofrece una vista consolidada del estado de la mensajería en todo su entorno.
Para obtener más información, consulte Dashboard.
Monitoreo y alertas
Configure alertas sobre métricas de grupos de consumidores para detectar retrasos o fallos en el consumo. Reciba notificaciones cuando la acumulación de mensajes supere un umbral, de modo que los problemas se atiendan antes de que afecten a los servicios descendentes.
Para obtener más información, consulte Monitoring and alerting.
Herramientas de gestión
Consola web
Gestione temas, grupos e instancias mediante una consola basada en navegador. La consola también permite realizar consultas de mensajes, búsquedas de rastreo de mensajes y configuración de monitoreo.
Para obtener más información, consulte User guide.
OpenAPI
Integre operaciones de gestión de ApsaraMQ for RocketMQ en sus propias herramientas o canalizaciones de automatización mediante OpenAPI.
Para obtener más información, consulte API reference.