12

私は、NopCommerce に基づく asp.net mvc3 電子商取引アプリケーションに取り組んできました。

最近では、サイトのパフォーマンスを向上させるためにパフォーマンス面に取り組んでいます。このサイトには、200000 を超える製品と 1200 のカテゴリがあり、大きな数はありません。ブランドの。この取り組みにより、パフォーマンスが 20 倍から 200 倍向上しましたが、それでも、Amazon、flipkart、jabong、letsbuy、ebay、shopping.indiatimes.com などの e コマースの大手と比較すると、パフォーマンスはさらに低下します。

Amazon、Flipkart、Jabong などのいくつかのサイトを見てみると、ページの読み込みがほぼゼロの待機時間で開始され、画像やその他のリソースがほぼ瞬時に読み込まれます。

また、検索に関しては、Nop Commerce の衰退が遅いです。FlipKart と Jabong や Amazon を見てください。非常に速いです。方法がわからない?彼らは何をしますか?彼らはデータベースで検索を実行しますか?

私の質問は、この種の優れたパフォーマンスを得るために彼らは何をしているのでしょうか? キャッシュに実装されたメモリ実装がサイト全体である可能性があるように、メモリがキャッシュされた負荷分散サーバーがあることを私は知っています。

しかし、そのような大規模でスケーラブルな Web サイトを作成するためのベスト プラクティスは何ですか? そして、彼らはどのようにそれをしますか? nop commerce や magento などのオープンソースの e コマース プラットフォームをベースとして使用している人はいますか? それとも、彼らはすべてカスタムメイドを好みますか?

実装するベスト プラクティスを使用して、それらのような Web アプリケーションをスケーリングする方法を学びたいと考えています。(これは一般的な質問であり、ノップ コマースに関連するものではないことに注意してください。これは、これまでに使用した最高の e コマース アプリケーションの 1 つです。)

ありがとう

4

1 に答える 1

17

通常、データベース層は常にボトルネックであり、多くの場合、重大な問題です。つまり、データベースへのアクセスを最小限に抑え、クリティカル パスから除外するには、キャッシュ レイヤーが不可欠です。キー値ストアで十分な場合は、Memcached が適切なオプションになる場合があります。

ただし、実際のシナリオの多くには、複雑なドメイン モデルが含まれます。このような場合は、ドメイン オブジェクトと連携し、埋め込みオブジェクトの関係を処理できるメモリ内データ グリッドを使用する方がはるかに優れています。

インメモリ データ グリッドは、高可用性、柔軟なスケーリング、最大のパフォーマンスが必要な場合や、イベント ドリブン アーキテクチャを作成したり、データベースに到達する前にデータを前処理したりする場合にも非常に役立ちます。これは、いくつかの最大のプレーヤーがどのようにそれを行うかを説明する良いビデオです: http://youtu.be/1AR2WWaP8CE

もう 1 つの主要な最適化は、コンテンツをダウンロードする時間を短縮することです。そのため、コンテンツ配信ネットワークも使用する必要があります。これら 2 つの最適化から始めると、パフォーマンスが問題でなくなっていることがわかる場合があります。

ノルム

于 2012-05-09T20:31:58.190 に答える