Avant d'utiliser le proxy de base de données pour ApsaraDB RDS for MySQL, consultez ces notes afin d'éviter tout comportement inattendu dans votre application.
Facturation
Les proxies de l'édition General-purpose sont gratuits. Les proxies dédiés, les instances en lecture seule et les instances principales sont facturés séparément.
Si vous libérez l'instance principale, le proxy de base de données est automatiquement libéré et aucun frais ne s'applique au proxy dédié après sa libération.
Modèle de connexion
Le proxy de base de données utilise un modèle de connexion 1:N : lorsque votre application se connecte au proxy, celui-ci établit simultanément des connexions vers l'instance principale et toutes les instances en lecture seule configurées.
Le proxy lui-même ne limite pas le nombre maximal de connexions ; cette limite dépend des spécifications des nœuds de base de données backend. Si la mise en pool des connexions au niveau des transactions est désactivée, chaque connexion client crée une connexion correspondante sur l'instance principale et sur chaque instance en lecture seule. Veillez à ce que les spécifications de connexion maximale des instances principales et en lecture seule soient aussi cohérentes que possible. Dans le cas contraire, la limite de connexion effective pour votre application correspond à celle de l'instance ayant la limite la plus basse.
La fonctionnalité de pool de connexions est activée par défaut, ce qui peut entraîner l'affichage de connexions utilisateur inactives par show processlist. Lorsqu'une connexion est établie via un endpoint de proxy, show processlist fusionne et renvoie les résultats de tous les nœuds.
Conditions verrouillant le routage vers l'instance principale
Certaines conditions amènent le proxy à router toutes les requêtes suivantes sur la connexion actuelle vers l'instance principale, contournant ainsi la répartition lecture/écriture. Pour reprendre la répartition lecture/écriture après l'une des conditions suivantes, fermez la connexion actuelle et établissez-en une nouvelle.
| Condition | Description | Solution |
|---|---|---|
| Répartition des transactions désactivée | Toutes les requêtes de transaction sont envoyées à l'instance principale. | Activez la répartition des transactions dans les paramètres du proxy. |
| Exécution de plusieurs instructions | Une requête multi-statement est exécutée. | Réécrivez les requêtes pour utiliser des instructions uniques lorsque cela est possible. |
| Appel de procédure stockée | Une procédure stockée est appelée. | Reconnectez-vous après la fin de la procédure stockée. |
Répartition lecture/écriture
La cohérence en lecture pour les lectures non transactionnelles n'est pas garantie lors de l'utilisation d'un endpoint de proxy pour la répartition lecture/écriture. Pour garantir la cohérence en lecture, encapsulez les requêtes de lecture dans une transaction ou utilisez la syntaxe d'indice.
Lorsque vous utilisez des instructions d'indice avec la ligne de commande MySQL, incluez l'option -c. Sans celle-ci, l'outil de ligne de commande MySQL filtre silencieusement les indices. Pour plus d'informations, consultez Utiliser la syntaxe d'indice.
Opérations sur les instances en lecture seule
Ajout ou redémarrage d'une instance en lecture seule : Après avoir ajouté une instance en lecture seule à un endpoint de proxy ou redémarré une instance en lecture seule connectée, les requêtes provenant des nouvelles et des connexions existantes sont routées vers l'instance nouvelle ou redémarrée.
Suppression d'une instance en lecture seule : Les instructions en cours d'exécution sur cette instance échouent immédiatement. Pour mettre hors ligne une instance en lecture seule sans perturber votre application, mettez à jour la version mineure du moteur du proxy vers la version 2.8.41 ou ultérieure et définissez l'attribut lecture/écriture du proxy sur Read/Write avant de supprimer l'instance. Pour les instructions de mise à niveau, consultez Mettre à niveau la version mineure du moteur d'un proxy de base de données. Pour configurer les poids, consultez Configurer les attributs lecture/écriture et les poids de lecture.
Basculement d'instance
Si la fonctionnalité de connexions persistantes n'est pas activée, la modification de la configuration de l'instance principale ou d'une instance en lecture seule peut déclencher un basculement d'instance. Pour plus d'informations sur les effets d'un basculement, consultez Effets d'un basculement d'instance.
Si l'instance principale est verrouillée, les instances de proxy de version 2.9.5 ou ultérieure ne sont pas libérées ; elles continuent de traiter les requêtes de lecture mais ne peuvent pas traiter les requêtes d'écriture.
Limitations
| Zone | Limitation |
|---|---|
| Protocole | Les endpoints de proxy ne prennent pas en charge le protocole de compression. |
| Parité des paramètres | Pour les instances de l'édition High-availability, max_prepared_stmt_count doit avoir la même valeur sur l'instance principale et toutes les instances en lecture seule. |
| VPC et vSwitch | Le proxy ne prend pas en charge le changement de Virtual Private Clouds (VPC) ou de vSwitches. La modification du VPC de l'instance principale ne modifie pas le VPC du proxy. Le proxy peut toujours communiquer avec l'instance principale, mais l'endpoint du proxy devient inaccessible via le VPC modifié. |
| Format CIDR | Lors de l'utilisation d'un compte privilégié pour configurer la plage d'hôtes d'un compte, le proxy prend en charge les blocs CIDR au format 10.1.2.%. La configuration du bloc CIDR du proxy sous la forme 10.1.2.0/24 n'est pas prise en charge. |
| Liste blanche IP | Le proxy partage la liste blanche IP de l'instance principale. La mise à jour de la liste blanche IP de l'instance principale met automatiquement à jour la liste blanche IP du proxy. |
Journalisation binaire via le proxy
Dans les réseaux à forte latence, l'abonnement à la journalisation binaire (Binlog) via un endpoint de proxy peut faire du débit réseau de Binlog Dump un goulot d'étranglement de performance, entraînant un délai de réplication dans les systèmes en aval. Récupérez les données Binlog en configurant une connexion directe au nœud de base de données dans votre application ou service.
Fonctionnalité d'accès le plus proche
La migration de zone peut invalider la fonctionnalité d'accès le plus proche pour certaines zones. Après la migration, la nouvelle zone est accessible par défaut et la fonctionnalité d'accès le plus proche pour la zone d'origine devient invalide. Si vous configurez la zone cible d'un endpoint de proxy sur une zone différente de la zone par défaut, la fonctionnalité d'accès le plus proche pour cette zone devient également invalide.
Le tableau suivant présente des exemples de scénarios.
| Scénario | Zone d'instance de proxy actuelle | Endpoint de proxy | Accès le plus proche | Zone d'instance de proxy cible | Zone d'endpoint de proxy par défaut | Zone d'endpoint de proxy cible | Accès le plus proche après migration |
|---|---|---|---|---|---|---|---|
Scénario 1 : Migration de Zone A + Zone B vers Zone A + Zone C |
Zone A | Endpoint de proxy a | Zone A | Zone A | Zone A | Zone A | Zone A |
| Zone C | Invalide | ||||||
| Zone B | Endpoint de proxy b | Zone B | Zone C | Zone C | Zone C | Zone C | |
| Zone D | Invalide | ||||||
Scénario 2 : Migration de Zone A + Zone B vers Zone C + Zone D |
Zone A | Endpoint de proxy a | Zone A | Zone C | Zone C | Zone C | Zone C |
| Zone E | Invalide | ||||||
| Zone B | Endpoint de proxy b | Zone B | Zone D | Zone D | Zone D | Zone D | |
| Zone E | Invalide |
La fonctionnalité d'accès le plus proche est prise en charge uniquement pour le mode de déploiement 1 des proxies dédiés. Si cette fonctionnalité est activée et que vous souhaitez passer à un proxy general-purpose ou à un autre mode de déploiement, désactivez d'abord la fonctionnalité d'accès le plus proche. Pour les instructions, consultez Configurer l'accès le plus proche. Pour plus d'informations sur les architectures de déploiement des proxies, consultez Architecture de déploiement du proxy.