Un Global Database Network (GDN) est un réseau composé de plusieurs clusters PolarDB déployés dans différentes régions. Cette rubrique explique comment consulter les points de terminaison de cluster d'un GDN et s'y connecter.
Répartition lecture/écriture et routage des requêtes
La configuration du proxy de base de données de chaque cluster détermine le routage des requêtes de lecture et d'écriture vers les clusters (primaires et secondaires) d'un GDN. Vous n'avez pas besoin de modifier le code de votre application. Il vous suffit de vous connecter à l'adresse du cluster concerné ; les requêtes de lecture et d'écriture sont alors automatiquement routées selon la logique suivante :
Le proxy de base de données transfère automatiquement vers le nœud primaire du cluster primaire les requêtes d'écriture, telles que les instructions
INSERT,UPDATEetDELETE, ainsi que les autres syntaxes de diffusion comme les instructionsSETet toutes les requêtes effectuées au sein de transactions.Par défaut, le proxy de base de données dirige les requêtes de lecture vers les nœuds en lecture seule du cluster secondaire local pour un accès local. Si la cohérence de session est activée, certaines requêtes de lecture peuvent également être routées vers le nœud primaire du cluster primaire afin de garantir la cohérence des données.
Lorsqu'une application se connecte au point de terminaison de cluster d'un cluster secondaire, les mêmes règles de routage s'appliquent. Une fois la connexion établie entre le client et le proxy de base de données, celui-ci crée et maintient des connexions backend depuis le cluster secondaire vers le nœud primaire du cluster primaire. Le caractère préétabli de ces connexions dépend de la configuration du proxy de base de données. Le lien entre un cluster secondaire et le nœud primaire est souvent une connexion inter-régions. Pour les applications utilisant des connexions éphémères, la création fréquente de ces connexions inter-régions peut dégrader les performances en raison des fluctuations du réseau. Dans ce scénario, nous vous recommandons d'activer l'option On-demand Connections pour le proxy de base de données du cluster secondaire. Pour plus d'informations, consultez Configurer un proxy de base de données.
De plus, le GDN fournit un nom de domaine global, qui permet non seulement un accès à partir de l'emplacement le plus proche, mais reste également inchangé après un basculement du cluster primaire.
Seuls les points de terminaison de cluster ou les points de terminaison personnalisés dont le Read-write mode est défini sur Read/Write (Automatic Read/Write Splitting) prennent en charge le service de répartition lecture/écriture du GDN.
L'Primary address et les points de terminaison personnalisés dont le Read-write mode est défini sur Read-Only ne prennent pas en charge le service de répartition lecture/écriture du GDN.
Lorsque vous configurez un point de terminaison de cluster personnalisé sur un cluster secondaire, définissez Primary Node Accepts Read Requests sur No et le Consistency Level sur Eventual Consistency (Weak). Ces paramètres réduisent l'impact potentiel du décalage de réplication entre les clusters primaires et secondaires sur votre activité.
Si votre activité ne peut pas tolérer le décalage de réplication d'un cluster secondaire, connectez-vous directement au point de terminaison de cluster du cluster primaire.
Afficher les points de terminaison de cluster
Connectez-vous à la console PolarDB. Dans le volet de navigation de gauche, cliquez sur Global Database Network (GDN).
Sur la page Global Database Network (GDN), repérez le GDN cible et cliquez sur son GDN ID/Name pour ouvrir la page des détails du GDN.
-
Dans la section Clusters, repérez le cluster secondaire cible. Dans la colonne Cluster Endpoint, cliquez sur View. La boîte de dialogue qui s'affiche présente les détails du point de terminaison de cluster.
RemarqueVous pouvez uniquement afficher les informations de point de terminaison du cluster par défaut, y compris les points de terminaison Private et Public.
Pour plus de détails sur les points de terminaison, cliquez sur Visit the Overview page of the cluster. Vous êtes redirigé vers la page des détails du cluster cible, où vous pouvez consulter davantage de points de terminaison dans la section Database Connections.
Se connecter à un cluster GDN
Les applications de chaque région peuvent se connecter directement au point de terminaison de cluster le plus proche pour accéder au GDN, qui effectue automatiquement la répartition lecture/écriture. Il existe plusieurs façons de se connecter à un cluster de base de données. Choisissez la méthode adaptée à vos besoins métier. Voici quelques exemples de connexion à un cluster de base de données :
Utiliser DMS pour se connecter au cluster
DMS est un service graphique de gestion des données proposé par Alibaba Cloud. Vous pouvez gérer votre cluster PolarDB directement dans DMS sans installer d'outils supplémentaires.
Accédez à la console PolarDB. Dans la liste Cluster List, cliquez sur l'ID du cluster cible pour accéder à la page des détails du cluster. Dans le coin supérieur droit de la page, cliquez sur Log on to Database.

Saisissez votre database account et votre database password pour le cluster PolarDB for MySQL, puis cliquez sur Log on.

Une fois connecté, repérez le cluster PolarDB for MySQL dans la liste Logged-in Instances du volet de navigation de gauche.

Utiliser un client pour se connecter au cluster
Vous pouvez utiliser n'importe quel client compatible MySQL pour vous connecter à un cluster PolarDB. L'exemple suivant utilise MySQL Workbench 8.0.29.
Téléchargez et installez MySQL Workbench.
Ouvrez MySQL Workbench et sélectionnez .
-
Saisissez les informations de connexion et cliquez sur OK.

Paramètre
Description
Exemple
Hostname
pc-2***.rwlb.rds.aliyuncs.com
Port
Le numéro de port du point de terminaison de base de données.
RemarqueLe port par défaut est 3306.
3306
Username
polardb_mysql_user
Password
Le mot de passe du compte de base de données.
Pass***233
Utiliser la ligne de commande pour se connecter au cluster
Si un client MySQL est installé sur votre serveur, exécutez la commande suivante pour vous connecter au cluster PolarDB for MySQL.
Syntaxe :
mysql -h<endpoint> -P<port> -u<database_username> -p<database_user_password>
Exemple :
mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233
Paramètre | Description | Exemple |
-h | pc-2***.rwlb.rds.aliyuncs.com | |
-P | Le numéro de port du point de terminaison de base de données. Remarque
| 3306 |
-u | polardb_mysql_user | |
-p | Le mot de passe du compte de base de données. Remarque Ce paramètre est obligatoire.
| Pass***233 |
Utiliser une application pour se connecter au cluster
La connexion à un cluster PolarDB for MySQL est identique à la connexion à n'importe quelle base de données MySQL. Remplacez le point de terminaison, le port, le compte et le mot de passe par les valeurs de votre cluster PolarDB. Exemples par langage :
Java
Utilisez le pilote JDBC MySQL dans un projet Maven pour vous connecter à un cluster PolarDB for MySQL.
-
Ajoutez la dépendance du pilote JDBC MySQL à votre fichier pom.xml :
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> -
Connectez-vous au cluster. Remplacez
<HOST>,<USER>,<PASSWORD>,<DATABASE>,<YOUR_TABLE_NAME>et<YOUR_TABLE_COLUMN_NAME>par vos valeurs réelles.import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseConnection { public DatabaseConnection() { } public static void main(String[] args) { // The endpoint, port, and name of the database to connect to. String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC"; // The database account. String user = "<USER>"; // The password of the database account. String password = "<PASSWORD>"; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); // The name of the data table to retrieve. ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`"); while(rs.next()) { // The name of the column in the data table to retrieve. System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>")); } rs.close(); stmt.close(); conn.close(); } catch (Exception var7) { var7.printStackTrace(); } } }
Python
Utilisez la bibliothèque PyMySQL avec Python 3 pour vous connecter à un cluster PolarDB for MySQL.
-
Installez la bibliothèque PyMySQL :
pip3 install PyMySQL -
Connectez-vous au cluster. Remplacez
<HOST>,<USER>,<PASSWORD>,<DATABASE>et<YOUR_TABLE_NAME>par vos valeurs réelles.import pymysql # Database connection parameters host = '<HOST>' # The endpoint of the PolarDB cluster port = 3306 # The default port is 3306 user = '<USER>' # The database account password = '<PASSWORD>' # The password of the database account database = '<DATABASE>' # The name of the database to connect to try: # Create a database connection connection = pymysql.connect( host=host, port=port, user=user, passwd=password, db=database ) # Get the cursor with connection.cursor() as cursor: # Execute an SQL query sql = "SELECT * FROM `<YOUR_TABLE_NAME>`" # The name of the data table to retrieve cursor.execute(sql) # Get the query results results = cursor.fetchall() for row in results: print(row) finally: # Close the database connection if 'connection' in locals() and connection.open: connection.close()
Go
Utilisez le package database/sql et le pilote go-sql-driver/mysql (Go 1.23.0) pour vous connecter à un cluster PolarDB for MySQL.
-
Installez le pilote
go-sql-driver/mysql:go get -u github.com/go-sql-driver/mysql -
Connectez-vous au cluster. Remplacez
<HOST>,<USER>,<PASSWORD>,<DATABASE>et<YOUR_TABLE_NAME>par vos valeurs réelles.package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // Database connection parameters dbHost := "<HOST>" // The endpoint of the PolarDB cluster dbPort := "3306" // The default port is 3306 dbUser := "<USER>" // The database account dbPass := "<PASSWORD>" // The password of the database account dbName := "<DATABASE>" // The name of the database to connect to // Build the Data Source Name (DSN) dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName) // Open a database connection db, err := sql.Open("mysql", dsn) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } defer db.Close() // Test the connection err = db.Ping() if err != nil { log.Fatalf("Failed to ping database: %v", err) } // Create a cursor var result string err = db.QueryRow("SELECT VERSION()").Scan(&result) if err != nil { log.Fatalf("Failed to execute query: %v", err) } // Print the database version fmt.Printf("Connected to database, version: %s\n", result) // Execute an SQL query rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // The name of the data table to retrieve if err != nil { log.Fatalf("Failed to execute query: %v", err) } defer rows.Close() }
Documentation connexe
Qu'est-ce que Global Database Network (GDN) : Découvrez l'architecture et les cas d'utilisation du GDN.
Créer un nom de domaine global : Apprenez à créer un point de terminaison unifié permettant un accès à partir de l'emplacement le plus proche et conservant le nom de domaine inchangé après un basculement du cluster primaire.
Référence API
|
API |
Description |
|
Interroge les informations relatives aux points de terminaison de cluster d'un cluster PolarDB. |
|
|
Modifie les attributs d'un point de terminaison de cluster PolarDB. Les attributs incluent le mode lecture/écriture, l'ajout automatique de nouveaux nœuds au point de terminaison, le niveau de cohérence, la division des transactions, l'acceptation des requêtes de lecture par le nœud primaire et le pool de connexions. |