Todos los productos
Search
Centro de documentos

ApsaraMQ for RocketMQ:Productores

Última actualización: Sep 21, 2026

Este tema describe el concepto de productores en ApsaraMQ for RocketMQ. También explica la función de los productores en el modelo de mensajería, sus atributos y compatibilidad, así como algunas notas de uso para trabajar con ellos.

Definición

Un productor en ApsaraMQ for RocketMQ es una entidad funcional de mensajería que crea mensajes y los envía al servidor.

Por lo general, un productor se integra en el sistema de negocio. Su propósito es encapsular datos como mensajes en ApsaraMQ for RocketMQ y enviarlos al servidor. Para obtener más información sobre los mensajes, consulte Messages.

A continuación se describen los elementos de entrega de mensajes que se definen del lado del productor:

  • Modo de transmisión: el productor permite especificar el modo de transmisión de mensajes mediante una API. ApsaraMQ for RocketMQ admite la transmisión síncrona y la transmisión asíncrona. Para obtener más información, consulte Models.

  • Comportamiento transaccional: ApsaraMQ for RocketMQ admite mensajes transaccionales. Los productores participan en las comprobaciones transaccionales para garantizar la consistencia final de las transacciones. Para obtener más información, consulte Transactional messages.

Los productores y los topics mantienen una relación de muchos a muchos. Un productor puede enviar mensajes a varios topics, y un topic puede recibir mensajes de varios productores. Esta relación facilita el escalado de rendimiento y la recuperación ante desastres.

Producers and topics

Relación del modelo

La siguiente figura muestra la función de los productores en el modelo de mensajería de ApsaraMQ for RocketMQ.Producer

  1. Los productores generan mensajes y los envían al broker de ApsaraMQ for RocketMQ.

  2. El broker de ApsaraMQ for RocketMQ almacena los mensajes en la cola que indica el topic, respetando el orden de recepción.

  3. Los consumidores obtienen y consumen los mensajes del broker de ApsaraMQ for RocketMQ según las suscripciones configuradas.

Atributos internos

Client ID

  • Definición: identidad de un cliente productor. Este atributo sirve para distinguir entre distintos productores. Un client ID es único a nivel global dentro de un clúster.

  • Valor: los SDK de ApsaraMQ for RocketMQ generan automáticamente el client ID. Se utiliza principalmente para tareas de operación y mantenimiento, como consultar registros o localizar problemas. El client ID no se puede modificar.

Parámetros de comunicación

  • Endpoint (obligatorio): dirección que usa un cliente para acceder al broker de ApsaraMQ for RocketMQ. El endpoint identifica el clúster en el broker.

    Configure el endpoint con el formato indicado. Se recomienda usar un nombre de dominio en lugar de una dirección IP para evitar que los hotspots no se migren durante los cambios de nodo.

  • Autenticación de identidad (opcional): credenciales que sirven para verificar la identidad del cliente.

    Este parámetro solo es necesario cuando la función de autenticación de identidad está habilitada en el broker.

  • Periodo de tiempo de espera de la solicitud (opcional): tiempo de espera para las solicitudes del cliente. Para conocer los valores válidos de este parámetro, consulte Parameter limits.

Lista de topics preasignados

  • Definición: lista de topics a los que un productor de ApsaraMQ for RocketMQ envía mensajes. Los topics preasignados ofrecen las siguientes ventajas:

    • Mensajes transaccionales : el atributo de lista de topics preasignados es obligatorio para los mensajes transaccionales. En escenarios de mensajería transaccional, cuando un productor se recupera de un error o se reinicia, comprueba si un topic de mensajes transaccionales contiene mensajes sin confirmar. Esto evita la latencia que generarían esos mensajes pendientes después de que el productor envíe nuevos mensajes al topic.

    • Mensajes no transaccionales : el servidor comprueba los permisos de acceso y la validez de los topics de destino con base en la lista de topics preasignados durante la inicialización del productor, en lugar de hacerlo después de iniciar la aplicación. Se recomienda especificar este atributo para los mensajes no transaccionales.

      Si no se especifica la lista de topics preasignados para mensajes no transaccionales, o si cambian los topics de destino, ApsaraMQ for RocketMQ comprueba e identifica dinámicamente dichos topics.

  • Límite: para los mensajes transaccionales, los topics preasignados son obligatorios y deben usarse junto con un transaction checker.

Transaction checker

  • ApsaraMQ for RocketMQ utiliza un mecanismo de mensajería transaccional que requiere implementar un transaction checker en el productor para garantizar la consistencia final de las transacciones. Para obtener más información, consulte Transactional messages.

  • Cuando un productor envía mensajes transaccionales, debe configurar un transaction checker y usarlo junto con los topics preasignados.

Una política de reintento de entrega define cómo reintenta el productor la entrega de mensajes cuando un intento falla. Para obtener más información, consulte Sending retry.

Compatibilidad

A partir de la versión 5.x de ApsaraMQ for RocketMQ, los productores son anónimos y los grupos de productores dejaron de utilizarse. En Message Queue for Apache RocketMQ versiones 3.x y 4.x, los grupos de productores existentes pueden dejar de usarse sin afectar su negocio.

Notas de uso

Se recomienda limitar la cantidad de productores en cada proceso.

En ApsaraMQ for RocketMQ, los productores y los topics establecen una comunicación de muchos a muchos. Un solo productor puede enviar mensajes a varios topics. Cree e inicialice únicamente la cantidad mínima de productores que requieran sus escenarios de negocio, y reutilícelos tanto como sea posible. Por ejemplo, en un escenario que exige entregar mensajes a varios topics, no es necesario crear un productor distinto para cada uno.

Se recomienda no crear ni destruir productores de forma constante.

Los productores de ApsaraMQ for RocketMQ son recursos subyacentes reutilizables, similares al pool de conexiones de una base de datos. No necesita crear productores cada vez que envíe mensajes ni destruirlos después de enviarlos. Si los crea y destruye constantemente, se generarán muchas solicitudes de conexión corta en el broker, lo que impondrá una carga elevada en el sistema.

  • Ejemplo de uso correcto

    Producer p = ProducerBuilder.build();
      for (int i =0;i<n;i++)
        {
          Message m= MessageBuilder.build();
          p.send(m);
        }
    p.shutdown();
  • Ejemplo de uso incorrecto

    for (int i =0;i<n;i++)
      {
        Producer p = ProducerBuilder.build();
        Message m= MessageBuilder.build();
        p.send(m);
        p.shutdown();
      }