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ées pour répartir 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 effectuer le scaling de votre pool de lecture de plusieurs manières :
- Effectuer un scaling horizontal : effectuez un scaling horizontal de la capacité d'équilibrage de charge en modifiant le nombre de nœuds du pool de lecture. Chaque pool de lecture accepte entre 1 et 20 nœuds de pool de lecture.
- Effectuer un scaling à la hausse ou à la baisse : effectuez un scaling vertical de la capacité d'équilibrage de charge 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 du pool de lecture.
Lorsque vous modifiez les paramètres des nœuds d'un 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 du pool de lecture.
Accéder à un pool de lecture via un seul point de terminaison de lecture
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 du pool de lecture. Lorsque vous souhaitez effectuer un scaling horizontal ou vertical du pool de lecture, les applications qui étaient auparavant connectées à ce point de terminaison de lecture unique n'ont pas besoin d'être reconfigurées, même si vous pouvez créer des nœuds de pool de lecture dans le pool de lecture ou supprimer les précédents.
Chaque nœud du pool de lecture possède également sa propre adresse IP. Bien que cette approche ne soit pas recommandée pour accéder efficacement à 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 du pool de lecture ou des nœuds du pool de lecture (adresses IP ou chaîne de connexion), consultez Afficher les informations sur le pool de lecture.
Autoscaling du pool de lecture
Vous pouvez configurer votre pool de lecture pour qu'il se redimensionne automatiquement afin de s'adapter aux besoins changeants de votre application en termes de charge de travail. Pour en savoir plus, consultez Autoscaling du pool de lecture.
Caractéristiques du pool de lecture
Les caractéristiques suivantes s'appliquent :
- Les pools de lecture ne disposent pas d'une API unique compatible avec Cloud SQL. Toute opération de création, de configuration ou d'affichage d'un pool de lecture est effectuée à l'aide de l'API d'instance Cloud SQL.
Par exemple, lorsque vous utilisez
gcloud CLIpour créer un pool de lecture, vous utilisez la commandegcloud sql instances create. De même, pour vérifier le nombre de nœuds de pool de lecture configurés sur un pool de lecture, utilisez la commandegcloud sql instances describe. - Un pool de lecture comportant au moins deux nœuds est couvert par le contrat de niveau de service (SLA).
- Les nœuds du pool de lecture résident toujours dans la même région, comme spécifié par l'utilisateur. Google Cloud alterne la résidence des nœuds du pool de lecture entre toutes les zones de la région.
- Une instance principale peut comporter un ou plusieurs pools de lecture.
- Les opérations suivantes entraînent un temps d'arrêt inférieur à la seconde :
- Scaling horizontal (ajout ou suppression de nœuds de pool de lecture)
- Scaling à la hausse ou à la baisse (modification du type de machine des nœuds du pool)
- Convertir une instance répliquée zonale avec accès en lecture existante en un pool avec accès en lecture.
- Un pool de lecture fait l'objet d'une maintenance avant son instance principale, comme les instances répliquées avec accès en lecture. Comme les instances répliquées avec accès en lecture, les pools de lecture sont soumis à des opérations de 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 dupliquée avec accès en lecture Cloud SQL.
- Lorsque vous utilisez
gcloudou la console Google Cloud 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.
Limites
Les limites suivantes s'appliquent :
- Les pools de lecture ne sont disponibles que pour les instances de l'édition 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 du pool de lecture selon que la base de données est opérationnelle ou non, mais quel que soit le délai de réplication sur ce nœud du 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 de lecture 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 actif et peut répondre aux requêtes, mais il n'y a aucune exigence quant à l'actualisation des données diffusées.
- Il n'est pas garanti qu'une seule session logique se connecte à plusieurs nœuds du 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 (GTID) est inférieure à celle du nœud de pool de lecture qui a traité une requête antérieure, ce qui peut donner l'impression que l'état de la base de données remonte dans le temps.
- Les types de mises à jour suivants ne sont pas acceptés :
- 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 ou mineure de la base de données.
- Démarrer ou arrêter des nœuds du pool de lecture.
- En plus des opérations qui ne sont pas 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 effectuer une réplication 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 un pool avec accès en lecture, vous devez d'abord la convertir en instance répliquée zonale avec accès en lecture.
- Lorsque vous créez ou effectuez un scaling d'un pool de lecture, vous devez attendre que les opérations précédentes de création de pool, de scaling horizontal ou de effectuer un scaling horizontal associées au pool de lecture soient terminées. Cette restriction s'applique à tout autre pool de lecture associé à la même instance principale. Si vous souhaitez effectuer un scaling de plusieurs pools de lecture associés à la même instance principale, vous devez attendre que les opérations de scaling associées au premier pool de lecture soient terminées avant de commencer à effectuer un scaling du pool de lecture suivant. Si vous émettez 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 avec accès en lecture dédiée (par exemple, en raison d'index secondaires présents sur une instance répliquée avec accès en lecture spécifique), créez une instance répliquée avec accès en lecture Cloud SQL et utilisez-la à la place.