ケーススタディ - NCache タスク管理アプリケーションのパフォーマンスを向上させる

ヘッダー画像

への簡単な移行後、 NCache、アプリケーションをまとめる接着剤のように機能し始めています。 そして、それが提供するさまざまな機能は本当にボーナスであり、特にキューは過剰に使用してきました。

エンタープライズ アプリケーション サポート アナリスト
 

国または地域:
ヨーロッパ

産業:
国防総省

会社概要:
これは、複数の国間のつながりを構築し、国際的な危機管理活動を調整しながら、安全保障プロジェクトについて協議および協力できるようにすることに取り組んでいる欧州の国防省です。

NCache これにより、この組織は高可用性を維持し、タスク管理アプリケーションのパフォーマンスを高速化できます。

PDFのダウンロード
 

概要

このような組織では、高可用性、データの一貫性、容易なタスク管理が求められます。 この組織は特に、従業員が異なる部門間の情報とタスクを管理するために使用する追跡アプリケーションを設計しました。 従業員はアプリケーションにログインし、毎日のタスクを入力します。 各関係部門は従業員を監督し、業務状況を確認できます。 以前利用していた会社 Redis 開発プロセスには適していましたが、サーバーに展開する際に制限に直面していました。 さらに、国際舞台での平和への主要な貢献者として、彼らはリアルタイムで発生するあらゆる変化について通知されるように追跡アプリケーションを強化したいと考えていました。

 

アプリケーションの問題点

優れたキャッシュ メカニズムが必要です。 彼らは評価した Redis。 早い段階で彼らは次のことに気づきました。 Redis データ構造要件を満たしていないため、デプロイできませんでした Redis 彼らの本社で。 さらに、への移行 Redis 思ったほど簡単ではありませんでしたが、 Redis 組織の技術的要件を満たしていませんでした。 Redis Linux 上の C++ で開発されています。 また、Windows では正式にサポートされていません。 組織のアプリケーションは .NET 6 を使用して構築されているため、.NET ネイティブではない製品を統合すると問題が発生する可能性があります。

 

認定条件 NCache 彼らのソリューションに適合しますか?

NCache は、単一層アプリケーション向けの柔軟でスケーラブルなインメモリ ソリューションとその高度な機能を提供します。 データ変更通知の処理と作業が高速化されています。

からの移行は簡単でした Redis 〜へ NCache それはとても簡単でした。

前記 エンタープライズ アプリケーション サポート アナリスト チームの。

彼らのアプリケーションに何が欠けているように見えても、 NCache 修正として最適なソリューションを提供しました。

計画外の変更や計画的なメンテナンスは、複製されたキャッシュ トポロジを使用しているため、アプリケーションのパフォーマンスに影響しません。ノードがダウンしても、他のノードがそれを補います。 組織のデータ構造要件は次によって満たされました。 NCache 非常に直感的で実装が簡単なキュー。 から SignalR backplane キャッシュ ローダー、バッキング ソース プロバイダー (リードスルー)、および NCache ロック; 追跡アプリケーションは、これらすべての強力な機能の恩恵を受けます。 NCache.

さらに、 NCache は、Windows だけでなく Linux にも展開できる .NET ネイティブの分散キャッシュ ソリューションです。 これは、導入に役立ちました。 Redis Linux のみをサポートします。 ほとんどの .NET アプリケーションは Windows 上で動作し、現在では .NET Core アプリケーションは Windows と Linux の両方で実行できます。 したがって、分散キャッシュがこれらのオペレーティング システムの両方をサポートしていることを確認することが不可欠になっています。 そして NCache は、トップのキャッシュ ソリューションの XNUMX つとして、このサポートを提供します。

Alachisoft 製品:
NCache

顧客のニーズに応えました:

  • 簡単かつ簡単な移行/導入
  • より良いデータ構造
  • スケーラビリティ
  • データベーストリップの削減
 

アプリケーション アーキテクチャの概要と展開 NCache

アプリケーション アーキテクチャは主に次のコンポーネントで構成されます。

  • フロントエンド:
    フロントエンドは SVELTE JS フレームを使用して設計されています。
  • ロジック層:
    ロジック層は、Rest API を使用してデータベースと対話します。 それは使用しています .NET Core 6 つの Web API、SignalR 通知ハブがあり、SearchService およびコラボレーション サービス用の .NET API が付属しています。
  • バックエンド:
    バックエンドは、データ ストアとして SQL Server に基づいています。 データ ソースには、SQL Server、ADFS、Sharepoint、Document Management Server が含まれます。 バッキングソース (NCache Read-Through) は、.NET 6 を使用するこのレイヤーに実装されています。 NCache 5.3SP1。

アプリケーションを詳しく見てみると、Web API には、アクション サービス、通知ハブ、および SignalR が含まれています。 NCache アプリケーションのさまざまな部分間の中央ハブとして機能します。ユーザーは ADFS (Active Directory Federation Services) を使用してログインし、フロントエンドに移動して Web API を呼び出します。 Web API は、このアクションを作成し、それを内部のキューに入れる役割を果たします。 NCache。 アクション サービスは、キューのポーリング、タスク実行オブジェクトの処理など、複数の操作を実行します。

アクション サービス内に項目が存在する場合、それが処理されます。 処理の一環として、アクション サービスは通知ハブ経由で通知も送信します。 このアクション サービスは、新しいデータが追加されるか、以前に追加されたデータが更新される可能性があるデータ状態の変更の場合に、データ オブジェクト「Tasker」の状態を変更します。 これは、ユーザーが処理を分析するのに役立ち、その変更の影響を受けるすべての関係ユーザーに通知を送信します。 このアプリケーションには、SharePoint を使用してタスクを管理するコラボレーション サービスもあります。

を使用したアーキテクチャ図 NCache
図 1 - を使用したアーキテクチャ図 NCache

現在、アプリケーションは、フロントエンド、ロジック層、および NCache。 さらに、サーバーをサポートするデータベース サーバーが 1 台あります。 それらには、いくつかの参照データもキャッシュするキューを保存する 1 つの一般キャッシュがあります。 また、静的データ、つまり「タスク」を保存するための他の 2 つのキャッシュもあります。 一般キャッシュと静的キャッシュの両方にバッキング ソース (リードスルー) とローダーが実装されています。

 

SignalR Backplane

組織は、アプリケーションの使用を拡張します。 SignalR backplane。 複数のユーザーが Web アプリを使用している場合、彼らは Tasker オブジェクトに関するフィードバックを待ちます。 フィードバックは、SignalR を使用する通知ハブ経由で提供されます。 これにより、新しいメッセージをリクエストするたびに Web ページを更新する必要がなくなりました。

SignalR を使用してリアルタイム ASP.NET Web アプリケーションを作成できます。SignalR では、更新がトリガーされるとすぐにサーバーがすべてのログイン ユーザーに更新をブロードキャストします。 これにより、ユーザーの更新要求に対する応答時間が短縮されます。 NCache SignalR プロバイダーに拡張機能を提供することで、SignalR のサポートを提供します。 プロバイダーは、アプリケーションに関連するすべての Web サーバーの記録を持っています。

 

一貫したデータのためのキューのデータ構造

彼らは、によって提供される Queue データ構造を過度に使用しています。 NCache。 キューは、実行時に処理される情報を維持するために一般キャッシュに格納されます。 Web API は新しいアイテムをキューに追加します。 次に、アクション サービスはそのキューをポーリングし、新しい項目が見つかった場合は必要なプロセスを実行します。 キュー全体は次の場所に保存されます。 NCache。 アイテムをフェッチする必要があるときは常に、キュー全体を走査する必要はありません。これは、プロセスが遅いだけでなくコストもかかるためです。 NCache 参照を使用して、パフォーマンスに影響を与えない必要な項目を取得します。

Queue データ構造には、Contains メソッドを使用してキャッシュ内に項目が存在するかどうかをチェックする GetQueue などのさまざまな API が付属しています。 同様に、キューから最上位の項目を取得する、ソース キュー全体を XNUMX 次元配列にコピーする、キューから項目を削除する、イベント (キーベースおよびデータ構造) を登録する、データの整合性を確保するためにキューをロックおよびロック解除する、これらすべてを実行します。その他の機能は NCache Queue データ構造を備えたオファー。

 

データ整合性のためのキューのロック

この組織は、次のサービスによって提供されるロックの使用も導入しています。 NCache。 たとえば、データの整合性を維持するために、ユーザーがキューの読み取りまたは書き込みを行うたびに (たとえば、Lock API を使用して約 20 秒間) キューをロックできます。 必要なキューが空き、再度使用できる状態になっている場合、ユーザーは Unlock API を使用してキューのロックを解除します。 同時更新について話しているとき、 NCacheのロック機能は、データの整合性とデータの一貫性を提供および提供する準備ができています。

私たちについて Alachisoft:
Alachisoft と呼ばれる人気のある高性能インメモリ分散キャッシュを提供します NCache. NCache は、運用環境で実行され、.NET Web アプリ、SOA サービス アプリ、および一般的な高トラフィック サーバー アプリのパフォーマンスとスケーラビリティを向上させるオープン ソース ミドルウェアです。 2005年以来、 NCache は、世界中、特に米国、英国、および西ヨーロッパで何百もの顧客との実績があります。

30 日間の完全に動作する無料試用版をダウンロードできます。 NCache から こちら.

Alachisoft
本社
12005 Ford Road, Suite 520
ダラス、テキサス州75234

US: +1 (214) 764-6933
UK: + 44 207 993-8327

sales@alachisoft.com
support@alachisoft.com

 

バッキングソース (リードスルーキャッシュ)

彼らは、アプリケーションの一般的なキャッシュ ストアと静的キャッシュ ストアに実装されたリードスルー プロバイダーを使用して、キャッシュにデータが存在しない場合に備えてデータ ソースからデータをフェッチしました。 これにより、データベースへの追加のネットワーク トリップが最小限に抑えられます。 NCache は、ユーザーがデータ ソースと通信できるようにするリードスルー プロバイダーを提供します。 リードスルー キャッシュでは、キャッシュ ミスが発生した場合、 NCache get 呼び出しの背後でプロバイダーに連絡してデータをロードします。

リードスループロバイダーは、 IReadThruProvider .NET用。 キャッシュ内でアイテムが見つからない場合、メソッドは ソースからロード & LoadDataTypeFromSource 定義されたデータ ソースからオブジェクトまたはデータ型をロードするロジックを提供します。

 

キャッシュを事前に設定するためのキャッシュ ローダー

NCache もう XNUMX つの強力な機能を提供します。 キャッシュスタートアップローダー 彼らは追跡アプリケーションで使用しています。 アプリケーションは起動時にキャッシュにデータを事前に設定します。 これにより、ネットワーク コストが節約されるだけでなく、データの可用性も高まります。 キャッシュ ローダーの目的は、最初のリクエストでも遅延を回避することですが、キャッシュ ローダーは別のサービスで実行されるため、技術的には非同期です。 追跡アプリケーションは、起動時に最も頻繁に使用されるデータを常にキャッシュに保持します。 この機能は、リクエストのスループットを処理するだけでなく、アプリケーションのパフォーマンスも向上させるのに役立ちました。

 

前進する NCache

組織が恩恵を受けているのは、 NCache 上で説明したように、多くの領域で。 今後の成長の一環として、 NCacheのグループ機能、イベント通知、および Pub/Sub メッセージング。これは、アクション サービスが更新を確認するために毎回ポーリングする必要があるためです。 NCache パフォーマンスを低下させることなく、これらすべてを管理できます。

次はどうする?

お問い合わせ(英語)

電話
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。