O ApsaraMQ for RocketMQ oferece SDKs para os protocolos TCP e HTTP em diversas linguagens de programação. Com base na versão da sua instância, nos recursos necessários e no protocolo de sua preferência, escolha um SDK.
escolha uma versão do SDK
O SDK gRPC 5.x é o ponto de partida recomendado. Ele suporta todos os novos recursos e recebe otimizações contínuas. Caso o SDK gRPC não cubra um recurso 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, ❌ = não compatí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. Compatível com várias linguagens. Este SDK recebe todos os novos recursos e otimizações. |
Utilize o SDK Remoting como alternativa caso o SDK gRPC 5.x não atenda a requisitos específicos. |
Use apenas se seus services já estiverem em execução nesses clientes. As instâncias 5.x são compatíveis com versões anteriores. |
Use apenas se seus services já estiverem em execução nesses 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 simultâneo |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumo ordenado |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumption concurrency optimization para consumo ordenado |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
Consumo por broadcast |
❌ |
✅ |
✅ |
✅ |
❌ |
❌ |
|
Consumo de stream (conexão com services como o 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 consumidores do mesmo grupo de consumidores devem usar clientes compatíveis com o mesmo protocolo.
-
Durante uma atualização gradual de um SDK de protocolo Remoting para um SDK de protocolo gRPC dentro do mesmo grupo de consumidores, observe as seguintes regras:
Grupos de consumidores que entregam mensagens ordenadas não suportam essa atualização.
Grupos de consumidores que entregam mensagens de forma simultânea suportam atualizações suaves. O processo pode duplicar um pequeno número de mensagens.
O offset do consumidor para mensagens ordenadas pode sofrer rollback se o grupo de consumidores 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 RocketMQ ONS TCP 2.x 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 cloud sem alterar o 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
Recomendamos os SDKs de protocolo HTTP (Enterprise Edition) para suporte a múltiplas linguagens, pois abrangem linguagens de programação adicionais não disponíveis no protocolo TCP.
SDKs de protocolo HTTP Enterprise Edition
Java
PHP
Go
Python
Node.js
C#
C++
Comparação de recursos entre TCP e HTTP
O TCP é o protocolo recomendado. Ele oferece alto desempenho de transporte, compatibilidade com mais recursos de mensagens e observabilidade mais rica, incluindo acumulação de mensagens e redefinição do offset do consumidor. Utilize o HTTP quando o TCP não suportar sua linguagem de programação ou quando um acesso simplificado for suficiente.
|
Recurso |
TCP |
HTTP |
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
❌ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
✅ |
|
|
✅ |
❌ |
Observações de uso
Alinhe o tipo de endpoint ao protocolo do SDK. Um SDK TCP exige o endpoint TCP da instância do ApsaraMQ for RocketMQ; já um SDK HTTP exige o endpoint HTTP.
Os Group IDs são específicos de protocolo e não permitem compartilhamento 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, o HTTP usa serialização XML, portanto, 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 em Base64.
NotaPara as especificações XML, consulte Sintaxe XML. Para validar o XML, use uma ferramenta de terceiros, como o xml_validator.
Há endpoints públicos e privados 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 Virtual Private Cloud (VPC). Para acesso entre regiões, acesso on-premises ou acesso à Internet quando a Cloud Enterprise Network (CEN) não estiver disponível, utilize um endpoint público. O tráfego em endpoints públicos está sujeito a cobranças de tráfego de saída para a Internet. Para mais informações, consulte Internet traffic pricing details.