O ApsaraMQ for RocketMQ impõe limites às cotas de recursos, aos tipos de instância e aos parâmetros relacionados. Ao usar o ApsaraMQ for RocketMQ, respeite os limites correspondentes para evitar erros na aplicação.
Limites de parâmetros
Os limites de parâmetros a seguir são fixos. Siga estas especificações para evitar erros causados por caracteres inválidos ou comprimentos excessivos.
Parâmetro | Valor | Descrição |
Nome da instância |
| Nenhuma. |
Nome do tópico |
Não use os seguintes caracteres reservados, prefixos ou sufixos nos nomes dos tópicos. | Use caracteres curtos e comuns nos nomes dos tópicos e evite caracteres especiais, pois podem causar erros de análise. Nomes excessivamente longos podem resultar na rejeição de operações de mensagem. |
Nome do LiteTopic |
| Use caracteres curtos e comuns nos nomes dos LiteTopics e evite caracteres especiais, pois podem causar erros de análise. Nomes excessivamente longos podem resultar na rejeição de operações de mensagem. |
Tempo de vida (TTL) do LiteTopic |
| Se nenhuma mensagem for gravada em um LiteTopic durante o período de TTL especificado, o LiteTopic expira e é excluído automaticamente. O valor -1 significa que o LiteTopic nunca expira. Defina este parâmetro apenas quando o tipo de mensagem for Lite. |
Nome do grupo de consumidores |
Não use os seguintes caracteres reservados ou prefixos nos nomes dos grupos de consumidores. | Nenhuma. |
Observações da instância |
| Nenhuma. |
Observações do tópico | ||
Observações do grupo de consumidores | ||
Credenciais ACL |
| Nenhuma. |
Timeout da requisição |
| O timeout da requisição define quanto tempo o cliente aguarda a conclusão de uma chamada síncrona. Defina um valor adequado para sua aplicação e evite o bloqueio prolongado de threads. |
Tamanho da mensagem | Máximo: 4 MB. Este limite aplica-se apenas ao corpo da mensagem e não inclui compressão. | Compacte mensagens e controle o tamanho do payload para evitar a transferência de arquivos grandes. Se uma mensagem exceder o limite de tamanho, divida-a ou use o OSS e transfira a URL da mensagem. Há suporte especial para tamanho de mensagem. Envie um ticket para solicitar. |
Propriedades personalizadas da mensagem |
Não use as seguintes chaves de propriedade reservadas como chaves de propriedade personalizadas. | Nenhuma. |
MessageGroup |
| O MessageGroup é o identificador de grupo para mensagens ordenadas. Geralmente, é definido como um identificador para um grupo de mensagens que devem ser processadas em ordem, como um id de pedido ou um id de usuário. |
Tentativas de envio de mensagem |
| O SDK do cliente gerencia automaticamente as tentativas de envio de mensagem com base em uma política interna, invisível para sua aplicação. Não defina este valor muito alto para evitar o bloqueio de threads de negócios. Se uma mensagem ainda falhar após o número máximo de tentativas, implemente um mecanismo de fallback na sua aplicação para garantir a confiabilidade. |
Tentativas de consumo de mensagem |
| Defina um valor razoável conforme necessário. Evite usar tentativas que acionem um loop infinito. Um número excessivo de tentativas pode aumentar significativamente a pressão sobre o sistema. |
Intervalo de verificação de resolução de transação |
| Este intervalo determina a frequência com que o cliente produtor verifica o status de uma mensagem de meia transação não confirmada devido a uma exceção ou reinicialização. Evite definir este intervalo muito curto, pois verificações frequentes podem degradar o desempenho do sistema. |
Primeiro horário de verificação para mensagens de meia transação |
| Nenhuma. |
Timeout máximo para mensagens de meia transação |
| Se uma mensagem de meia transação não for confirmada devido a uma reinicialização do sistema ou a uma exceção, o cliente produtor verificará seu status no intervalo de verificação de resolução de transação especificado. Caso nenhum resultado seja retornado após o período máximo de timeout, a mensagem de meia transação será revertida à força. Monitore esta métrica para evitar exceções de transação. |
Atraso máximo para mensagens agendadas |
| Defina o atraso para mensagens agendadas em um intervalo de nível de hora. Evite atrasos longos. |
Timeout de consumo do PushConsumer |
| O servidor do ApsaraMQ for RocketMQ controla o timeout de consumo do PushConsumer. Se um consumidor não processar uma mensagem dentro deste timeout, o sistema marca a tentativa de consumo como falha e aciona uma nova tentativa. Isso pode causar um pequeno número de mensagens duplicadas. |
Cache local do PushConsumer |
| Quando o tipo de consumidor é PushConsumer, o SDK do cliente armazena algumas mensagens localmente em cache para melhorar o throughput e o desempenho do consumidor. O número e o tamanho das mensagens em cache devem estar dentro dos limites da memória do sistema. |
Intervalo de nova tentativa do PushConsumer |
| Nenhuma. |
Concorrência de consumo do PushConsumer |
| Nenhuma. |
Tamanho máximo do lote para recuperação de mensagens |
| Este parâmetro especifica o número máximo de mensagens que um consumidor pode recuperar do servidor por vez. Defina um valor razoável conforme necessário. Recuperar muitas mensagens de uma só vez pode causar muitas mensagens duplicadas se o consumo falhar. |
Duração máxima de invisibilidade do SimpleConsumer |
| Defina esta duração para ser ligeiramente maior que o tempo esperado de processamento da mensagem, incluindo quaisquer intervalos potenciais de nova tentativa. |
Timeout de long polling do consumidor | Faixa de valores: mínimo de 5 segundos, máximo de 20 segundos. Personalize este valor dentro da faixa especificada. | Com o long polling, se não houver mensagens disponíveis no servidor, a requisição do cliente permanece aberta até que uma mensagem chegue ou o timeout expire. Este método reduz requisições de polling vazias e diminui a carga tanto no cliente quanto no servidor, especialmente quando o volume de mensagens é baixo. |
Assinatura | Limite de comprimento da expressão de filtro: 4.000 caracteres (incluindo filtros TAG e SQL). | Para mais informações sobre assinaturas, consulte Subscription. |
Cotas de recursos
O ApsaraMQ for RocketMQ limita métricas como consultas por segundo (QPS) e concorrência para garantir a estabilidade da produção. Essas cotas são suficientes para a maioria dos cenários. Se essas cotas não atenderem aos seus requisitos de negócios, entre em contato com o suporte técnico do ApsaraMQ for RocketMQ para obter assistência.
Limite | Valor | Descrição | |
Instâncias por assinatura e pagamento conforme o uso | Instâncias Serverless | ||
Número de instâncias por região | Máximo de 1.000 instâncias de todos os tipos. | Nenhuma. | |
TPS de envio e recebimento de mensagens por instância | Determinado pelo tipo de instância adquirido. Para limites específicos, consulte Instance type limits. | Dimensionamento automático | O TPS de envio e recebimento de mensagens reflete o desempenho de processamento da instância. Se o TPS real exceder o limite para o tipo de instância, a instância sofrerá throttling. Atualize o tipo de instância prontamente. |
Período de retenção de mensagens |
|
| Estenda o período de retenção de mensagens conforme seus custos de armazenamento permitirem. Um período mais longo oferece mais tempo para solução de problemas e reprodução de mensagens. |
Número de mensagens em trânsito por grupo de consumidores | Máximo: 2.500. | Máximo: 2.500. | Um número excessivo de mensagens em trânsito em um grupo de consumidores pode retardar as respostas do consumidor. Monitore esta métrica e solucione a causa prontamente. |
Número de LiteTopics aos quais um único consumidor pode assinar | Máximo: 2.000. | Máximo: 2.000. | Assinar um número excessivo de LiteTopics em um único consumidor pode degradar o desempenho do cliente. Para solicitar um aumento neste limite, envie um ticket. |
TPS máximo de consumo para cada LiteTopic | 200 | 200 | Crie centenas de milhares a milhões de LiteTopics sob um tópico. O TPS total de consumo do tópico não é afetado. |
Limitações
O Message Queue for RocketMQ, uma plataforma totalmente gerenciada como serviço (PaaS), restringe certas operações e recursos de alto risco disponíveis no Apache RocketMQ open-source para garantir a estabilidade do sistema. Se você tiver requisitos específicos, entre em contato com o suporte técnico do Message Queue for RocketMQ.
|
Limitação |
Descrição |
|
Compatibilidade com ferramentas Admin do Apache RocketMQ |
O Message Queue for RocketMQ não suporta a API Admin do Apache RocketMQ ou a interface de linha de comando (CLI) para gerenciar instâncias, tópicos ou grupos. Para gerenciar recursos programaticamente, use a OpenAPI do Alibaba Cloud, que fornece SDKs multilíngues e suporte a CLI. |
|
Mensagens Request-Reply do Apache RocketMQ |
O Message Queue for RocketMQ não suporta o envio de mensagens Request-Reply do Apache RocketMQ. |
|
Componente Streaming do Apache RocketMQ |
O Message Queue for RocketMQ não fornece um componente Streaming do Apache RocketMQ gerenciado. Implante este componente самостоятельно em um ambiente Alibaba Cloud ou use o recurso de integração de dados do Message Queue for RocketMQ para integração e computação leve de dados. |
|
Componente MQTT do Apache RocketMQ |
O Message Queue for RocketMQ não fornece um componente MQTT do Apache RocketMQ gerenciado. Recomendamos o uso do service ApsaraMQ for MQTT do Alibaba Cloud, que possui mais recursos. |
|
Componente EventBridge do Apache RocketMQ |
O Message Queue for RocketMQ não fornece um componente EventBridge do Apache RocketMQ gerenciado. Recomendamos o uso do service EventBridge do Alibaba Cloud, que possui mais recursos. |
|
Componente Apache RocketMQ-Connector |
O Message Queue for RocketMQ não fornece um componente Apache RocketMQ-Connector gerenciado. Use o recurso de integração de dados do Message Queue for RocketMQ para entrada e saída de dados. |
Limites de tipo de instância
Instâncias Standard Edition, Single Node Edition e Professional Edition não suportam TPS elástico. Planeje o uso de recursos com antecedência para evitar throttling da instância caso picos repentinos de tráfego excedam os limites da sua especificação.
As cotas de tópicos e grupos por instância são suficientes para a maioria dos casos de uso de produção em grande escala. Como melhor prática, isole seus serviços de negócios em diferentes instâncias com base no departamento ou domínio. Esta prática melhora a estabilidade e o gerenciamento de recursos.
A especificação de TPS de mensagens baseia-se no número total de mensagens normais enviadas e recebidas, usando um tamanho de mensagem padrão de 4 KB como referência. Um multiplicador é aplicado quando você usa recursos avançados de mensagem ou envia mensagens grandes. Para detalhes sobre como o TPS é calculado, consulte Calculation specifications.
-
Se o TPS real para envio e recebimento de mensagens exceder o limite superior do tipo de instância adquirido:
Se o TPS elástico estiver ativado, sua instância poderá operar normalmente desde que o TPS esteja dentro da faixa elástica provisionada. O uso que excede a especificação básica é cobrado com base no pagamento conforme o uso. Se o TPS ultrapassar a capacidade elástica máxima, a instância estará sujeita a throttling.
Para mais informações sobre a cobrança de TPS elástico para instâncias não Serverless, consulte Elastic TPS Fees. Para mais informações sobre a cobrança de TPS elástico para instâncias Serverless, consulte Serverless elastic TPS fees.
Se sua instância não suportar TPS elástico ou o recurso não estiver ativado, o Message Queue for RocketMQ aplicará throttling na instância.
ImportanteComportamento de throttling: quando o throttling é acionado, o servidor retorna uma resposta de falha para requisições que excedem o limite. As requisições não são enfileiradas.
Risco de perda de mensagens: o throttling não descarta mensagens no lado do servidor. No entanto, se o cliente não possuir um mecanismo de nova tentativa após receber uma resposta de falha de throttling, o sistema não reterá a mensagem. Isso equivale à perda de mensagens.
Melhores práticas: configure uma política razoável de nova tentativa de envio de mensagens no cliente. Esta política lida com falhas de envio causadas por throttling transitório e garante a confiabilidade das mensagens.
Um número excessivo de conexões de cliente com uma instância do Message Queue for RocketMQ consome recursos significativos do servidor e pode impactar severamente a estabilidade. Portanto, garanta que o número de conexões de cliente não exceda o limite para o seu tipo de instância.
Instâncias da série Serverless
Número de clientes online simultâneos: o número total de produtores e consumidores online. Cada um é contado como um cliente.
Contagem de recursos: o número total de tópicos e grupos de consumidores.
Arquitetura de implantação | Modo de capacidade | Faixa de TPS | Máximo de clientes simultâneos | Cota gratuita de clientes | Contagem máxima de recursos | Cota gratuita de recursos | Máximo de LiteTopics |
Compartilhado | Uso cumulativo | Todos | 5.000 | 500 | 3.000 | 100 | / |
Reservado + Elástico | [2.000, 20.000] | 5.000 | 1.000 | 3.000 | 200 | ||
(20.000, 50.000] | 8.000 | 2.000 | 3.000 | 200 | |||
(50.000, 100.000] | 10.000 | 3.000 | 3.000 | 200 | |||
(100.000, 200.000] | 20.000 | 5.000 | 3.000 | 200 | |||
Dedicado | Reservado + Elástico | 5.000 | 3.000 | 2.000 | 3.000 | 300 | 300.000 |
10.000 | 6.000 | 4.000 | 4.000 | 300 | 500.000 | ||
15.000 | 8.000 | 6.000 | 6.000 | 500 | 800.000 | ||
[20.000, 50.000] | 10.000 | 8.000 | 6.000 | 500 | 1.200.000 | ||
(50.000, 100.000] | 20.000 | 10.000 | 6.000 | 500 | 3.000.000 | ||
(100.000, 200.000] | 40.000 | 20.000 | 8.000 | 1.000 | 3.600.000 | ||
(200.000, 300.000] | 80.000 | 40.000 | 10.000 | 1.500 | 5.000.000 | ||
(300.000, 500.000] | 100.000 | 50.000 | 16.000 | 2.000 | 6.500.000 | ||
(500.000, 1.000.000] | 200.000 | 100.000 | 40.000 | 3.000 | 11.600.000 |
Instâncias não Serverless (assinatura e pagamento conforme o uso)
Standard edition
Subsérie da instância | Tipo de instância | TPS base máximo (ops/s) | TPS de pico máximo (ops/s) | Máximo de conexões | Largura de banda de saída (Mbps) | Cota gratuita de tópicos | Cota máxima de tópicos | Máximo de grupos de consumidores | Máximo de LiteTopics |
Single Node Edition (não vendida) | rmq.s1.micro | 500 | Não aplicável Este tipo de instância não suporta elasticidade de pico. | 2.000 | 1 a 1.000 Personalizável. | 100 | 100 | 1.000 | / |
Cluster High-availability Edition | rmq.s2.2xlarge | 2.000 | 4.000 | 300 | 50.000 | ||||
rmq.s2.4xlarge | 4.000 | 4.000 | 150.000 | ||||||
rmq.s2.6xlarge | 6.000 | 6.000 | 500 | 300.000 |
Se as cotas de tópicos e grupos de consumidores para a instância Standard Edition de nível superior (rmq.s2.6xlarge) forem insuficientes para suas necessidades de negócios, atualize para a Professional Edition e selecione um tipo de instância adequado.
Professional edition
Subsérie da instância | Tipo de instância | TPS base máximo (ops/s) | TPS de pico máximo (ops/s) | Máximo de conexões | Largura de banda de saída (Mbps) | Cota gratuita de tópicos | Cota máxima de tópicos | Máximo de grupos de consumidores | Máximo de LiteTopics |
Single Node Edition (não vendida) | rmq.p1.micro | 500 | Não aplicável Este tipo de instância não suporta elasticidade de pico. | 2.000 | 1 a 1.000 Personalizável. | 150 | 150 | 1.500 | / |
Cluster High-availability Edition | rmq.p2.4xlarge | 4.000 | 2.000 | 4.000 | 500 | 2.000 | 150.000 | ||
rmq.p2.6xlarge | 6.000 | 3.000 | 6.000 | 300.000 | |||||
rmq.p2.10xlarge | 10.000 | 5.000 | 10.000 | 1.000 | 500.000 | ||||
rmq.p2.20xlarge | 20.000 | 10.000 | 10.000 | 800.000 | |||||
rmq.p2.30xlarge | 30.000 | 15.000 | 12.000 | 2.000 | 1.000.000 | ||||
rmq.p2.40xlarge | 40.000 | 20.000 | 12.000 | 1.200.000 | |||||
rmq.p2.50xlarge | 50.000 | 20.000 | 14.000 | 1.400.000 | |||||
rmq.p2.100xlarge | 100.000 | 30.000 | 26.000 | 2.200.000 | |||||
rmq.p2.120xlarge | 120.000 | 40.000 | 30.000 | 2.700.000 | |||||
rmq.p2.150xlarge | 150.000 | 50.000 | 38.000 | 3.300.000 | |||||
rmq.p2.200xlarge | 200.000 | 60.000 | 50.000 | 4.500.000 |
Se as cotas de tópicos e grupos de consumidores para instâncias Professional Edition de rmq.p2.10xlarge ou superior forem insuficientes para suas necessidades de negócios, envie um ticket.
Platinum edition
Subsérie da instância | Tipo de instância | TPS base máximo (ops/s) | TPS de pico máximo (ops/s) | Máximo de conexões | Largura de banda de saída (Mbps) | Cota gratuita de tópicos | Cota máxima de tópicos | Máximo de grupos de consumidores | Máximo de LiteTopics |
Cluster High-availability Edition | rmq.u2.10xlarge | 10.000 | 5.000 | 10.000 | 1 a 1.000 Personalizável. | 200 | 3.000 | 4.000 | 600.000 |
rmq.u2.20xlarge | 20.000 | 10.000 | 10.000 | 800.000 | |||||
rmq.u2.30xlarge | 30.000 | 15.000 | 12.000 | 1.000.000 | |||||
rmq.u2.40xlarge | 40.000 | 20.000 | 10.000 | 1.200.000 | |||||
rmq.u2.50xlarge | 50.000 | 20.000 | 14.000 | 1.400.000 | |||||
rmq.u2.60xlarge | 60.000 | 22.000 | 16.000 | 1.600.000 | |||||
rmq.u2.70xlarge | 70.000 | 24.000 | 18.000 | 1.700.000 | |||||
rmq.u2.80xlarge | 80.000 | 26.000 | 20.000 | 1.800.000 | |||||
rmq.u2.90xlarge | 90.000 | 28.000 | 24.000 | 2.000.000 | |||||
rmq.u2.100xlarge | 100.000 | 30.000 | 26.000 | 2.200.000 | |||||
rmq.u2.120xlarge | 120.000 | 40.000 | 30.000 | 2.700.000 | |||||
rmq.u2.150xlarge | 150.000 | 50.000 | 38.000 | 3.300.000 | |||||
rmq.u2.200xlarge | 200.000 | 60.000 | 50.000 | 4.500.000 | |||||
rmq.u2.250xlarge | 250.000 | 70.000 | 51.000 | 5.600.000 | |||||
rmq.u2.300xlarge | 300.000 | 80.000 | 52.000 | 6.300.000 | |||||
rmq.u2.350xlarge | 350.000 | 90.000 | 53.000 | 7.500.000 | |||||
rmq.u2.400xlarge | 400.000 | 100.000 | 54.000 | 9.300.000 | |||||
rmq.u2.450xlarge | 450.000 | 120.000 | 60.000 | 10.400.000 | |||||
rmq.u2.500xlarge | 500.000 | 140.000 | 66.000 | 11.600.000 | |||||
rmq.u2.550xlarge | 550.000 | 160.000 | 72.000 | 12.800.000 | |||||
rmq.u2.600xlarge | 600.000 | 200.000 | 80.000 | 14.000.000 | |||||
rmq.u2.1000xlarge | 1.000.000 | 300.000 | 134.000 | 23.200.000 |
Se as cotas de tópicos e grupos de consumidores para instâncias Platinum Edition ainda forem insuficientes para suas necessidades de negócios, envie um ticket.