


Création d'un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge
Création d'un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge
Ces dernières années, avec le développement rapide d'Internet, la base de données est devenue l'un des principaux moteurs de stockage et de traitement des données de la plupart des applications Web. Dans ce scénario, la haute disponibilité et l'équilibrage de charge sont devenus des considérations importantes dans la conception de l'architecture de base de données. En tant que l'une des bases de données relationnelles open source les plus populaires, la solution de déploiement de cluster de MySQL a attiré beaucoup d'attention.
Cet article explique comment implémenter un cluster de bases de données hautement disponible via la réplication maître-esclave MySQL et l'équilibrage de charge. Nous présenterons d'abord le principe et la configuration de la réplication maître-esclave MySQL, puis discuterons de la manière d'utiliser un équilibreur de charge pour équilibrer le trafic d'accès à la base de données.
1. Le principe et la configuration de la réplication maître-esclave MySQL
La réplication maître-esclave MySQL est une technologie de réplication de base de données basée sur la transmission de journaux. Elle enregistre les opérations de modification sur la base de données maître dans des journaux binaires, puis lit ces journaux. modifier la base de données esclave pour obtenir la synchronisation des données entre la base de données maître et la base de données esclave.
La configuration de la réplication maître-esclave MySQL nécessite les étapes suivantes :
- Configurer la base de données maître
Ajouter la configuration suivante dans le fichier de configuration my.cnf de la base de données maître :
[mysqld] server-id=1 log_bin=mysql-bin binlog_format=ROW
- Créer un compte de réplication et autoriser
Connexion Accédez à la base de données maître, créez un compte de réplication et accordez les autorisations de réplication :
CREATE USER 'repl'@'slaveip' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'slaveip'; FLUSH PRIVILEGES;
Remplacez slaveip
par l'adresse IP de la base de données esclave et mot de passe
par le mot de passe du compte de réplication. slaveip
替换为从数据库的IP地址,password
替换为复制账号的密码。
- 启动主数据库的二进制日志
登录到主数据库的mysql命令行中,执行以下命令启动二进制日志:
mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS;
记录下File
和Position
的值,后续在配置从数据库时会用到。
- 配置从数据库
在从数据库的配置文件my.cnf中增加以下配置:
[mysqld] server-id=2
然后重启从数据库。
- 启动从数据库复制
在从数据库的mysql命令行中执行以下命令启动复制:
mysql> CHANGE MASTER TO MASTER_HOST='masterip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='filename', MASTER_LOG_POS=position; mysql> START SLAVE;
将masterip
替换为主数据库的IP地址,password
替换为复制账号的密码,filename
和position
替换为上一步中记录的值。
配置完成后,从数据库将开始与主数据库进行同步。
二、负载均衡器的选择和配置
在高可用的数据库集群中,负载均衡器发挥着至关重要的作用。它可以在多个从数据库之间均衡分发读操作的请求,从而提高系统的整体性能和可用性。
常见的MySQL负载均衡器有HAProxy、MaxScale和MySQL Router等。以HAProxy为例,下面是一个示例的配置文件:
global maxconn 4096 defaults mode tcp timeout connect 5000ms timeout client 50000ms timeout server 50000ms listen mysql-cluster bind 0.0.0.0:3306 mode tcp balance roundrobin option mysql-check user haproxy_check server mysql-1 masterip:3306 check server mysql-2 slaveip:3306 check
将masterip
和slaveip
替换为主从数据库的IP地址。
配置完成后,启动HAProxy服务,即可使用HAProxy进行数据库访问的负载均衡。
三、代码示例
以下是一个简单的PHP代码示例,用于演示如何通过负载均衡器连接到MySQL数据库集群:
<?php $host = 'load-balancer-ip'; $user = 'username'; $pass = 'password'; $db = 'database'; $conn = new mysqli($host, $user, $pass, $db); if($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM users"; $result = $conn->query($sql); if($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "ID: " . $row["id"] . " - Name: " . $row["name"] . "<br>"; } } else { echo "0 results"; } $conn->close(); ?>
将load-balancer-ip
替换为负载均衡器的IP地址,username
、password
和database
- Démarrez le journal binaire de la base de données principale
Connectez-vous à la ligne de commande mysql de la base de données principale et exécutez la commande suivante pour démarrer le journal binaire :
rrreeeEnregistrez le Fichier
et la valeur de Position
seront utilisées ultérieurement lors de la configuration de la base de données esclave.
- 🎜Configurer la base de données esclave🎜🎜🎜Ajoutez la configuration suivante dans le fichier de configuration my.cnf de la base de données esclave : 🎜rrreee🎜Puis redémarrez la base de données esclave. 🎜
- 🎜Démarrer la réplication depuis la base de données🎜🎜🎜Exécutez la commande suivante dans la ligne de commande mysql de la base de données esclave pour démarrer la réplication :🎜rrreee🎜Remplacez
masterip
par l'adresse IP adresse de la base de données master, remplacez password
par le mot de passe du compte copié, et remplacez filename
et position
par les valeurs enregistrées dans le étape précédente. 🎜🎜Une fois la configuration terminée, la base de données esclave commencera à se synchroniser avec la base de données maître. 🎜🎜2. Sélection et configuration de l'équilibreur de charge🎜🎜 Dans un cluster de bases de données à haute disponibilité, l'équilibreur de charge joue un rôle essentiel. Il peut répartir uniformément les demandes d'opérations de lecture entre plusieurs bases de données esclaves, améliorant ainsi les performances globales et la disponibilité du système. 🎜🎜Les équilibreurs de charge MySQL courants incluent HAProxy, MaxScale et MySQL Router. En prenant HAProxy comme exemple, voici un exemple de fichier de configuration : 🎜rrreee🎜Remplacez masterip
et slaveip
par les adresses IP des bases de données maître et esclave. 🎜🎜Une fois la configuration terminée, démarrez le service HAProxy et vous pourrez utiliser HAProxy pour équilibrer la charge de l'accès à la base de données. 🎜🎜3. Exemple de code🎜🎜Ce qui suit est un exemple de code PHP simple pour montrer comment se connecter à un cluster de base de données MySQL via un équilibreur de charge : 🎜rrreee🎜Remplacez load-balancer-ip
par load The L'adresse IP de l'équilibreur, le nom d'utilisateur
, le mot de passe
et la base de données
sont remplacés par les informations de connexion à la base de données correctes. 🎜🎜Avec la configuration et l'exemple de code ci-dessus, nous pouvons implémenter un cluster MySQL hautement disponible et réaliser un équilibrage de charge de l'accès à la base de données via l'équilibreur de charge. Une telle architecture peut non seulement améliorer la disponibilité et les performances du système, mais également mieux faire face à diverses pannes et scénarios de concurrence élevée. 🎜🎜Résumé : 🎜🎜Cet article explique comment implémenter un cluster de bases de données hautement disponible via la réplication maître-esclave MySQL et l'équilibrage de charge. Grâce à la réplication maître-esclave, la synchronisation des données entre la base de données maître et la base de données esclave peut être réalisée grâce à l'équilibreur de charge, les demandes d'accès à la base de données peuvent être réparties uniformément. Dans le même temps, nous fournissons également des exemples de configuration et de code correspondants pour permettre aux lecteurs de démarrer rapidement. J'espère que cet article pourra fournir des références et aider tout le monde à créer un cluster MySQL hautement disponible. 🎜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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans le domaine des ordinateurs modernes, le protocole TCP/IP constitue la base de la communication réseau. En tant que système d'exploitation open source, Linux est devenu le système d'exploitation préféré utilisé par de nombreuses entreprises et organisations. Cependant, à mesure que les applications et services réseau deviennent des composants de plus en plus critiques pour les entreprises, les administrateurs doivent souvent optimiser les performances du réseau pour garantir un transfert de données rapide et fiable. Cet article explique comment améliorer la vitesse de transmission réseau des systèmes Linux en optimisant les performances TCP/IP et les performances réseau des systèmes Linux. Cet article discutera d'un

Introduction au mécanisme de basculement et de récupération dans la solution d'équilibrage de charge Nginx : Pour les sites Web à forte charge, l'utilisation de l'équilibrage de charge est l'un des moyens importants pour garantir la haute disponibilité du site Web et améliorer les performances. En tant que puissant serveur Web open source, la fonction d'équilibrage de charge de Nginx a été largement utilisée. En matière d'équilibrage de charge, la manière de mettre en œuvre des mécanismes de basculement et de récupération est une question importante à prendre en compte. Cet article présentera le mécanisme de basculement et de récupération dans l'équilibrage de charge Nginx et donnera des exemples de code spécifiques. 1. Mécanisme de basculement

Les stratégies de détection dynamique des pannes et d'ajustement du poids de charge dans la solution d'équilibrage de charge Nginx nécessitent des exemples de code spécifiques Introduction Dans les environnements réseau à haute concurrence, l'équilibrage de charge est une solution courante qui peut améliorer efficacement la disponibilité et les performances du site Web. Nginx est un serveur Web open source hautes performances qui offre de puissantes capacités d'équilibrage de charge. Cet article présentera deux fonctionnalités importantes de l'équilibrage de charge Nginx, la détection dynamique des pannes et la stratégie d'ajustement du poids de la charge, et fournira des exemples de code spécifiques. 1. Détection dynamique des pannes Détection dynamique des pannes

Solution de haute disponibilité et de reprise après sinistre de la solution d'équilibrage de charge Nginx Avec le développement rapide d'Internet, la haute disponibilité des services Web est devenue une exigence clé. Afin d'atteindre une haute disponibilité et une tolérance aux catastrophes, Nginx a toujours été l'un des équilibreurs de charge les plus couramment utilisés et les plus fiables. Dans cet article, nous présenterons les solutions de haute disponibilité et de reprise après sinistre de Nginx et fournirons des exemples de code spécifiques. La haute disponibilité de Nginx est principalement obtenue grâce à l'utilisation de plusieurs serveurs. En tant qu'équilibreur de charge, Nginx peut distribuer le trafic vers plusieurs serveurs backend pour

Construire un système d'équilibrage de charge à haute disponibilité : bonnes pratiques pour NginxProxyManager Introduction : Dans le développement d'applications Internet, le système d'équilibrage de charge est l'un des composants essentiels. Il peut obtenir des services à haute concurrence et haute disponibilité en distribuant les requêtes à plusieurs serveurs. NginxProxyManager est un logiciel d'équilibrage de charge couramment utilisé. Cet article explique comment utiliser NginxProxyManager pour créer un système d'équilibrage de charge à haute disponibilité et fournir.

Les stratégies d'équilibrage de charge sont cruciales dans les frameworks Java pour une distribution efficace des requêtes. En fonction de la situation de concurrence, différentes stratégies ont des performances différentes : Méthode d'interrogation : performances stables sous une faible concurrence. Méthode d'interrogation pondérée : les performances sont similaires à la méthode d'interrogation sous faible concurrence. Méthode du moindre nombre de connexions : meilleures performances sous une concurrence élevée. Méthode aléatoire : simple mais peu performante. Hachage cohérent : équilibrage de la charge du serveur. Combiné à des cas pratiques, cet article explique comment choisir des stratégies appropriées basées sur les données de performances pour améliorer significativement les performances des applications.

Utilisez NginxProxyManager pour mettre en œuvre une stratégie d'équilibrage de charge de proxy inverse NginxProxyManager est un outil de gestion de proxy basé sur Nginx qui peut nous aider à mettre en œuvre facilement un proxy inverse et un équilibrage de charge. En configurant NginxProxyManager, nous pouvons distribuer les requêtes à plusieurs serveurs backend pour réaliser un équilibrage de charge et améliorer la disponibilité et les performances du système. 1. Installez et configurez NginxProxyManager

La vérification de l'état du serveur back-end et l'ajustement dynamique dans la solution d'équilibrage de charge Nginx nécessitent des exemples de code spécifiques. Résumé : Dans la solution d'équilibrage de charge Nginx, l'état de santé du serveur back-end est une considération importante. Cet article expliquera comment utiliser le module de vérification de l'état et le module d'ajustement dynamique de Nginx pour implémenter la vérification de l'état et l'ajustement dynamique du serveur back-end, et donnera des exemples de code spécifiques. Introduction Dans l'architecture d'applications moderne, l'équilibrage de charge est l'une des solutions couramment utilisées pour améliorer les performances et la fiabilité des applications. Ngi
