Redisの特定の問題は、使用中に遭遇します

1.キャッシュキャッシュ雪崩や質問を貫通

  1.1キャッシュの雪崩

    説明:キャッシュの無効化と同時に大面積なので、後続の要求は、短時間でデータベース多数の要求に耐え、跳ね返った、データベースに分類されます。

  ソリューション:

    事前:クラスタ全体のRedisの高可用性を確保しようとすると、マシンのダウンタイムはできるだけ早く作ることがわかりました。適切なメモリ制圧戦略を選択します。
    事に: にehcache&ダウングレードを制限するローカルキャッシュ+ hystrix 、MySQLは崩壊を避けます
    その後:Redisのは、できるだけ早く保存されたデータ・キャッシュ・リカバリを使用してメカニズムを永続

encache:
  Ehcacheのは、オープンソースのキャッシングフレームワーク純粋なJava、速い、赤身などで、HibernateはデフォルトのcacheProviderです。これは一般的なキャッシング、Java EEおよび軽量コンテナ、メモリとディスク記憶装置と、キャッシュローダー、キャッシュの拡張、キャッシュ例外ハンドラのために主にあります。
  
シナリオ:

  ローカルキャッシュとして純粋なJavaのにehcacheを使用して
  リモート分散キャッシュとしてレイズ
  キャッシュ速度、キャッシュのパフォーマンスを向上させる、のRedisキャッシュ圧力を解きます。

そしてRedisの違いEhcacheのキャッシュ
  ehcacheを持つ単一のアプリケーションまたは要求される用途へのキャッシュアクセス、場合。
  システムが大きい場合は、展開を分散共有キャッシュは、そこにある、大きなキャッシュの内容は、Redisのを示唆しました。

実用的な作業Ehcacheのを使用して
  、我々はこのプロジェクトで、集中キャッシュ(Redisのか、Memcachedのタイプなど)を使用し、通常はキャッシュがあるかどうかを調べるため
、直接のリターンがあれば、それはデータベース内に存在し、データベース・キャッシュを照会していない場合、データの期待、何らかの理由でキャッシュシステムのダウンタイムのために、サービスに結果は、その後、要求を大量に直接データベースに至るまで、データベースほとんどの圧力が非常に大きいのアクセスであることができない場合は、この時間。

今回は、二次キャッシュ、Redisのサーバーがダウンした場合、あなたはキャッシュehcacheを確認することができますようにehcacheをしましょう。
これは、効果的Kangzhuサーバは、圧力を要求することができます。
このように、一般的なRedisのキャッシュとして、二次キャッシュとしてEhcacheの。


hystrix:

  要約:分散システムでは、単一のアプリケーションは、典型的には、様々な外部HTTPサービスに依存して、典型的には、内部RPCサービスの多様に依存して、外部サービスの異なる複数種類に依存します。これらのサービスに依存して、必然的に外部依存関係の問題が発生した場合には、まだ自分のアプリケーションの安定性を確保する方法、異常、タイムアウトなど、失敗した呼び出します。Hystrixの目標は、できるようにすることですときに、1つまたは複数の依存関係の問題、安定したシステムはまだ隔離、制限および降格を含む意味し、実行することができます。

制限サービス:

  スレッドプール+キューとして、セマフォを介して。例えば、生成物は、10個のスレッドを処理する最大でき、両方の20スレッドがその存在5つのスレッドが制限されており、最初の10は、他の5つの実行する、それに達した場合、5を処理するキュー遅いレビューキューの中

サービスヒューズ:

  アクセスを許可する新しい要求で依存サービスのタイムアウトの数が多いだけでは意味がない場合は、我々は1秒にタイムアウトを設定するなどの既存のリソースの唯一の大胆不敵な消費は、短時間で多数の要求は、1秒であったされている場合応答が、それはサービスが異常があらわれたことを意味し、そのサービスにアクセスするための他の要求を聞かせする必要はありませんが、この時間、あなたは資源のヒューズ回避廃棄物を使用する必要があります

サービス低下:

  いわゆる降格は、サービス、サービスはもはや呼ばないであろう時に吹き込まれ、クライアントが独自のローカルフォールバック(フォールバック)コールバックを準備することができ、この時間は、デフォルト値を返します。例えば)インターフェース/キャッシュ/モックデータ:(代替、これを行うには、直接ハングよりも強いレベルの低下が、どのような結果が利用可能であるが、もちろん、これはまた、適切なビジネスシナリオにもよるが

 


 

 

  1.2キャッシュの浸透

     説明:一般的なハッカーが意図的にすべての要求を引き起こして、キャッシュに存在しないデータを要求しようとしているが、データベースの多数の要求に耐え、短い時間で、その結果、データベースに落ち、跳ね返りました。
   解決法:効果的にキャッシュの浸透の問題を解決するために多くの方法がありますが、最も一般的にはブルームフィルタを使用することがあり、特定のデータでは十分な大きさのビットマップにすべての可能なデータのハッシュが存在しませんビットマップ傍受オフ、これ基盤となるストレージ・システム上のクエリの圧力を回避することができます。問い合わせは(データが存在しないか、またはシステム障害)空のデータを返した場合、よりシンプルで、粗な方法は、(我々が使用これです)もあり、我々はまだ、空のキャッシュ結果を参照してください、それはです有効期限は非常に短く、もはやより5分になります。

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/crazy-lc/p/11802530.html