hystrixライブラリを使用しているときにフォールバックメソッドでデータベース呼び出しを行うのはなぜ悪いことですか?Hystrix FallBack Bad Practice
@HystrixCommand(fallbackMethod ="fallBackMethod")
public Double getRating(){
//Some Code Here
}
public Double fallBackMethod(){
//Any call to data base
}
hystrixライブラリを使用しているときにフォールバックメソッドでデータベース呼び出しを行うのはなぜ悪いことですか?Hystrix FallBack Bad Practice
@HystrixCommand(fallbackMethod ="fallBackMethod")
public Double getRating(){
//Some Code Here
}
public Double fallBackMethod(){
//Any call to data base
}
データベースがダウンまたは低速の場合、フォールバックでの呼び出しが遅くなるか、ブロックされたり、例外がスローされたりします。悪い場合は、フォールバックで多くのスレッドがブロックされるため、サービスが利用できなくなる可能性があります。
フォールバックはサービスを保護することです。何か間違っていると、フォールバックを呼び出すことによって、呼び出しが高速またはサイレントに失敗するため、スレッドはブロックされず、サービスは引き続き実行できます。したがって、フォールバックで重大または不安定な作業を行うことはお勧めしません。たとえば、データベースを呼び出すなどです。あなたがそうする必要がある場合は
して、あなただけのように、あなたのフォールバックでHystrixCommandを使用することができます。https:https://github.com/Netflix/Hystrix/wiki/How-To-Use#Common-Patterns-FallbackCacheViaNetwork
データベースがダウンしている場合、フォールバックはまた、より多くの詳細については、Hystrixのwikiを参照してください...失敗します。 //github.com/Netflix/Hystrix/wiki/How-To-Use#Fallback – Thoomas
ありがとうございますThoomas – pannu
別のデータベースを呼び出すと悪くはありませんが、この場合はその代替としてフォールバックを実装する必要があります。 – akuma8