php-cp (php-connect-pool) は、PHP 拡張機能で作成されたデータベース接続プールです。
1. 市場にある他のオープン ソース データベース ミドルウェア製品とは異なります。
1. 個別の導入は必要ありません。クラスタは、アプリケーション サーバー上で実行されるプロキシ プロセスであり、外部依存関係の層が削減され、アーキテクチャがよりシンプルでクリーンで信頼性が高くなります。
2. パフォーマンスが高く、ネットワーク送信が 1 つ削減され、効率的な IPC を通じて PHP プロセスと通信し、プロトコル解析の消費を回避します。
3. Redis と mysql を同時にサポートするため、2 つの別々のミドルウェア システムをデプロイする必要はありません。
2. 簡単な回路図
##3. 技術的特徴
1. 接続の最大数と最小数の構成をサポートします。
2. 低圧による接続の自動回復をサポートします (強度と頻度は設定可能)。
3. スムーズな再起動をサポートします。
4. 接続枯渇のキューイングメカニズムをサポートします。
5.mysql と redis の両方をサポートします。
6. 使い方は簡単で、フレームワークを簡単に統合した後 (新しいメソッドを変更する)、既存のビジネスはコードを 1 行も変更することなく接続プールを使用できます。
7. get_disable_list 関数は、使用できないダウンタイム IP のリストを取得するために提供されているため、クライアントでも負荷分散を実行できます (構成ファイル内のすべての IP とダウンタイム IP を区別し、その後ランダムにできます)。
btw: lvs を使用することもできますが、lvs 転送ではシステム アーキテクチャへの依存関係が生じます。DR モードではネットワーク セグメントを越えることができず、拡張が制限されます。バックエンド データベースに問題がある場合、唯一できるのは、 LvのVIPを知っています。
8. 接続プール プロセスは、ダウンタイム リストを監視するために ping プロセスを開始します。利用可能な場合は、get_disable_list 関数の戻り値に反映されます。
9. 多数の最適化が行われていますが、リクエストは接続プールのプロセス転送を通過しますが、基本的に QPS の損失はありません。
4. 使用方法
1. pool.ini ファイルを /etc/ に配置し、必要に応じて内部の設定を変更します。
2. エージェント プロセスの開始
./pool_server start
「開始」「停止」「再起動」「リロード」コマンドのサポート
3. PHP スクリプトの変更
$db = new PDO(xxxxx); 修改成 $db = new pdo_connect_pool(xxxx);//dont use persistent $redis = new Redis(); 修改成 $redis = new redis_connect_pool();//dont use pconnect
ヒント:
$db/$redis->release() をできるだけ早く呼び出して、このプロセスによって占有されている接続をプールに解放します。
推奨チュートリアル: PHP ビデオ チュートリアル
以上がphpにはデータベース接続プールがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。