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é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

WBOY
WBOYoriginal
2023-09-08 16:36:33948parcourir

Réaliser la redondance et lexpansion des données : cas dapplication 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

  1. Configuration de la base de données principale
    Tout d'abord, nous devons construire la base de données principale MySQL sur un serveur. Supposons que le système d'exploitation que nous utilisons est Linux et que la version de la base de données est MySQL 5.7. Voici quelques paramètres de configuration de la bibliothèque principale couramment utilisés :

[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=row

  1. Configuration de la bibliothèque esclave
    Créez une bibliothèque esclave MySQL sur d'autres serveurs. Il est à noter que l'ID du serveur de la base de données esclave doit être unique et différent de celui de la base de données maître. Voici un exemple de configuration d'une bibliothèque esclave :

[mysqld]
server-id=2
relay_log=mysql-relay-bin
read_only=1

Construction de l'environnement de cluster

  1. Paramètres de la bibliothèque principale
    . Dans le master Sur la bibliothèque, nous devons créer un utilisateur pour la copie et lui donner les autorisations correspondantes. Supposons que le nom d'utilisateur que nous avons créé est réplication et que le mot de passe est 123456. La commande SQL correspondante est la suivante :

CREATE USER 'replication'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON . TO 'replication' @'%';

  1. Paramètres de la bibliothèque esclave
    Sur la bibliothèque esclave, nous devons la configurer pour se connecter à la bibliothèque principale pour la réplication des données. Supposons que l'adresse IP de la base de données principale est 192.168.1.100, le nom d'utilisateur est réplication, le mot de passe est 123456 et l'ID de la base de données esclave est 2. La commande SQL correspondante est la suivante :

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;

  1. Démarrer la réplication
    Après la bibliothèque esclave est définie up, nous devons démarrer la fonction de réplication. Exécutez d'abord la commande suivante pour démarrer la réplication :

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.

  1. Créer une table de test
    Créez une table de test sur la base de données principale pour stocker les informations utilisateur.

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;

  1. 插入测试数据
    在主库上插入一些测试数据。

INSERT INTO user (name, age id INT(11) NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,
    age INT(3) NOT NULL,
  1. PRIMARY KEY (id)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8;

Insérer les données de test
Insérer quelques tests sur la bibliothèque principale données.

INSÉRER DANS 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.

import java.sql.ResultSet;🎜import java.sql.Statement;🎜🎜public class ReadRequestDemo {🎜
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn