O ApsaraMQ for RocketMQ oferece SDKs para os protocolos TCP e HTTP em diversas linguagens de programação. Escolha um SDK com base na versão da sua instância, nos recursos necessários e no protocolo preferido.
Escolha uma versão do SDK
Recomendamos o SDK gRPC 5.x como ponto de partida. Ele oferece suporte a todos os novos recursos e recebe otimizações contínuas. Caso o SDK gRPC não atenda a um requisito específico, utilize o SDK Remoting 5.x como alternativa.
A tabela a seguir compara todas as versões de SDK disponíveis. ✅ = compatível, ❌ = incompatível.
|
**Recurso** |
||||||
|
Protocolo |
Protocolo gRPC v2 |
Protocolo Remoting |
Protocolo Remoting |
Protocolo Remoting |
Protocolo gRPC v1 |
Protocolo HTTP |
|
Instâncias compatíveis |
Instâncias da série 5.x |
Instâncias das séries 5.x e 4.x |
Instâncias das séries 5.x e 4.x |
Instâncias das séries 5.x e 4.x |
Instâncias da série 4.x |
Instâncias da série 4.x |
|
Quando usar |
Recomendado. Suporta múltiplas linguagens. Todos os novos recursos e otimizações têm este SDK como alvo. |
Utilize o SDK Remoting caso o SDK gRPC 5.x não atenda a requisitos específicos. |
Use apenas se seus serviços já executarem nestes clientes. As instâncias 5.x são compatíveis com versões anteriores. |
Use apenas se seus serviços já executarem nestes clientes. As instâncias 5.x são compatíveis com versões anteriores. |
SDK legado. Sem novos recursos. Acessa apenas instâncias 4.x. |
SDK legado. Sem novos recursos. Acessa apenas instâncias 4.x. |
|
Mensagens normais, ordenadas, transacionais e agendadas |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumo concorrente |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumo ordenado |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Otimização de concorrência de consumo para consumo ordenado |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
Consumo por broadcast |
❌ |
✅ |
✅ |
✅ |
❌ |
❌ |
|
Consumo em stream (conexão com serviços como Flink) |
❌ |
✅ |
✅ |
❌ |
❌ |
❌ |
|
Rastreamento de mensagens |
✅ |
✅ |
Compatível nas versões 4.5.2 e posteriores |
✅ |
✅ |
❌ |
|
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
|
✅ |
Compatível apenas com instâncias da série 5.x |
❌ |
❌ |
❌ |
❌ |
Limitações
Todos os consumers no mesmo consumer group devem usar clientes compatíveis com o mesmo protocolo.
-
Ao executar uma atualização gradual (grayscale) de um SDK de protocolo Remoting para um SDK de protocolo gRPC dentro do mesmo consumer group:
Consumer groups que entregam mensagens ordenadas não oferecem suporte a essa atualização.
Consumer groups que entregam mensagens de forma concorrente permitem atualizações suaves. Um pequeno número de mensagens pode ser duplicado durante o processo.
O offset de consumo para mensagens ordenadas pode sofrer rollback se um consumer group seguir esta sequência: iniciar com um SDK de protocolo Remoting, atualizar para um SDK de protocolo gRPC e, em seguida, reverter para o SDK de protocolo Remoting.
O SDK ONS TCP 2.x do RocketMQ está disponível apenas em algumas regiões. Para mais informações, consulte Limites.
SDKs de protocolo TCP
Utilize o SDK Community Edition apenas ao migrar o RocketMQ open source para a nuvem sem alterações de código. Para todos os outros casos, use o SDK Enterprise Edition fornecido pelo ApsaraMQ for RocketMQ. O SDK Enterprise Edition oferece mais recursos e maior estabilidade.
SDKs de protocolo TCP Enterprise Edition (ONS 1.x/2.x)
Java
C/C++
.NET
SDKs de protocolo HTTP
Os SDKs de protocolo HTTP (Enterprise Edition) são recomendados para suporte multilíngue, pois abrangem linguagens de programação adicionais indisponíveis via protocolo TCP.
SDKs de protocolo HTTP Enterprise Edition
Java
PHP
Go
Python
Node.js
C#
C++
Comparação de recursos TCP vs. HTTP
Recomendamos o protocolo TCP. Ele oferece alto desempenho de transporte, suporta mais recursos de mensageria e proporciona maior observabilidade, incluindo acumulação de mensagens e redefinição de offset de consumo. Utilize HTTP quando o TCP não oferecer suporte à sua linguagem de programação ou quando um acesso leve for suficiente.
|
**Recurso** |
**TCP** |
**HTTP** |
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
❌ |
Observações de uso
Associe o tipo de endpoint ao protocolo do SDK. Um SDK TCP requer o endpoint TCP da instância do ApsaraMQ for RocketMQ; um SDK HTTP requer o endpoint HTTP.
Os Group IDs são específicos de protocolo e não podem ser compartilhados entre protocolos. Crie um Group ID TCP para SDKs TCP e um Group ID HTTP para SDKs HTTP.
-
Clientes TCP e HTTP podem trocar mensagens entre si. No entanto, como o HTTP usa serialização XML, as propriedades, o conteúdo, as tags e as chaves das mensagens devem estar em conformidade com as especificações XML. Codifique mensagens não compatíveis com Base64.
NotaPara especificações XML, consulte Sintaxe XML. Para validar XML, utilize uma ferramenta de terceiros, como xml_validator.
Endpoints públicos e privados estão disponíveis em todas as regiões tanto para TCP quanto para HTTP. Para cargas de trabalho de produção, acesse o ApsaraMQ for RocketMQ por meio de uma VPC. Para acesso entre regiões, acesso on-premises ou acesso pela Internet quando a Cloud Enterprise Network (CEN) não estiver disponível, utilize um endpoint público. O tráfego de endpoint público incorre em cobranças de tráfego de saída para a Internet. Para mais informações, consulte Faturamento de tráfego de Internet.