ホームページ  >  記事  >  バックエンド開発  >  サイトの同時実行を制御するためのシンプルな PHP_PHP チュートリアル

サイトの同時実行を制御するためのシンプルな PHP_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:13:48723ブラウズ

一般的に、データを扱うためにsphinxやlucenceなどの検索システムを使用すると、複雑で多様な検索など、処理が難しい業務が必ず発生します。ソースの変更が速すぎると (いいね、嫌い、ビューなど)、最初にデータをプッシュする頻度を測定することが難しく、正確に検索または並べ替えることは不可能です。そのため、DBを検索するのが一般的で、業務を可能な限りプログラムレベルに分解することに加えて、DBの前にキャッシュの層を追加します。ただし、これには多くの既知の欠点があります:
1. 実際、より複雑なソートやフィルタリングなど、多くのビジネスは通常の PHP で実装した場合ほど効率が良くありません。マイSQL。
2. キャッシュ ヒット率は保証されません。特にキーワードを使用してクエリを実行する一部の企業では、キーワードが過度に変化します。


悪意のあるブラッシングが発生した場合、DB サーバーは簡単に直接ハングアップするため、プログラム レベルでリミッターの層を追加して同時実行数を制限できます。このリミッターには次の特徴があります。 . 効率(ナンセンスです。そうでないと、ブラシをかけるだけでリミッターが最大になります)。現在、memcache はアトミック操作のカウントに使用されていますが、他のメソッドを使用するように拡張できます。
2. アクションレイヤーまで正確に。個々のページを個別に制限できます。
3. 利便性。人によって意見は異なります
4. 低コスト。研究開発費とハードウェア費用を含みます。

ストレステストによると、検索機能は当初 100 件までしか同時実行できませんでしたが、100 件に制限したところ、800 件のストレステスト結果が正常になりました。

コードは次のとおりです: リーリー

拡張トピック:

1. このビジネスがスワイプされると、通常のユーザーはコンテンツを閲覧できなくなる可能性があります。 -- この問題はシステム レベルからのみ解決できます。これについては、http://johnsteven.blog.51cto.com/2523007/818209 を参照してください。
2. 制限数はキャッシュ ヒット率と組み合わせるのが最適です。 、制限の精度を向上させるために、一定の範囲内で制限数を自動的に変更します。 -- これは後で検討し、サーバーの負荷に基づいた動的制御
と組み合わせることができます。 -- 最下層とサーバー権限を含めると、調査コストが比較的高くなります。興味がある場合は調査してください。
注: この記事はアイデアのみを説明しています。特定のコードは、いくつかの理由により一時的に利用できません


http://www.bkjia.com/PHPjc/440330.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/440330.html技術記事一般的に、プロジェクトには複雑で多様な検索など、処理が難しい業務が必ず発生します。これを sphinx や lucence などの検索システムを使用して処理すると、データ ソースが...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。