Les pools de lecture Cloud SQL sont compatibles avec l'équilibrage de charge pour vos charges de travail de lecture volumineuses.
Que sont les pools de lecture ?
Un pool de lecture est un ensemble d'instances répliquées avec accès en lecture utilisé pour distribuer vos charges de travail de lecture volumineuses. Ces charges de travail peuvent être redirigées de l'instance principale vers le pool de lecture afin de réduire la charge sur l'instance principale.
Chaque instance répliquée avec accès en lecture du pool de lecture est appelée nœud de pool de lecture.
Vous pouvez mettre à l'échelle votre pool de lecture de plusieurs manières :
- Scaling horizontal : mettez à l'échelle la capacité d'équilibrage de charge horizontalement en modifiant le nombre de nœuds de pool de lecture dans le pool de lecture. Chaque pool de lecture est compatible avec 1 à 20 nœuds de pool de lecture.
- Scaling vertical : mettez à l'échelle la capacité d'équilibrage de charge verticalement en modifiant le type de machine associé à un nœud de pool de lecture. Une fois définie, la configuration est appliquée de manière uniforme à chaque nœud de pool de lecture du pool de lecture.
Lorsque vous modifiez les paramètres des nœuds de pool de lecture, tels que le stockage, la connectivité ou les options de configuration de la base de données, les modifications sont automatiquement appliquées de manière uniforme à chaque nœud de pool de lecture du pool de lecture.
Accéder à un pool de lecture via un point de terminaison de lecture unique
Le pool de lecture est accessible via un point de terminaison de lecture unique avec une adresse IP immuable. Les connexions établies via le point de terminaison sont automatiquement redirigées vers l'un des nœuds de pool de lecture. Lorsque vous souhaitez que le pool de lecture soit mis à l'échelle effectuer un scaling horizontal, les applications précédemment connectées à ce point de terminaison de lecture unique n'ont pas besoin d'être reconfigurées, même si vous pouvez créer de nouveaux nœuds de pool de lecture dans le pool de lecture ou supprimer les précédents.
Chaque nœud de pool de lecture possède également sa propre adresse IP. Bien que cette approche ne soit pas recommandée pour accéder à vos données, vous pouvez utiliser ces adresses IP pour résoudre les problèmes de performances des nœuds de pool de lecture individuels.
Pour en savoir plus sur la récupération des informations de connexion pour le pool de lecture ou les nœuds de pool de lecture (adresses IP ou chaîne de connexion), consultez Afficher les informations du pool de lecture.
Autoscaling du pool de lecture
Pour savoir comment configurer votre pool de lecture afin qu'il soit redimensionné automatiquement pour s'adapter à vos besoins changeants de la charge de travail de votre application, consultez Autoscaling du pool de lecture.
Caractéristiques du pool de lecture
Les caractéristiques suivantes s'appliquent :
- Un pool de lecture comportant au moins deux nœuds est couvert par le contrat de niveau de service.
- Les nœuds de pool de lecture du pool de lecture résident toujours dans la même région, comme spécifié par l'utilisateur. Google Cloud alternates read pool node residency among all zones in the region.
- Une instance principale peut comporter un ou plusieurs pools de lecture.
- Les opérations suivantes entraînent un temps d'arrêt inférieur à une seconde :
- Scaling horizontal (ajout ou suppression de nœuds de pool de lecture)
- Scaling vertical (modification du type de machine des nœuds du pool)
- Conversion d'une instance répliquée zonale existante avec accès en lecture en pool de lecture
- Un pool de lecture reçoit une maintenance avant son instance principale, similaire à des instances répliquées avec accès en lecture. Comme les instances répliquées avec accès en lecture, les pools de lecture reçoivent une maintenance pendant l' intervalle de maintenance de l'instance principale.
- Chaque nœud de pool de lecture dispose des mêmes métriques qu'une instance répliquée Cloud SQL avec accès en lecture.
- Lorsque vous utilisez
gcloudou la Google Cloud console pour décrire les détails d'un projet, le nom du pool de lecture est listé, mais pas les noms des nœuds de pool de lecture individuels. - Si vous souhaitez mettre à l'échelle le nombre d'instances répliquées avec accès en lecture au-delà d'un nombre total de
10, vous devez réinitialiser les valeurs des options de base de données
max_wal_sendersetmax_replication_slotssur l'instance principale à une valeur supérieure ou égale au nombre d'instances répliquées avec accès en lecture que vous souhaitez utiliser. Par exemple, si votre instance principale comporte deux instances répliquées avec accès en lecture et deux pools de lecture de dix instances répliquées chacun, vous devez réinitialiser les options de configurationmax_wal_sendersetmax_replication_slotssur22ou une valeur supérieure. Si votre instance utilise PostgreSQL 18, vous devez également définir l'optionmax_active_replication_originssur22ou une valeur supérieure.
Limites
Les limites suivantes s'appliquent :
- Les pools de lecture ne sont disponibles que pour les instances Cloud SQL Enterprise Plus sur la nouvelle architecture réseau. L'instance principale associée à un pool de lecture doit également être une instance Cloud SQL Enterprise Plus.
- Le trafic est diffusé à partir des nœuds de pool de lecture en fonction de l'état de la base de données sain, mais quel que soit le délai de réplication sur ce nœud de pool de lecture. Le trafic peut être diffusé à partir d'un nœud de pool de lecture en retard, même si un autre nœud de pool nœud est disponible et n'est pas en retard. Une base de données est considérée comme opérationnelle si le processus de base de données est en cours d'exécution et peut répondre aux requêtes, mais il n'existe aucune exigence concernant la fraîcheur des données diffusées.
- Aucune garantie n'est donnée concernant une seule session logique se connectant à plusieurs nœuds de pool de lecture dans le pool de lecture. Il est possible que les requêtes ultérieures d'une session se connectent à un nœud de pool de lecture dont la position de réplication est inférieure à celle du nœud de pool de lecture qui a diffusé une requête antérieure, ce qui peut entraîner un retour en arrière de l'état de la base de données.
- Les types de mises à jour suivants ne sont pas compatibles :
- Bien que les pools de lecture reçoivent toujours les mises à jour de maintenance Cloud SQL, vous ne pouvez pas mettre à jour votre pool de lecture vers une nouvelle version majeure de la base de données.
- Démarrage ou arrêt des nœuds du pool de lecture
- En plus des opérations non compatibles avec les instances répliquées avec accès en lecture, les
opérations suivantes ne sont pas compatibles avec les pools de lecture :
- Activer et désactiver la réplication
- Promouvoir une instance répliquée
- Redémarrer
- Importer
- Exporter
- Basculement
- Rechiffrer
- Cloner
- Les certificats SSL/TLS avec une autorité de certification partagée ou gérée par le client ne peuvent pas être utilisés avec un pool de lecture.
- Un pool de lecture ne peut pas être répliqué vers une autre instance, par exemple une instance répliquée en cascade ou un autre pool de lecture.
- Un pool de lecture doit être répliqué directement à partir d'une instance principale. Il ne peut pas s'agir d'une instance répliquée en cascade.
- Si vous souhaitez convertir une instance répliquée régionale avec accès en lecture en pool de lecture, vous devez d'abord la convertir en instance répliquée zonale avec accès en lecture.
- Lorsque vous créez ou mettez à l'échelle un pool de lecture, vous devez attendre la fin des opérations précédentes de création de pool,
scaling horizontal ou effectuer un scaling horizontal associées au pool de lecture. Cette
restriction s'applique à tout autre pool de lecture associé à la même instance principale. Si vous souhaitez mettre à l'échelle plusieurs pools de lecture associés à la même
instance principale, vous devez attendre la fin des opérations de scaling associées au
premier pool de lecture avant de commencer à mettre à l'échelle le pool de lecture suivant. Si vous
envoyez des requêtes simultanées, vous pouvez recevoir l'erreur suivante :
Operation failed because another operation was already in progress.. - Seule une instance répliquée zonale située dans la même région que l'instance principale peut être convertie pour être utilisée dans un pool de lecture.
- Si votre application doit se connecter à une instance répliquée dédiée avec accès en lecture (par exemple, en raison d'index secondaires présents sur une instance répliquée spécifique avec accès en lecture), créez une instance répliquée Cloud SQL avec accès en lecture et utilisez-la à la place.