O ApsaraMQ for RocketMQ oferece SDKs HTTP para várias linguagens de programação com acesso pela Internet pública.
Suporte a várias linguagens de programação
O ApsaraMQ for RocketMQ suporta protocolos HTTP RESTful e disponibiliza SDKs para sete linguagens de programação. Os recursos dos SDKs HTTP são desenvolvidos continuamente para se alinharem aos dos SDKs TCP. Para obter detalhes sobre as diferenças, consulte os seguintes tópicos:
Observações de uso
-
Os consumidores HTTP podem usar long polling ou short polling para consumir mensagens dos brokers do ApsaraMQ for RocketMQ.
Long polling: o consumidor envia uma solicitação ao broker buscando mensagens de um tópico específico. Se não houver mensagens disponíveis, o broker retém a solicitação até que uma mensagem seja produzida ou o período de long polling expire.
Short polling: se não houver mensagens disponíveis, o broker retorna uma resposta imediatamente. Em seguida, o cliente envia novas solicitações de assinatura repetidamente.
Configure o modo de polling da seguinte forma:
Long polling: defina o parâmetro
waitSecondscom um valor maior que 0 na solicitação de assinatura. O valor máximo é 30 segundos.Short polling: defina o parâmetro
waitSecondscomo 0 ou omita-o na solicitação de assinatura.
Para mais informações, consulte Consumir mensagens.
O uso de short polling quando o tópico está vazio gera um grande volume de solicitações inválidas, resultando em custos de chamadas de API. Para reduzir essas solicitações e economizar, use long polling e aumente o tempo de espera. Para detalhes sobre o cálculo das taxas de chamadas de API, consulte Taxas de chamadas de API.
ImportanteSe mais de 100 consumidores se conectarem a uma instância do ApsaraMQ for RocketMQ via HTTP, o sistema alterna automaticamente de long polling para short polling para garantir a estabilidade do serviço e a tempestividade do consumo. Para evitar o aumento de custos devido a solicitações inválidas após essa alternância, limite o número de conexões de consumidores.
O acesso via SDK HTTP é um recurso aprimorado do ApsaraMQ for RocketMQ. Clusters Apache RocketMQ autogerenciados não oferecem suporte a esse recurso.
-
Verifique se os recursos que você deseja acessar estão na mesma região do endpoint HTTP utilizado.
Por exemplo, se sua instância do ApsaraMQ for RocketMQ estiver na região China (Hangzhou), use o endpoint correspondente à China (Hangzhou). Observe o seguinte:
Se seu cliente estiver na região China (Hangzhou), use o endpoint interno HTTP para obter o melhor desempenho.
Se o cliente estiver fora da região China (Hangzhou), garanta a conectividade com a Internet e use o endpoint público HTTP.
-
É possível transmitir mensagens entre clientes TCP e HTTP. Como o HTTP usa serialização XML, os atributos, corpos, tags e chaves das mensagens devem obedecer às regras do XML.
NotaPara mais informações sobre as regras do XML, consulte Sintaxe XML. Você também pode usar a ferramenta XML Validator para verificar a conformidade.
Caracteres que violam as regras do XML causam os seguintes problemas:
Falha no envio de mensagens transmitidas por HTTP.
Falha no consumo de mensagens enviadas via TCP e consumidas por HTTP.
Para lidar com mensagens que contêm caracteres não compatíveis, use codificação e decodificação Base64.