ApsaraMQ for Kafka limite le nombre total de topics et de partitions par cluster afin de préserver les performances et la stabilité. Chaque partition consomme des ressources du broker, telles que des descripteurs de fichiers, de la mémoire et des threads de réplication. Un nombre excessif de partitions dégrade donc le débit et augmente la latence sur l'ensemble du cluster.
Impact des partitions sur les performances du cluster
Dans ApsaraMQ for Kafka, les messages sont stockés et planifiés par partition. Chaque partition correspond à un répertoire sur chaque broker qui détient un réplica. Ce répertoire contient un fichier d'index et un fichier de données pour chaque segment de journal. À mesure que le nombre de partitions augmente, les problèmes suivants s'intensifient :
| Zone d'impact | Conséquence |
|---|---|
| Consommation de descripteurs de fichiers | Chaque partition nécessite des descripteurs de fichiers ouverts pour ses segments d'index et de données. Des milliers de partitions peuvent épuiser la limite de descripteurs de fichiers du système d'exploitation. |
| Latence de réplication | Les brokers répliquent les données des partitions pour maintenir la synchronisation des réplicas. Un plus grand nombre de partitions augmente le temps nécessaire pour valider les messages, ce qui accroît la latence de bout en bout. |
| Temps de récupération | Lorsqu'un broker redémarre ou effectue un basculement, il doit recharger les métadonnées et rattraper son retard sur chaque partition qu'il héberge. Un nombre élevé de partitions prolonge la fenêtre d'indisponibilité pendant la récupération. |
Que faire lorsque vous atteignez la limite
Si votre charge de travail nécessite plus de topics ou de partitions que ne le permet votre cluster actuel :
Regroupez les topics. Vérifiez si plusieurs topics à faible trafic peuvent partager moins de partitions. Le sur-découpage en partitions est une cause fréquente d'atteinte prématurée des limites.
Soumettez un ticket. Pour plus d'informations ou pour demander une augmentation du quota, soumettez un ticket.