Baidu Wenxin Yiyan APIは、Webサイトに適した人気のあるランダムな文サービスを提供して、興味深い文のコンテンツを表示します。 PHP開発では、Baidu Wenxin Yiyan APIインターフェイスに電話して文データを取得し、ページに表示できます。データの可用性とユーザーエクスペリエンスを確保するには、障害が発生した場合にユーザーアクセスが発生しないように、データの同期とリモート災害復旧を実装する必要があります。
まず、PHPプロジェクトにBaidu Wenxin Yiyan APIを統合する必要があります。 APIデータは、Curlライブラリを介してHTTPリクエストを送信することで取得できます。これがサンプルコードです:
関数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']; } それ以外 { エコー「芸術を得るできなかった」; }
このコードは、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 = "hitokoto(content)valuesに挿入( '$ hitokoto')"; if($ conn-> query($ sql)=== true){ エコー「データの同じ期間が成功する」。 } それ以外 { エコー「データの同じ期間が失敗しました:」。 $ conn-> error; } } それ以外 { エコー「芸術を得るできなかった」; } $ conn-> close();
このコードは、MySQLデータベースのAPIから取得した文をHitokotoテーブルに保存します。ユーザーが訪問するたびに、毎回APIインターフェイスを求めることなく、データベースから直接文章を入手できます。
他の場所での災害復旧とは、単一の障害を防ぐために、さまざまな地理的位置のサーバーにデータをバックアップすることを指します。 MySQLマスタースレーブレプリケーションを介して、データの遠隔災害復旧を実現できます。これが簡単な構成例です。
マスターサーバー(メインライブラリ)を構成します。
[mysqld] サーバーID = 1 log-bin = mysql-bin binlog-format = row
スレーブサーバー(スレーブライブラリ)を構成します。
[mysqld] サーバーID = 2 leray-log = mysql-relay-bin log-slave-updates = 1 読み選ぶり専用= 1
プライマリサーバーでデータ同期のユーザーを作成し、複製権限を指定します。
「パスワード」によって識別されたユーザー「レプリケーション」@'%'を作成します。 レプリケーションスレーブを付与 *。 フラッシュ特権;
メインサーバーで次のコマンドを実行して、現在のバイナリログのファイル名と場所を取得します。
マスターステータスを急行します。
サーバー上の複製接続を構成します。
マスターをmaster_host = '192.168.1.10'、master_user = 'replication'、master_password = 'password'、master_log_file = 'mysql-bin.000001'、master_log_pos = 123;
サーバーから複製関数を起動します。
スレーブを始めるします。
構成が完了すると、マスターサーバー上のデータはスレーブサーバーに自動的に同期されます。マスターサーバーが失敗した場合、スレーブサーバーはすぐに引き継がれてサービスの継続性を確保できます。
上記の例コードと構成により、Baidu Wenxin Yiyan APIのデータ同期と災害復旧を実現できます。これにより、Webサイトのパフォーマンスが向上するだけでなく、問題に遭遇してユーザーエクスペリエンスを向上させるときに、Webサイトが安定して実行できることも保証できます。