分散型マイクロサービスアプリケーションの各ノードに分離されたローカルキャッシュを使用することは悪い習慣と考えられますか?モノリシックアプリケーションでは、ローカルEHCacheをHibernateの第2レベルのキャッシュプロバイダとして使用することはOKですが、分散環境ではMemcached、Redis、Hazelcastなどの分散キャッシュを使用するのが一般的です。各ノードに分離キャッシュを使用した場合の影響は何ですか?マイクロサービスベースのアーキテクチャと各ノードの個別キャッシュ
0
A
答えて
4
「コンピュータサイエンスの2つだけ難しい問題があります。キャッシュの無効化と命名のものは」 - フィルKarlton
アプリ・サーバー内のローカルキャッシュの主な問題は、それがキャッシュの無効化を行っていることです以前よりずっと難しかったです。
リソースが変更されるたびに、すべてのローカルキャッシュで無効化(および更新)する必要があります。これには、任意の時点で実行されているすべてのキャッシュサーバーを知っているシステムが必要です。このシステムでは、すべてのサーバー上のデータ無効化を調整できるように、すべての更新について通知する必要があります。また、リトライや障害の発生したサーバーの処理なども行う必要があります。
アプリケーションサーバーにローカルキャッシュがある場合は、別のシステムまたはアプリケーションコードを使用してこれらの問題を解決する必要があります。分散キャッシングシステムは、あなたのためにこれらの問題を解決しました。更新呼び出しを行うことができ、成功した場合はデータの一貫性(または最終的な整合性)が保証されます。
これは懸念の分離です。別個のキャッシュ・キャッシュ・クラスタでは、キャッシュ・ロジックおよび関連する問題が1か所で処理されます。開発するアプリケーションごとに同じクラスターをやり直すのではなく、同じクラスターを複数のアプリケーションで簡単に再利用することができます。
パフォーマンスの低下を望まない場合は、新しいサーバーを起動するたびにキャッシュをウォームアップする必要があります。これにより、サーバーを起動する時間が長くなります。
関連する問題
- 1. 各タブのNativeScriptと別個のNavigationBar(ActionBar)
- 2. 各jsfバリデータータグごとに個別のエラーメッセージ
- 3. Oracle - 各列の個別の値(別個のカウントではない)
- 4. マイクロサービスベースのイベントストア
- 5. array_sumない各行個別
- 6. ループ内の各プロットの個別のハンドル
- 7. カスタムUITableViewCellの各UIButtonの個別のアクション
- 8. リストビューの各列の個別のクリックイベント
- 9. RabbitMqの各メッセージコンシューマのデッドレターキューを個別に
- 10. モノリシックアプリケーションをマイクロサービスベースのアーキテクチャにチューニングし、GITの履歴を維持する
- 11. 複数の結合とキャッシュされた個別のクエリ
- 12. Woocommerce各カテゴリの個別製品ループ
- 13. 個別のステートメントで各オペランドを印刷
- 14. XSLTは別個のノードをカウントする
- 15. アプリケーションサーバーと休止APIサーバー(ノード)のための別個のポート
- 16. 個別のPDFページの各ggplot - 行ごとに行をプロット
- 17. 各ワークシートを個別のPDFとして保存
- 18. Python GPIO add_event_detect各状態を個別に
- 19. Springコントローラのキャッシュの個数
- 20. ASP.Net各ノードのツリービューコントロールとタグプロパティ
- 21. マイクロサービスベースのアーキテクチャでは、どのようにデータベースへのアクセスを行うのですか?
- 22. SQL各値の別個の行の数を取得する
- 23. Oracle Application Server上の各Java VM用の個別のGCログ・ファイル
- 24. 各クライアントアセンブリの個別のクラスライブラリの初期化
- 25. mysqlダンプ、ウィンドウ、各データベースの個別のファイル、すべてのデータベースオプション
- 26. jQuery Mobile各ページに固有の個別の読み込みメッセージ
- 27. 各列の個別のプロットを作成する
- 28. データフレーム内の各列を個別のデータフレームに変換する
- 29. 各子供の個別の質問を取り除くことの問題
- 30. ノードJS、ブラウザのキャッシュと304応答
ありがとうございます。 – mkorman