ApsaraMQ for RocketMQ proporciona SDK para los protocolos TCP y HTTP en varios lenguajes de programación. Elija un SDK según la versión de su instancia, las funciones obligatorias y el protocolo que prefiera.
Elegir una versión del SDK
El SDK 5.x gRPC es el punto de partida recomendado. Admite todas las funciones nuevas y recibe optimizaciones continuas. Si este SDK no cubre alguna función específica, utilice el SDK 5.x Remoting como alternativa.
A continuación se muestra una tabla que compara todas las versiones disponibles del SDK. ✅ = compatible, ❌ = no compatible.
|
Feature |
||||||
|
Protocolo |
Protocolo gRPC v2 |
Protocolo Remoting |
Protocolo Remoting |
Protocolo Remoting |
Protocolo gRPC v1 |
Protocolo HTTP |
|
Instancias compatibles |
Instancias de la serie 5.x |
Instancias de las series 5.x y 4.x |
Instancias de las series 5.x y 4.x |
Instancias de las series 5.x y 4.x |
Instancias de la serie 4.x |
Instancias de la serie 4.x |
|
Cuándo utilizarlo |
Recomendado. Admite varios lenguajes. Todas las funciones y optimizaciones nuevas están diseñadas para este SDK. |
Utilice el SDK Remoting si el SDK 5.x gRPC no cumple con requisitos específicos. |
Úselo solo si sus servicios ya se ejecutan en estos clientes. Las instancias 5.x son compatibles con versiones anteriores. |
Úselo solo si sus servicios ya se ejecutan en estos clientes. Las instancias 5.x son compatibles con versiones anteriores. |
SDK heredado. Sin funciones nuevas. Solo accede a instancias 4.x. |
SDK heredado. Sin funciones nuevas. Solo accede a instancias 4.x. |
|
Mensajes normales, ordenados, transaccionales y programados |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumo simultáneo |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumo ordenado |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumption concurrency optimization para consumo ordenado |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
Consumo por difusión |
❌ |
✅ |
✅ |
✅ |
❌ |
❌ |
|
Consumo de flujo (conexión a servicios como Flink) |
❌ |
✅ |
✅ |
❌ |
❌ |
❌ |
|
Seguimiento de mensajes |
✅ |
✅ |
Compatible con las versiones 4.5.2 y posteriores |
✅ |
✅ |
❌ |
|
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
|
✅ |
Compatible solo con instancias de la serie 5.x |
❌ |
❌ |
❌ |
❌ |
Límites
Todos los consumidores de un mismo grupo de consumidores deben usar clientes que admitan el mismo protocolo.
-
Al ejecutar una actualización gradual de un SDK con protocolo Remoting a uno con protocolo gRPC dentro del mismo grupo de consumidores:
Los grupos de consumidores que entregan mensajes ordenados no admiten esta actualización.
Los grupos de consumidores que entregan mensajes de forma simultánea admiten actualizaciones sin interrupciones. Durante el proceso, es posible que se duplique una pequeña cantidad de mensajes.
El desplazamiento del consumidor para mensajes ordenados podría revertirse si un grupo de consumidores sigue esta secuencia: comienza con un SDK de protocolo Remoting, se actualiza a un SDK de protocolo gRPC y luego vuelve al SDK de protocolo Remoting.
El SDK ONS TCP 2.x de RocketMQ está disponible solo en algunas regiones. Para obtener más información, consulte Límites.
SDK de protocolo TCP
Utilice el SDK Community Edition únicamente cuando migre RocketMQ de código abierto a la nube sin modificar el código. En todos los demás casos, use el SDK Enterprise Edition proporcionado por ApsaraMQ for RocketMQ. Este último ofrece más funciones y mayor estabilidad.
SDK de protocolo TCP Enterprise Edition (ONS 1.x/2.x)
Java
C/C++
.NET
SDK de protocolo HTTP
Se recomienda usar los SDK de protocolo HTTP (Enterprise Edition) para admitir varios lenguajes. Estos cubren lenguajes de programación adicionales que no están disponibles mediante el protocolo TCP.
SDK de protocolo HTTP Enterprise Edition
Java
PHP
Go
Python
Node.js
C#
C++
Comparación de funciones entre TCP y HTTP
TCP es el protocolo recomendado. Ofrece un alto rendimiento de transporte, admite más funciones de mensajería y proporciona mayor observability, lo que incluye la acumulación de mensajes y el restablecimiento del desplazamiento del consumidor. Utilice HTTP cuando TCP no admita su lenguaje de programación o cuando baste con un acceso ligero.
|
Feature |
TCP |
HTTP |
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
❌ |
Notas de uso
Haga coincidir el tipo de endpoint con el protocolo del SDK. Un SDK TCP requiere el endpoint TCP de la instancia de ApsaraMQ for RocketMQ; un SDK HTTP requiere el endpoint HTTP.
Los identificadores de grupo son específicos del protocolo y no se pueden compartir entre protocolos. Cree un identificador de grupo TCP para los SDK TCP y un identificador de grupo HTTP para los SDK HTTP.
-
Los clientes TCP y HTTP pueden intercambiar mensajes entre sí. Sin embargo, HTTP utiliza serialización XML, por lo que las propiedades, el contenido, las etiquetas y las claves de los mensajes deben cumplir con las especificaciones XML. Codifique con Base64 los mensajes que no cumplan con estas especificaciones.
NotaPara consultar las especificaciones XML, consulte Sintaxis XML. Para validar XML, utilice una herramienta de terceros como xml_validator.
Los endpoints públicos y privados están disponibles en todas las regiones, tanto para TCP como para HTTP. Para cargas de trabajo de producción, acceda a ApsaraMQ for RocketMQ a través de una red virtual privada (VPC). Para el acceso entre regiones, el acceso local o el acceso por Internet cuando Cloud Enterprise Network (CEN) no está disponible, utilice un endpoint público. El tráfico del endpoint público genera cargos por tráfico saliente de Internet. Para obtener más información, consulte Internet traffic pricing details.