Jaringan basis data global (GDN) terdiri dari beberapa kluster PolarDB yang ditempatkan di berbagai wilayah. Topik ini menjelaskan cara melihat titik akhir kluster GDN dan menghubungkannya.
Pemisahan baca/tulis dan perutean permintaan
Perutean permintaan baca dan tulis ke kluster (kluster utama dan kluster sekunder) dalam GDN ditentukan oleh konfigurasi database proxy masing-masing kluster. Anda tidak perlu memodifikasi kode aplikasi—cukup hubungkan ke alamat kluster yang bersangkutan, dan permintaan baca/tulis akan dirutekan secara otomatis berdasarkan logika berikut:
Database proxy secara otomatis meneruskan permintaan tulis, seperti pernyataan
INSERT,UPDATE, danDELETE, sintaks broadcast lainnya seperti pernyataanSET, serta semua permintaan dalam transaksi ke node utama kluster utama untuk diproses.Secara default, database proxy merutekan permintaan baca ke node read-only kluster sekunder lokal untuk akses lokal. Jika session consistency diaktifkan, beberapa permintaan baca juga dapat dirutekan ke node utama kluster utama untuk memastikan konsistensi data.
Saat sebuah aplikasi terhubung ke titik akhir kluster sekunder, aturan perutean yang sama tetap berlaku. Setelah klien membuat koneksi dengan database proxy, proxy tersebut membuat dan mempertahankan koneksi backend dari kluster sekunder ke node utama kluster utama. Apakah koneksi ini dibuat sebelumnya atau tidak bergantung pada konfigurasi database proxy. Tautan dari kluster sekunder ke node utama sering kali merupakan koneksi cross-region. Untuk aplikasi dengan koneksi singkat, pembuatan koneksi cross-region yang sering dapat menurunkan performa akibat fluktuasi jaringan. Dalam skenario ini, kami merekomendasikan agar Anda mengaktifkan On-demand Connections untuk database proxy kluster sekunder. Untuk informasi selengkapnya, lihat Konfigurasi database proxy.
Selain itu, GDN menyediakan nama domain global, yang tidak hanya memungkinkan akses terdekat tetapi juga tetap tidak berubah setelah terjadi switchover kluster utama.
-
Layanan pemisahan baca/tulis GDN hanya didukung untuk titik akhir kluster atau titik akhir kustom yang Read-write mode-nya diatur ke Read/Write (Automatic Read/Write Splitting).
-
Primary address dan titik akhir kustom yang Read-write mode-nya diatur ke Read-Only tidak mendukung layanan pemisahan baca/tulis GDN.
-
Untuk mengurangi potensi dampak bisnis akibat lag replikasi antara kluster utama dan kluster sekunder, kami merekomendasikan mengatur Primary Node Accepts Read Requests ke No dan Consistency Level ke Eventual Consistency (Weak) saat Anda mengonfigurasi titik akhir kluster kustom pada kluster sekunder.
-
Jika aplikasi Anda tidak dapat mentolerir lag replikasi dari kluster sekunder, kami merekomendasikan agar Anda langsung terhubung ke titik akhir kluster kluster utama.
Lihat titik akhir kluster
-
Login ke Konsol PolarDB. Di panel navigasi sebelah kiri, klik Global Database Network (GDN).
-
Di halaman Global Database Network (GDN), temukan GDN target dan klik GDN ID/Name-nya untuk membuka halaman detail GDN.
-
Di bagian Clusters, temukan kluster sekunder target dan klik Cluster Endpoint di kolom View untuk melihat detail titik akhir kluster.
Catatan-
Anda hanya dapat melihat informasi titik akhir kluster default, termasuk titik akhir Private dan Public.
-
Untuk informasi titik akhir yang lebih detail, klik Visit the Overview page of the cluster. Anda akan diarahkan ke halaman detail kluster target, tempat Anda dapat melihat lebih banyak titik akhir di bagian Database Connections.
-
Menghubungkan ke kluster GDN
Aplikasi di wilayah berbeda terhubung ke GDN menggunakan titik akhir kluster terdekat, sehingga memungkinkan pemisahan baca/tulis otomatis. Topik ini memberikan contoh beberapa metode koneksi umum.
Gunakan DMS untuk menghubungkan ke kluster
DMS adalah layanan manajemen data grafis dari Alibaba Cloud. Anda dapat mengelola kluster PolarDB Anda langsung di DMS tanpa menginstal alat tambahan.
Buka Konsol PolarDB. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di pojok kanan atas halaman, klik Log on to Database.

Masukkan database account dan database password Anda untuk kluster PolarDB for MySQL, lalu klik Log on.

Setelah login, temukan kluster PolarDB for MySQL di daftar Logged-in Instances di panel navigasi kiri.

Gunakan client untuk menghubungkan ke kluster
Anda dapat menggunakan client apa pun yang kompatibel dengan MySQL untuk menghubungkan ke kluster PolarDB. Contoh berikut menggunakan MySQL Workbench 8.0.29.
Unduh dan instal MySQL Workbench.
Buka MySQL Workbench dan pilih .
Masukkan informasi koneksi dan klik OK.

Parameter
Deskripsi
Contoh
Hostname
pc-2***.rwlb.rds.aliyuncs.com
Port
Nomor port titik akhir database.
CatatanPort default adalah 3306.
3306
Username
polardb_mysql_user
Password
Password akun database.
Pass***233
Gunakan command line untuk menghubungkan ke kluster
Jika client MySQL telah diinstal di server Anda, jalankan perintah berikut untuk menghubungkan ke kluster PolarDB for MySQL.
Sintaksis:
mysql -h<endpoint> -P<port> -u<database_username> -p<database_user_password>Contoh:
mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233Parameter | Deskripsi | Contoh |
-h | pc-2***.rwlb.rds.aliyuncs.com | |
-P | Nomor port titik akhir database. Catatan
| 3306 |
-u | polardb_mysql_user | |
-p | Password akun database. Catatan Parameter ini wajib.
| Pass***233 |
Gunakan aplikasi untuk menghubungkan ke kluster
Menghubungkan ke kluster PolarDB for MySQL sama seperti menghubungkan ke database MySQL mana pun. Ganti endpoint, port, akun, dan password dengan nilai kluster PolarDB Anda. Contoh berdasarkan bahasa:
Java
Gunakan driver MySQL JDBC dalam proyek Maven untuk menghubungkan ke kluster PolarDB for MySQL.
Tambahkan dependensi driver MySQL JDBC ke file pom.xml Anda:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency>Hubungkan ke kluster. Ganti
<HOST>,<USER>,<PASSWORD>,<DATABASE>,<YOUR_TABLE_NAME>, dan<YOUR_TABLE_COLUMN_NAME>dengan nilai aktual Anda.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) { // Titik akhir, port, dan nama database yang akan dihubungi. String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC"; // Akun database. String user = "<USER>"; // Password akun database. String password = "<PASSWORD>"; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); // Nama tabel data yang akan diambil. ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`"); while(rs.next()) { // Nama kolom dalam tabel data yang akan diambil. System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>")); } rs.close(); stmt.close(); conn.close(); } catch (Exception var7) { var7.printStackTrace(); } } }
Python
Gunakan library PyMySQL dengan Python 3 untuk menghubungkan ke kluster PolarDB for MySQL.
Instal library PyMySQL:
pip3 install PyMySQLHubungkan ke kluster. Ganti
<HOST>,<USER>,<PASSWORD>,<DATABASE>, dan<YOUR_TABLE_NAME>dengan nilai aktual Anda.import pymysql # Parameter koneksi database host = '<HOST>' # Titik akhir kluster PolarDB port = 3306 # Port default adalah 3306 user = '<USER>' # Akun database password = '<PASSWORD>' # Password akun database database = '<DATABASE>' # Nama database yang akan dihubungi try: # Buat koneksi database connection = pymysql.connect( host=host, port=port, user=user, passwd=password, db=database ) # Dapatkan cursor with connection.cursor() as cursor: # Jalankan kueri SQL sql = "SELECT * FROM `<YOUR_TABLE_NAME>`" # Nama tabel data yang akan diambil cursor.execute(sql) # Dapatkan hasil kueri results = cursor.fetchall() for row in results: print(row) finally: # Tutup koneksi database if 'connection' in locals() and connection.open: connection.close()
Go
Gunakan paket database/sql dan driver go-sql-driver/mysql (Go 1.23.0) untuk menghubungkan ke kluster PolarDB for MySQL.
Instal driver
go-sql-driver/mysql:go get -u github.com/go-sql-driver/mysqlHubungkan ke kluster. Ganti
<HOST>,<USER>,<PASSWORD>,<DATABASE>, dan<YOUR_TABLE_NAME>dengan nilai aktual Anda.package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // Parameter koneksi database dbHost := "<HOST>" // Titik akhir kluster PolarDB dbPort := "3306" // Port default adalah 3306 dbUser := "<USER>" // Akun database dbPass := "<PASSWORD>" // Password akun database dbName := "<DATABASE>" // Nama database yang akan dihubungi // Bangun Data Source Name (DSN) dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName) // Buka koneksi database db, err := sql.Open("mysql", dsn) if err != nil { log.Fatalf("Gagal menghubungkan ke database: %v", err) } defer db.Close() // Uji koneksi err = db.Ping() if err != nil { log.Fatalf("Gagal ping database: %v", err) } // Buat cursor var result string err = db.QueryRow("SELECT VERSION()").Scan(&result) if err != nil { log.Fatalf("Gagal menjalankan kueri: %v", err) } // Cetak versi database fmt.Printf("Terhubung ke database, versi: %s\n", result) // Jalankan kueri SQL rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // Nama tabel data yang akan diambil if err != nil { log.Fatalf("Gagal menjalankan kueri: %v", err) } defer rows.Close() }
Dokumentasi terkait
-
Global Database Network (GDN): Pelajari arsitektur dan kasus penggunaan GDN.
-
Buat nama domain global: Pelajari cara membuat nama domain global untuk akses kluster terdekat dan ketahanan terhadap switchover.
Referensi API
|
API |
Deskripsi |
|
Menanyakan informasi tentang titik akhir kluster kluster PolarDB. |
|
|
Memodifikasi atribut titik akhir kluster PolarDB. Atribut tersebut mencakup mode baca/tulis, penambahan node baru otomatis, tingkat konsistensi, pemisahan transaksi, Primary Node Accepts Read Requests, dan kolam koneksi. |