ホームページ >Java >&#&チュートリアル >Java での高い同時実行性を解決するにはどのような方法がありますか?

Java での高い同時実行性を解決するにはどのような方法がありますか?

coldplay.xixi
coldplay.xixiオリジナル
2020-07-03 15:11:2013971ブラウズ

高同時実行性を解決するための Java メソッド: 1. 大量のデータベース アクセス要求を回避する HTML 静的メソッド; 2. イメージ サーバー分離メソッド; 3. データベース クラスターとライブラリ テーブルのハッシュメソッド; 4. ロード バランシングハードウェア 4 層スイッチング方式とソフトウェア 4 層スイッチング方式があります。

Java での高い同時実行性を解決するにはどのような方法がありますか?

#高い同時実行性を解決するための Java の方法:

1. HTML の静的化

実際のところ、純粋に静的な HTML ページが最も効率的で消費量が最も少ないことは誰もが知っているため、Web サイトのページには静的ページを使用するよう最善を尽くしています。この最も単純な方法が実際に最も効果的です。方法。

おすすめ動画コース→: 「1000万レベルのデータ同時実行ソリューション(理論と実戦)」

コンテンツ量が多く、更新頻度も高いWebサイトでは、1つ1つ手作業で導入するのは不可能なので、よく利用する各種ポータルサイトのニュースチャンネルなど、共通の情報公開システム

CMSが登場しました。 、およびその他のチャネルもすべて情報公開システムを通じて管理および実装されます。情報公開システムは、最も簡単な情報入力を実現し、静的ページを自動生成できます。また、チャネル管理、権限管理、自動クローリングなどの機能も備えています。大規模な Web サイトの場合、効率的で管理しやすい CMS が不可欠です。

ポータルや情報公開型のWebサイトに加え、高い双方向性が要求されるコミュニティ型のWebサイトにおいても、パフォーマンスを向上させるためには可能な限り静的であることも必要な手段です。静的化、そして更新があるときに再静的化することも広く使用されている戦略であり、Mop の hodgepodge はこの戦略を使用しており、NetEase コミュニティなども同様です。

同時に、HTML の静的化は、一部のキャッシュ戦略で使用される手段でもあります。データベース クエリを頻繁に使用するものの、コンテンツの更新が非常に少ないシステム内のアプリケーションの場合は、public などの HTML の静的化の使用を検討できます。フォーラム内のフォーラム. 設定情報、この情報は現在主流のフォーラムによって管理され、データベースに保存されます. 実際、この情報の多くはフロントエンド プログラムによって呼び出されますが、更新頻度は非常に低いです。バックグラウンドを更新するときに、コンテンツのこの部分を静的にすることを検討できます。これにより、大量のデータベース アクセス リクエストが回避されます。

2. イメージ サーバーの分離

ご存知のとおり、Web サーバーの場合、Apache、IIS、その他のコンテナーのいずれであっても、イメージが最も多くのリソースを消費します。ページから画像を分離する必要があります。これは基本的に大規模な Web サイトで採用される戦略であり、すべての Web サイトには独立した画像サーバーがあり、場合によっては多数の画像サーバーがあります。

このようなアーキテクチャにより、ページ アクセス リクエストを提供するサーバー システムへの負荷が軽減され、画像の問題によるシステムのクラッシュが確実に回避されます。アプリケーション サーバーと画像サーバーでさまざまな構成の最適化を実行できます。 ContentType を構成する場合、サポートする LoadModules をできるだけ少なくして、より高いシステム消費量と実行効率を確保できます。

3. データベース クラスターとデータベース テーブル ハッシュ

大規模な Web サイトには複雑なアプリケーションがあり、これらのアプリケーションではデータベースを使用する必要があります。現時点では、1 つのデータベースではすぐにアプリケーションに対応できなくなるため、データベース クラスタリングまたはデータベース テーブル ハッシュを使用する必要があります。

データベース クラスターに関しては、多くのデータベースが独自のソリューションを持っています。Oracle、Sybase などには優れたソリューションがあります。MySQL が提供する一般的に使用されている

Master/Slave も同様のソリューションです。どのような種類の DB を使用しますか? 対応するソリューションを参照して実装してください。

4. キャッシュ

テクノロジーに関わる人なら誰でもキャッシュという言葉を聞いたことがあるでしょうし、キャッシュはさまざまな場所で使用されています。 Web サイトのアーキテクチャおよび Web サイト開発におけるキャッシュも非常に重要です。ここではまず、最も基本的な 2 つのキャッシュについて説明します。高度な分散キャッシュについては後で説明します。

アーキテクチャ上のキャッシュでは、Apache に詳しい人なら、

Apache が独自のキャッシュ モジュールを提供しており、追加の Squid モジュールをキャッシュに使用できることを知っているでしょう。これらのメソッドは、Apache のアクセス応答機能を効果的に向上させることができます。

Web サイトのプログラム開発におけるキャッシュ、Linux で提供される Memory Cache は、Web 開発で使用できる一般的に使用されるキャッシュ インターフェイスです。たとえば、Java で開発する場合、MemoryCache を呼び出してキャッシュし、一部のプログラムと通信することができます。データ。一部の大規模コミュニティではそのようなアーキテクチャが使用されています。

さらに、Web 言語開発を使用する場合、各言語には基本的に独自のキャッシュ モジュールとメソッドがあります。PHP には Pear のキャッシュ モジュールがあり、Java にはさらに多くのものがあります。.net についてはあまり詳しくありません。 。 がなければならない。

5.ミラー

ミラーリングは、パフォーマンスとデータ セキュリティを向上させるために大規模な Web サイトでよく使用される方法です。ミラーリング テクノロジは、ChinaNet と EduNet の違いなど、ネットワーク アクセス プロバイダーや地域の違いによって引き起こされるユーザーのアクセス速度の違いを解決できます。多くの Web サイトが構築されています教育ネットワーク内のミラーサイトであり、データは定期的またはリアルタイムで更新されます。ミラーリングの詳細なテクノロジに関しては、ここではあまり詳しく説明しませんが、専門的な既製のソリューション アーキテクチャと製品が多数あります。 Linux 上の rsync やその他のツールなどのソフトウェアを使用して安価に実装する方法もあります。

6. 負荷分散

負荷分散は、大規模な Web サイトにとって、高負荷のアクセスと多数の同時リクエストを解決するための究極のソリューションになります。

負荷分散テクノロジーは長年にわたって開発されており、多くの専門的なサービス プロバイダーや製品から選択できますが、私は個人的にいくつかのソリューションに遭遇しており、そのうちの 2 つは参考として使用できます。

1) ハードウェア 4 層スイッチング

4 層目のスイッチングでは、3 層目と 4 層目の情報パケットのヘッダー情報を使用して、アプリケーションに応じたビジネス フローを識別します。間隔全体のビジネス フローは、処理のために適切なアプリケーション サーバーに割り当てられます。レイヤ 4 スイッチング機能は、物理サーバーを指す仮想 IP のようなものです。送信されるサービスは、HTTP、FTP、NFS、Telnet、その他のプロトコルなど、さまざまなプロトコルに従います。これらのサービスには、物理​​サーバーに基づく複雑な負荷分散アルゴリズムが必要です。 IP の世界では、サービス タイプは端末の TCP または UDP ポート アドレスによって決まりますが、レイヤ 4 スイッチングでは、アプリケーションの範囲は送信元と端末の IP アドレス、TCP および UDP ポートによって決まります。

ハードウェア 4 層スイッチング製品の分野では、Alteon、F5 などの有名な製品がいくつかあります。これらの製品は高価ですが、お金を払う価値があり、提供できるものです。非常に優れたパフォーマンスと非常に柔軟な管理能力。 Yahoo China は、2,000 台近くのサーバーを処理するために 3 ~ 4 台の Alteons を使用しました。

2) ソフトウェア 4 層スイッチング

ハードウェア 4 層スイッチの原理が誰もが知った後、OSI モデルに基づくソフトウェア 4 層スイッチングが登場しました。このようなソリューションは同じ原理を実装していますが、パフォーマンスはわずかに悪くなります。ただし、ある程度のプレッシャーに耐えるのは簡単であり、ソフトウェアの実装方法は実際にはより柔軟であり、処理能力は完全に構成の習熟度に依存するという人もいます。

Linux で一般的に使用されている LVS を使用して、4 層のソフトウェア スイッチングを解決できます。LVS は Linux 仮想サーバーであり、ハートビート ラインに基づいたリアルタイムの災害対応ソリューションを提供します。堅牢で、分散システムに不可欠なさまざまなアプリケーション要件を同時に満たすことができる、柔軟な仮想 VIP 構成および管理機能を提供します。

関連する学習に関する推奨事項: Java ビデオ チュートリアル

以上がJava での高い同時実行性を解決するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。