PHP コントロール サイトの同時実行性

WBOY
リリース: 2016-06-20 12:46:43
オリジナル
834 人が閲覧しました

一般に、sphinx や lucence などの検索システムを使用して処理する場合、複雑で多様なビジネスの検索など、プロジェクトには必ず処理が困難な業務が含まれます。 , データソースが変更された場合データが速い場合(いいね数、嫌い数、閲覧数など)、最初にデータをプッシュする頻度を測定することが難しく、検索や検索ができなくなります。正確に並べ替えます。そのため、DBを検索するのが一般的で、業務を可能な限りプログラムレベルに分解することに加えて、DBの前にキャッシュの層を追加します。ただし、これには多くの既知の欠点があります。

1. 実際、通常の PHP で実装すると、より複雑なソートやフィルタリングなど、多くのビジネスを処理できません。まだ MYSQL ほどではありません。

2. キャッシュ ヒット率は保証されません。特にキーワードを使用してクエリを実行する一部の企業では、キーワードが過度に変化します。


悪意のあるブラッシングに遭遇した場合、DB サーバーは簡単に直接ハングアップするため、プログラム レベルでリミッターの層を追加して同時実行数を制限できます。リミッターには次の機能があります:

1. 効率が高い (ナンセンスです。そうでないと、ただ磨くだけでリミッターが最大になります)。現在、memcache はアトミック操作のカウントに使用されていますが、他のメソッドを使用するように拡張できます。

2. アクション層まで正確に。個々のページを個別に制限できます。

3. 便利。人によって意見は異なります

4. 低コスト。研究開発費とハードウェア費用を含みます。


ストレス テストによると、検索機能の同時実行数は当初 100 に制限されていましたが、ストレス テストの結果は 800 で正常でした。


使用方法は以下のとおりです。


/**

*

で検索します */

public function search(){

//カウンター関数を増やします。数値がその数値を超えるとシステムがビジーになります。

$viewlimiter = Library::load('viewlimiter') ;

//アクセス リミッターの名前。コントローラー + アクションを使用して、単一ページを一意に保つようにしてください

$limitName = 'search_search' ;

//最大同時アクセス番号

}

/ *----複雑で倒錯したビジネス ロジック-----*/

$xxxModel->search($ params);

}

//end func

?>

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!