Position actuelle: Accueil> Derniers articles> Comment réaliser la synchronisation des données et la reprise après sinistre dans l'API Baidu Wenxin Yiyan dans le développement de PHP?

Comment réaliser la synchronisation des données et la reprise après sinistre dans l'API Baidu Wenxin Yiyan dans le développement de PHP?

M66 2025-06-21

Comment réaliser la synchronisation des données et la reprise après sinistre de l'API Baidu Wenxin Yiyan dans le développement de PHP

L'API Baidu Wenxin Yiyan fournit un service de phrase aléatoire populaire adapté aux sites Web pour afficher un contenu de phrase intéressant. Dans le développement de PHP, nous pouvons appeler l'interface API Baidu Wenxin Yiyan pour obtenir des données de phrase et l'afficher sur la page. Afin d'assurer la disponibilité et l'expérience utilisateur des données, nous devons implémenter la synchronisation des données et la reprise de la catastrophe à distance pour empêcher l'accès des utilisateurs en cas d'échec.

Intégrer l'API Baidu Wenxin Yiyan

Tout d'abord, vous devez intégrer l'API Baidu Wenxin Yiyan dans votre projet PHP. Les données de l'API peuvent être obtenues en envoyant des demandes HTTP via la bibliothèque Curl. Voici un exemple de code:

fonction getOneword () {
    $ url = 'https://v1.hitokoto.cn';
    $ ch = curl_init ();
    curl_setopt ($ ch, curlopt_url, $ url);
    curl_setopt ($ ch, curlopt_returntransfer, true);
    $ réponse = curl_exec ($ ch);
    curl_close ($ ch);
    return json_decode ($ réponse, true);
}

$ wordData = getOneword ();
if ($ wordData && $ wordData ['status'] == 'Success') {
    echo $ wordData ['hitokoto'];
} autre {
    Echo «n'a pas réussi à obtenir une phrase»;
}

Ce code utilise Curl pour envoyer des demandes à l'API Baidu Wenxin Yiyan, analysant les données JSON obtenues et diffuse les phrases à la page.

Synchronisation des données

Le but de la synchronisation des données est de stocker les données des phrases obtenues à partir de l'API Baidu Wenxin Yiyan dans la base de données, ce qui peut éviter d'envoyer des demandes à l'API à chaque fois. Nous pouvons utiliser MySQL comme base de données de stockage. Voici un exemple simple de code:

$ servername = "localhost";
$ username = "nom d'utilisateur";
$ mot de passe = "mot de passe";
$ dbname = "base de données";

$ Conn = new mysqli ($ servername, $ username, $ mot de passe, $ dbname);
if ($ con-> connect_error) {
    Die ("La connexion de la base de données a échoué:". $ con-> connect_error);
}

$ wordData = getOneword ();
if ($ wordData && $ wordData ['status'] == 'Success') {
    $ hitokoto = $ wordData ['hitokoto'];
    $ sql = "Insérer dans les valeurs hitokoto (contenu) ('$ hitokoto')";
    if ($ con-> query ($ sql) === true) {
        Echo "La synchronisation des données réussit";
    } autre {
        Echo "La synchronisation des données a échoué:". $ con-> erreur;
    }
} autre {
    Echo «n'a pas réussi à obtenir une phrase»;
}
$ Conn-> close ();

Ce code enregistre les phrases obtenues de l'API à la table Hitokoto dans la base de données MySQL. Chaque fois qu'un utilisateur visite, vous pouvez obtenir des phrases directement à partir de la base de données sans demander l'interface API à chaque fois.

Catastrophes recouvrement ailleurs

La reprise après sinistre dans d'autres endroits fait référence à la sauvegarde des données aux serveurs dans différents emplacements géographiques pour éviter un seul point d'échec. Nous pouvons réaliser une reprise après sinistre à distance des données grâce à la réplication maître-esclave de MySQL. Voici un exemple de configuration simple:

Configurez le serveur maître (bibliothèque principale):

[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ligne

Configurer le serveur esclave (bibliothèque d'esclaves):

[mysqld]
serveur-id = 2
relais-log = mysql-relay-bin
log-slave-updates = 1
lecture seule = 1

Créez un utilisateur pour la synchronisation des données sur le serveur principal et donnez des autorisations de réplication:

Créer une «réplication de la réplication» @ «%» identifiée par «mot de passe»;
Grainer l'esclave de réplication sur *. * À 'réplication' @ '%';
Privilèges de rinçage;

Exécutez la commande suivante sur le serveur principal pour obtenir le nom de fichier et l'emplacement du journal binaire actuel:

Afficher le statut maître;

Configurer une connexion de réplication sur le serveur:

Changez Master en master_host = '192.168.1.10', maître_user = 'réplication', maître_password = 'mot de passe', maître_log_file = 'mysql-bin.000001', master_log_pos = 123;

Démarrez la fonction de réplication à partir du serveur:

Commencer l'esclave;

Une fois la configuration terminée, les données du serveur maître seront automatiquement synchronisées avec le serveur esclave. Si le serveur maître échoue, le serveur esclave peut prendre le relais immédiatement pour assurer la continuité du service.

Résumer

Grâce à l'exemple de code et à la configuration ci-dessus, nous pouvons réaliser la synchronisation des données et la reprise après sinistre de l'API Baidu Wenxin Yiyan. Cela peut non seulement améliorer les performances du site Web, mais également garantir que le site Web peut toujours s'exécuter de manière stable lors de la rencontre avec des problèmes et de l'amélioration de l'expérience utilisateur.