2017-07-21 1 views
1

hystrixライブラリを使用しているときにフォールバックメソッドでデータベース呼び出しを行うのはなぜ悪いことですか?Hystrix FallBack Bad Practice

@HystrixCommand(fallbackMethod ="fallBackMethod") 
public Double getRating(){ 
//Some Code Here 
} 
public Double fallBackMethod(){ 
//Any call to data base 
} 
+0

データベースがダウンしている場合、フォールバックはまた、より多くの詳細については、Hystrixのwikiを参照してください...失敗します。 //github.com/Netflix/Hystrix/wiki/How-To-Use#Fallback – Thoomas

+0

ありがとうございますThoomas – pannu

+0

別のデータベースを呼び出すと悪くはありませんが、この場合はその代替としてフォールバックを実装する必要があります。 – akuma8

答えて

0

データベースがダウンまたは低速の場合、フォールバックでの呼び出しが遅くなるか、ブロックされたり、例外がスローされたりします。悪い場合は、フォールバックで多くのスレッドがブロックされるため、サービスが利用できなくなる可能性があります。

フォールバックはサービスを保護することです。何か間違っていると、フォールバックを呼び出すことによって、呼び出しが高速またはサイレントに失敗するため、スレッドはブロックされず、サービスは引き続き実行できます。したがって、フォールバックで重大または不安定な作業を行うことはお勧めしません。たとえば、データベースを呼び出すなどです。あなたがそうする必要がある場合は

して、あなただけのように、あなたのフォールバックでHystrixCommandを使用することができます。https:https://github.com/Netflix/Hystrix/wiki/How-To-Use#Common-Patterns-FallbackCacheViaNetwork