PHP 開発で Baidu Wenxin Yiyan API のデータ同期とリモート災害復旧を実装するにはどうすればよいですか?

WBOY
リリース: 2023-08-16 18:26:01
オリジナル
1498 人が閲覧しました

PHP 開発で Baidu Wenxin Yiyan API のデータ同期とリモート災害復旧を実装するにはどうすればよいですか?

PHP 開発で Baidu Wenxin Yiyan API のデータ同期とリモート災害復旧を実装するにはどうすればよいですか?

Baidu Wenxin Yiyan API は、Web サイトのページ上に表示する興味深い文を提供できる人気のランダム文サービスを提供します。 PHP開発では、Baidu Wenxin Yiyan APIインターフェースを呼び出すことで文章データを取得し、ページ上に表示することができます。ただし、ユーザー エクスペリエンスとデータの可用性を確保するには、データの同期とオフサイトの災害復旧を実装して、問題が発生した場合でもユーザーが引き続き Web サイトに正常にアクセスできるようにする必要があります。

まず、Baidu Wenxin Yiyan API を PHP プロジェクトに統合する必要があります。 cURL ライブラリを使用して HTTP リクエストを送信し、API データを取得できます。以下はサンプル コードです。

function getOneWord() {
    $url = 'https://v1.hitokoto.cn';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

$wordData = getOneWord();
if ($wordData && $wordData['status'] == 'success') {
    echo $wordData['hitokoto'];
} else {
    echo '获取句子失败';
}
ログイン後にコピー

上記のコードは、cURL 経由で Baidu Wenxin Yiyan API にリクエストを送信し、取得した JSON データを解析し、最終的にページに文章を出力します。次に、データ同期とリモート災害復旧を実装する方法を紹介します。

データ同期とは、Baidu Wenxin Yiyan API から取得した文章データをデータベースに保存し、毎回 API インターフェースをリクエストすることを避けることを指します。ストレージ データベースとして MySQL を使用できます。簡単なサンプル コードは次のとおりです:

// 首先连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);
}

// 获取句子数据
$wordData = getOneWord();
if ($wordData && $wordData['status'] == 'success') {
    $hitokoto = $wordData['hitokoto'];
    
    // 将数据插入数据库
    $sql = "INSERT INTO hitokoto (content) VALUES ('$hitokoto')";
    if ($conn->query($sql) === TRUE) {
        echo "数据同步成功";
    } else {
        echo "数据同步失败: " . $conn->error;
    }
} else {
    echo '获取句子失败';
}

$conn->close();
ログイン後にコピー

上記のコードは、Baidu Wenxin Yiyan API から取得した文を MySQL データベース中央の hitokoto テーブルに保存します。 。ユーザーが Web サイトにアクセスするたびに、毎回 API インターフェースをリクエストする代わりに、データベースから文章データを取得して表示することができます。

リモート災害復旧とは、単一障害点を防ぐために、地理的に複数の場所にあるサーバーにデータをバックアップすることを指します。 MySQL のマスター/スレーブ レプリケーションを使用して、データのリモート災害復旧を実現できます。以下は簡単な構成例です。

  1. マスター サーバー (マスター ライブラリ) を構成します。

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog-format=ROW
    ログイン後にコピー
  2. スレーブ サーバー (スレーブ ライブラリ) を構成します。 :

    [mysqld]
    server-id=2
    relay-log=mysql-relay-bin
    log-slave-updates=1
    read-only=1
    ログイン後にコピー
  3. データ同期用にメイン サーバーでユーザーを作成し、レプリケーション アクセス許可を付与します:

    CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    ログイン後にコピー
  4. メイン サーバーで次のコマンドを実行します。現在のバイナリ ログのファイル名と場所を取得します:

    SHOW MASTER STATUS;
    ログイン後にコピー
  5. スレーブ サーバーで次のコマンドを実行して、レプリケーション接続を構成します:

    CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=123;
    ログイン後にコピー

このうち、 192.168.1.10はメインサーバーのIPアドレス、mysql-bin.000001はメインサーバーで取得したバイナリログファイル名、 123 はメイン サーバーのバイナリ ログの場所で取得されます。

  1. スレーブ サーバーのレプリケーション機能を有効にします:

    START SLAVE;
    ログイン後にコピー

    設定が完了すると、MySQL マスター サーバー上のデータが自動的に作成されます。スレーブサーバーに同期されます。マスター サーバーに障害が発生した場合、スレーブ サーバーがすぐに引き継ぎます。

    要約すると、上記のサンプル コードと構成を通じて、Baidu Wenxin Yiyan API のデータ同期とリモート ディザスタ リカバリを実現できます。これにより、Web サイトのパフォーマンスと可用性が向上し、ユーザーがどのような状況でも Web サイトに正常にアクセスできるようになります。

    以上がPHP 開発で Baidu Wenxin Yiyan API のデータ同期とリモート災害復旧を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート