O ApsaraMQ for Kafka limita o número total de tópicos e partições por cluster para proteger o desempenho e a estabilidade. Cada partição consome recursos do broker, como identificadores de arquivo, memória e threads de replicação. Portanto, uma quantidade excessiva de partições reduz o throughput e aumenta a latência em todo o cluster.
Como as partições afetam o desempenho do cluster
No ApsaraMQ for Kafka, o armazenamento e o agendamento das mensagens ocorrem por partição. Cada partição corresponde a um diretório em cada broker com réplica. Esse diretório contém um arquivo de índice e um arquivo de dados por segmento de log. À medida que o número de partições aumenta, os seguintes problemas se intensificam:
|
Área de impacto |
O que acontece |
|
Consumo de identificadores de arquivo |
Cada partição exige identificadores de arquivo abertos para seus segmentos de índice e de dados. Milhares de partições podem esgotar o limite de descritores de arquivo do sistema operacional. |
|
Latência de replicação |
Os brokers replicam os dados da partição para manter as réplicas sincronizadas. Um maior número de partições aumenta o tempo necessário para confirmar mensagens, o que eleva a latência de mensagem de ponta a ponta. |
|
Tempo de recuperação |
Quando um broker reinicia ou passa por failover, ele precisa recarregar metadados e atualizar todas as partições que hospeda. Mais partições prolongam a janela de indisponibilidade durante a recuperação. |
O que fazer ao atingir o limite
Caso sua carga de trabalho exija mais tópicos ou partições do que o cluster atual permite:
Consolide os tópicos. Verifique se vários tópicos com pouco tráfego podem compartilhar menos partições. O particionamento excessivo é uma causa comum para atingir limites prematuramente.
Envie um ticket. Para obter mais informações ou solicitar um aumento de cota, envie um ticket.