Antes de usar un SDK de cliente TCP para enviar y recibir mensajes, debe crear los recursos obligatorios en la consola de ApsaraMQ for RocketMQ. Cuando use el SDK, configure los parámetros de los recursos con base en su información.
Antes de comenzar
Activate AsparaMQ for RocketMQ and grant permissions to a RAM user
Contexto
ApsaraMQ for RocketMQ proporciona SDK para varios lenguajes de programación que permiten enviar y recibir mensajes mediante los protocolos TCP y HTTP. Se recomienda crear grupos distintos para cada protocolo. Para consultar los límites de uso de grupos por protocolo, consulte Manage groups.
Límites de acceso a la red
Antes de usar ApsaraMQ for RocketMQ, tenga en cuenta los siguientes límites de acceso a la red:
Los productores o consumidores de un grupo solo pueden acceder a un tema si el grupo se creó en la misma instancia y región que dicho tema. Por ejemplo, si crea un tema en la instancia A de la región China (Hangzhou), únicamente podrán acceder a él los productores o consumidores de un grupo creado en la instancia A de la región China (Hangzhou).
Todas las regiones ofrecen endpoints públicos y privados para clientes TCP y HTTP. En entornos de producción, se recomienda acceder a ApsaraMQ for RocketMQ a través de redes privadas virtuales (VPC). Si necesita acceder a ApsaraMQ for RocketMQ entre regiones, desde centros de datos locales o por Internet cuando Cloud Enterprise Network (CEN) no está disponible, utilice los endpoints públicos para conectarse a las instancias de ApsaraMQ for RocketMQ. El uso de endpoints públicos genera cargos por tráfico saliente hacia Internet. Para obtener más información, consulte Billing of Internet traffic.
ApsaraMQ for RocketMQ ofrece endpoints HTTP y endpoints TCP. Cada tipo de endpoint solo es compatible con clientes del mismo protocolo. Por ejemplo, si utiliza un SDK de cliente TCP, únicamente puede especificar un endpoint TCP en el código.
Crear una instancia
En ApsaraMQ for RocketMQ, una instancia es una máquina virtual que almacena la información de temas y grupos. Siga estos pasos para crear una instancia de ApsaraMQ for RocketMQ:
Inicie sesión en la consola de ApsaraMQ for RocketMQ.
En el panel de navegación izquierdo, haga clic en Instances.
En la barra de navegación superior, seleccione una región, como China (Hangzhou).
En la página Instances, haga clic en Create Instance.
En el panel Create Message Queue for Apache RocketMQ Instance, configure los parámetros Instance Type, Name y Description. Después, haga clic en OK.
Crear un tema
En ApsaraMQ for RocketMQ, un tema es un identificador de primer nivel que clasifica los mensajes. Por ejemplo, puede crear un tema llamado Topic_Trade para identificar los mensajes transaccionales. Así, los productores publican mensajes en Topic_Trade y los consumidores se suscriben a este tema para consumirlos. Los temas deben cumplir los siguientes requisitos:
Un tema no se puede utilizar entre distintas instancias. Por ejemplo, el tema A creado en la instancia A no estará disponible en la instancia B.
El nombre de cada tema debe ser único dentro de una instancia.
Se recomienda crear temas distintos para enviar diferentes tipos de mensajes. Por ejemplo, puede destinar el tema A a mensajes normales, el tema B a mensajes transaccionales y el tema C a mensajes programados y retrasados.
En el panel de navegación izquierdo de la página Instance Details, haga clic en Topics.
En la página Topics, haga clic en Create Topic.
-
En el panel Create Topic, configure los parámetros Name y Description. Establezca el parámetro Message Type en Normal Message y haga clic en OK.
NotaEl siguiente ejemplo utiliza mensajes normales. El tema que cree con los pasos descritos en esta sección no sirve para enviar ni recibir otros tipos de mensajes. Cada tema admite exclusivamente el envío y la recepción de un tipo específico de mensaje. Para obtener más información sobre los tipos de mensajes, consulte Message types.
Crear un grupo
En ApsaraMQ for RocketMQ, un grupo identifica a productores o consumidores del mismo tipo. Los grupos deben cumplir los siguientes requisitos:
Cada instancia admite un máximo de 1,000 grupos. Reutilice o elimine los grupos que no necesite para mantenerse dentro de este límite. Si requiere aumentar esta cuota, comuníquese con el soporte técnico de ApsaraMQ for RocketMQ.
Un grupo no se puede utilizar entre distintas instancias.
-
ApsaraMQ for RocketMQ es compatible con los protocolos HTTP y TCP para el consumo de mensajes. Distintos grupos pueden usar protocolos diferentes, pero todos los consumidores de un mismo grupo deben emplear el mismo protocolo.
Combinar protocolos dentro de un mismo grupo puede provocar fallos de consumo, duplicación o pérdida de mensajes.
Los cambios de protocolo de un grupo tardan entre 1 y 2 horas aproximadamente en surtir efecto.
Si los consumidores de un grupo procesan mensajes con un protocolo distinto al que muestra la consola de ApsaraMQ for RocketMQ, los datos mostrados serán inexactos. Además, podrían presentarse problemas como pérdida de mensajes o mensajes sin consumir. Compruebe que el protocolo declarado para un grupo en la consola coincida con el que utilizan realmente los consumidores. Si necesita corregir el tipo de protocolo declarado para un grupo en la consola, comuníquese con el soporte técnico de ApsaraMQ for RocketMQ.
El identificador de grupo es obligatorio para cada consumidor, pero opcional para los productores.
En el panel de navegación izquierdo de la página Instance Details, haga clic en Groups.
En la página Groups, elija .
En el panel Create Group for TCP Protocol, configure los parámetros Group ID y Description. Después, haga clic en OK.
Obtener un endpoint
Una vez creados los recursos en la consola de ApsaraMQ for RocketMQ, obtenga el endpoint necesario para acceder a la instancia. Antes de enviar y recibir mensajes, especifique el endpoint en los clientes productor y consumidor. Esto permite que ambos accedan a la instancia de la región indicada.
En el panel de navegación izquierdo de la página Instance Details, haga clic en Instance Details.
En la sección TCP Endpoint de la página Instance Details, coloque el puntero sobre el endpoint y haga clic en él para copiarlo.
Antes de usar los endpoints, tenga en cuenta lo siguiente:
Cada tipo de endpoint solo es compatible con clientes del mismo protocolo. Por ejemplo, si desea usar un SDK de cliente TCP para enviar y recibir mensajes, debe utilizar el endpoint TCP de su instancia de ApsaraMQ for RocketMQ para conectarse al broker de ApsaraMQ for RocketMQ.
Todas las regiones ofrecen endpoints públicos y privados para clientes TCP y HTTP. En entornos de producción, se recomienda acceder a ApsaraMQ for RocketMQ a través de redes privadas virtuales (VPC). Si necesita acceder a ApsaraMQ for RocketMQ entre regiones, desde centros de datos locales o por Internet cuando Cloud Enterprise Network (CEN) no está disponible, utilice los endpoints públicos para conectarse a las instancias de ApsaraMQ for RocketMQ. El uso de endpoints públicos genera cargos por tráfico saliente hacia Internet. Para obtener más información, consulte Billing of Internet traffic.
Cuando termine estas operaciones, ejecute el código de ejemplo y utilice ApsaraMQ for RocketMQ para enviar y recibir mensajes.
Pasos siguientes
Call TCP client SDKs to send and subscribe to normal messages