Si votre instance ApsaraDB RDS for PostgreSQL sature en raison d'un excès de connexions ou d'un trafic à forte dominante lecture, un proxy de base de données active la répartition lecture/écriture et le fractionnement des transactions pour décharger l'instance principale, sans modifier le code de votre application.
Quand utiliser un proxy de base de données
Un proxy de base de données s'avère particulièrement utile dans les situations suivantes :
| Indicateur | Problème | Comment le proxy aide |
|---|---|---|
| Vous rencontrez des erreurs « too many connections » | L'instance principale atteint sa limite de connexions | Le proxy gère les connexions de manière centralisée, ce qui réduit le nombre de connexions directes vers l'instance |
| Des pics de CPU ou de latence des requêtes surviennent aux heures de pointe | Un grand nombre de requêtes de lecture transactionnelles surchargent l'instance principale | Le fractionnement des transactions achemine les lectures précédant une écriture vers les instances en lecture seule |
| Le débit de lecture dépasse la capacité d'une seule instance | Une instance principale unique ne peut pas traiter tout le trafic de lecture | La répartition lecture/écriture dirige automatiquement les requêtes de lecture vers les instances en lecture seule |
| Deux applications ont des modèles d'accès différents | Une application en lecture seule et une application en lecture/écriture partagent le même système de base de données | Associez-les à des endpoints de proxy distincts avec des attributs différents pour les isoler physiquement |
Exemple : Un système de base de données dispose d'une instance principale et de quatre instances en lecture seule qui desservent deux applications. L'application A émet uniquement des requêtes de lecture ; l'application B émet à la fois des lectures et des écritures. Configurez deux endpoints de proxy : associez deux instances en lecture seule à un endpoint doté de l'attribut Read-only pour l'application A, et associez l'instance principale ainsi que les deux autres instances en lecture seule à un endpoint doté de l'attribut Read/Write pour l'application B. Les deux applications sont ainsi physiquement isolées au sein du même système de base de données.
Fonctionnement
Un proxy de base de données est une couche de proxy réseau située entre votre application et ApsaraDB RDS for PostgreSQL. Toutes les requêtes de l'application transitent par ce proxy avant d'atteindre la base de données. Connectez-vous à votre instance RDS via un endpoint de proxy de base de données plutôt que directement à l'instance principale.
Le proxy inspecte chaque requête et l'achemine selon votre configuration :
Les requêtes d'écriture vont vers l'instance principale.
Les requêtes de lecture vont vers les instances en lecture seule (lorsque la répartition lecture/écriture est activée).
Les lectures intervenant avant la première écriture dans une transaction vont vers les instances en lecture seule (fractionnement des transactions, toujours activé).
Concepts clés
Endpoint de proxy de base de données
Les endpoints de proxy de base de données sont au cœur du fonctionnement des proxys. Chaque endpoint possède ses propres paramètres de connexion, son préfixe et son port. La connexion via un endpoint de proxy vous donne accès à la répartition lecture/écriture, au fractionnement des transactions et à une gestion simplifiée des connexions.
Chaque instance RDS prend en charge jusqu'à sept endpoints de proxy de base de données. Pour chaque endpoint, vous pouvez demander un endpoint interne et un endpoint public. Configurez chaque endpoint indépendamment pour répondre à différentes exigences métier.
Pour plus de détails, consultez Configuration des paramètres de connexion d'un endpoint de proxy de base de données et Utilisation d'un endpoint de proxy de base de données pour se connecter à une instance ApsaraDB RDS for PostgreSQL.
Répartition lecture/écriture
Les endpoints de proxy de base de données acheminent automatiquement les requêtes d'écriture vers l'instance principale et les requêtes de lecture vers les instances en lecture seule. Cela répartit la charge de lecture et empêche l'instance principale d'être submergée par un trafic à forte dominante lecture.
Pour plus de détails, consultez Qu'est-ce que la répartition lecture/écriture ?
Fractionnement des transactions
Le fractionnement des transactions s'active automatiquement lorsque vous activez un proxy de base de données et ne peut pas être désactivé. Il dirige les requêtes de lecture qui apparaissent avant la première opération d'écriture dans une transaction vers les instances en lecture seule, réduisant ainsi la charge sur l'instance principale.
Limitations :
Les transactions explicites démarrées avec
BEGINouSTART TRANSACTIONne peuvent pas être fractionnées.La cohérence globale n'est pas garantie. Évaluez si vos charges de travail peuvent tolérer cette limitation avant d'activer le proxy de base de données.
Le fractionnement des transactions ne peut pas être désactivé une fois le proxy activé.
Pour plus de détails, consultez Fractionnement des transactions.
Types de proxy
ApsaraDB RDS for PostgreSQL propose deux types de proxy :
| Élément | General-purpose | Dedicated |
|---|---|---|
| Facturation | Gratuit | Paiement à l'utilisation. Consultez Règles de facturation pour les proxys de base de données. |
| Ressources CPU | Partagées | Allouées exclusivement |
| Spécifications maximales | 16 cœurs (8 proxys de base de données) | 32 cœurs (16 proxys de base de données) |
| Édition RDS | RDS High-availability Edition | |
| Architecture | Redondance haute disponibilité | |
| Répartition lecture/écriture | Prise en charge | |
| Fractionnement des transactions | Prise en charge | |
| Endpoints de proxy | 1 à 7 ; 1 interne + 1 public par endpoint | |
Choisissez General-purpose si le coût est votre principale préoccupation et si votre charge de travail peut tolérer des ressources CPU partagées.
Choisissez Dedicated si vous avez besoin de performances stables et prévisibles et si votre charge de travail est sensible à la contention des ressources.
Les spécifications du proxy suivent cette formule : Specification = Unit specification × Number of database proxies. La spécification unitaire est fixée à 2 cœurs CPU. Par exemple, 3 proxys de base de données vous offrent 6 cœurs CPU (2 × 3 = 6).
Limitations et facturation
Pour la liste complète des contraintes d'utilisation, consultez Notes d'utilisation des proxys de base de données.
Pour les détails tarifaires, consultez Règles de facturation pour les proxys de base de données.
Étapes suivantes
Utilisation de la fonctionnalité de proxy de base de données