Maison > Article > base de données > Réaliser la redondance et l'expansion des données : cas d'application de la technologie de réplication maître-esclave MySQL dans les environnements de cluster
Réalisation de la redondance et de l'expansion des données : cas d'application de la technologie de réplication maître-esclave MySQL dans un environnement de cluster
Introduction :
Avec le développement d'Internet, la quantité croissante de données et le nombre croissant d'utilisateurs, les standards traditionnels Les bases de données à elles seules ne sont plus en mesure de répondre aux besoins de haute concurrence et de haute disponibilité. Dans ce contexte, les bases de données distribuées sont devenues l’une des solutions les plus appréciées. En tant que l'une des bases de données relationnelles les plus couramment utilisées, la technologie de réplication maître-esclave de MySQL a également reçu une grande attention dans les bases de données distribuées. Cet article présentera les cas d'application de la technologie de réplication maître-esclave MySQL pour obtenir la redondance et l'expansion des données dans un environnement de cluster, et fournira des exemples de code correspondants.
1. Introduction à la technologie de réplication maître-esclave MySQL
La technologie de réplication maître-esclave MySQL est une méthode de réplication de données basée sur des journaux binaires. Il enregistre les opérations de modification sur la base de données maître dans le journal binaire en temps réel et transmet le journal binaire à la base de données esclave pour relecture, garantissant ainsi la cohérence des données entre les bases de données maître et esclave. Dans un environnement de cluster, nous pouvons réaliser la redondance et l'expansion des données en déployant plusieurs bibliothèques esclaves sur différents serveurs.
2. Déploiement de l'environnement de cluster
[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=row
[mysqld]
server-id=2
relay_log=mysql-relay-bin
read_only=1
Construction de l'environnement de cluster
CREATE USER 'replication'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON . TO 'replication' @'%';
CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='replication',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123456;
START SLAVE ;
Ensuite, vérifiez l'état de la réplication via la commande suivante :
SHOW SLAVE STATUSG;
Si "Slave_IO_Running" et "Slave_SQL_Running" dans le contenu affiché sont tous deux "Oui", cela signifie que la réplication s'exécute normalement.
4. Cas d'application : redondance et expansion des données
Dans un environnement de cluster, nous pouvons distribuer des requêtes de lecture et d'écriture à plusieurs bibliothèques esclaves pour obtenir la redondance et l'expansion des données. Ce qui suit est un cas d’application simple pour démontrer l’effet de la redondance et de l’expansion des données.
CREATE TABLE user
(user
(
id
INT(11) NOT NULL AUTO_INCREMENT,
name
VARCHAR(20) NOT NULL,
age
INT(3) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO user
(name
, age
id
INT(11) NOT NULL AUTO_INCREMENT,
name
VARCHAR(20) NOT NULL,age
INT(3) NOT NULL,id
)Insérer les données de test
Insérer quelques tests sur la bibliothèque principale données.
utilisateur
(nom
, âge
) VALEURS ('Alice', 25), ('Bob', 30), ( 'Chris', 35 ans);
Requête de données
Dans l'application, nous pouvons envoyer des requêtes de lecture à n'importe quelle bibliothèque esclave. Supposons que notre serveur d'applications dispose de deux bibliothèques esclaves dont les adresses IP sont 192.168.1.101 et 192.168.1.102. Nous pouvons envoyer des requêtes de lecture via l'exemple de code suivant :import java.sql.Connection ;
import java.sql.
public static void main(String[] args) { String url = "jdbc:mysql://192.168.1.101:3306/test"; String username = "username"; String password = "password"; try { Connection conn = DriverManager.getConnection(url, username, password); String sql = "SELECT * FROM user"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id=" + id + ", name=" + name + ", age=" + age); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } }🎜}🎜🎜Grâce à l'exemple de code ci-dessus, nous pouvons voir que la bibliothèque esclave renvoie les données de test insérées sur la bibliothèque principale . Puisque nous avons configuré plusieurs bibliothèques esclaves, les demandes de lecture peuvent être distribuées à différentes bibliothèques esclaves, réalisant ainsi la redondance et l'expansion des données. 🎜🎜Conclusion : 🎜Dans le cas d'application de la technologie de réplication maître-esclave MySQL dans un environnement de cluster, nous obtenons la redondance et l'expansion des données en créant une base de données maître et plusieurs bases de données esclaves. Grâce à une configuration et un réglage raisonnables, les performances de concurrence et l'évolutivité du système peuvent être améliorées. Dans le même temps, la technologie de réplication maître-esclave peut également fournir une haute disponibilité des données et des capacités de reprise après sinistre. Pour les scénarios d'application qui doivent gérer un grand nombre d'opérations de lecture simultanées, la technologie de réplication maître-esclave MySQL est une solution à considérer. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!