O ApsaraMQ for RocketMQ oferece diversas versões de SDK com protocolos distintos. Escolha o SDK adequado ao tipo da sua instância e à sua carga de trabalho.
Para novos projetos, use o RocketMQ 5.x gRPC SDK . Ele suporta a maior quantidade de linguagens, recebe todos os novos recursos e é compatível com instâncias da série 5.x. Caso precise de funcionalidades exclusivas de SDKs mais antigos, como consumo por broadcast ou consumo em stream, use o SDK correspondente.
Versões de SDK
A tabela a seguir compara o protocolo, a compatibilidade de instâncias e a recomendação para cada versão do SDK.
|
Protocolo |
Protocolo gRPC v2 |
Protocolo Remoting |
Protocolo Remoting |
Protocolo Remoting |
Protocolo gRPC v1 |
Protocolo HTTP |
|
Instâncias acessí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 |
|
Recomendação |
Recomendado. Suporta múltiplas linguagens. Todos os novos recursos e otimizações têm este SDK como alvo. Se alguns recursos do 5.x gRPC SDK não atenderem aos seus requisitos, use o 5.x Remoting SDK. |
Aplicações existentes podem continuar usando estas versões do SDK. Compatível com instâncias da série 5.x. |
Aplicações existentes podem continuar usando estas versões do SDK. Compatível com instâncias da série 5.x. |
Aplicações existentes podem continuar usando estas versões do SDK. Compatível com instâncias da série 5.x. |
Não use clientes destas versões. Sem novos recursos ou otimizações. Apenas instâncias da série 4.x são acessíveis. |
Não use clientes destas versões. Sem novos recursos ou otimizações. Apenas instâncias da série 4.x são acessíveis. |
Comparação de recursos entre versões de SDK
Na tabela abaixo, uma marca de verificação indica suporte e um X indica falta de suporte.
|
Recurso |
5.x gRPC |
5.x Remoting |
4.x/3.x |
ONS TCP 1.x |
ONS TCP 2.x |
ONS HTTP |
|
Envio de mensagens normais, ordenadas, transacionais e agendadas |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
|
Consumo concorrente |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Consumo ordenado de mensagens |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
Otimização de concorrência para consumo ordenado de mensagens |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
Consumo por broadcast |
❌ |
✅ |
✅ |
✅ |
❌ |
❌ |
|
Consumo em stream (integração com Flink, etc.) |
❌ |
✅ |
✅ |
❌ |
❌ |
❌ |
|
Rastreamento de mensagens |
✅ |
✅ |
Suportado nas versões 4.5.2 e posteriores |
✅ |
✅ |
❌ |
|
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
|
|
✅ |
Suportado apenas para instâncias da série 5.x |
❌ |
❌ |
❌ |
❌ |
|
|
Envio em lote |
❌ |
✅ |
✅ |
❌ |
❌ |
❌ |
|
Mensagem prioritária |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
O recurso de mensagem prioritária permite atribuir níveis de prioridade às mensagens, garantindo que aquelas com maior prioridade sejam consumidas antes das de menor prioridade. Esta funcionalidade é exclusiva do RocketMQ 5.x gRPC SDK.
Limites
Consumidores diferentes no mesmo grupo de consumidores devem usar clientes que suportem o mesmo protocolo.
-
Ao executar uma atualização gradual (grayscale) de um SDK com protocolo Remoting para um SDK com protocolo gRPC no mesmo grupo de consumidores:
Grupos de consumidores que entregam mensagens em ordem não suportam essa atualização.
Grupos de consumidores que entregam mensagens simultaneamente suportam atualizações suaves. Um pequeno número de mensagens pode ser duplicado durante o processo.
Para enviar mensagens ao mesmo tópico ordenado, todos os clientes produtores devem utilizar o mesmo protocolo. O protocolo deve ser obrigatoriamente Remoting ou gRPC.
-
Em grupos de consumidores que entregam mensagens em ordem, o offset do consumidor pode retroceder se ocorrer a seguinte sequência:
O grupo de consumidores utiliza inicialmente um SDK com protocolo Remoting.
O SDK é atualizado para um SDK com protocolo gRPC.
O SDK reverte para o SDK com protocolo Remoting.
O RocketMQ ONS TCP 2.x SDK está disponível apenas em algumas regiões. Para mais informações, consulte Limites.
RocketMQ 5.x gRPC SDK
O 5.x gRPC SDK suporta Java, C#, Go, Python e C++. Todas as linguagens utilizam o protocolo gRPC v2.
|
Linguagem |
Referências |
||
|
Java SDK |
|||
|
C# SDK |
|||
|
Go SDK |
|||
|
Python SDK |
|||
|
C++ SDK |
RocketMQ 5.x Remoting SDK
O 5.x Remoting SDK está disponível apenas para Java e utiliza o protocolo Remoting.
|
Linguagem |
Referências |
||
|
Java SDK |
RocketMQ 4.x/3.x SDK
O SDK 4.x/3.x está disponível para Java e C++, utilizando o protocolo Remoting.
|
Linguagem |
Referências |
||
|
Java SDK |
|||
|
C++ SDK |
RocketMQ ONS TCP 1.x SDK
O ONS TCP 1.x SDK está disponível para Java, C++ e .NET, utilizando o protocolo Remoting.
|
Linguagem |
Referências |
||
|
Java SDK |
|||
|
C++ SDK |
|||
|
.NET SDK |