私は、フォールバックメソッドを使用しないサービス層のspring-bootアプリケーションでHystrix(spring-cloud-dependencies
のバージョンCamden.SR7)を使用します。このような方法は、2秒以上実行HystrixはHystrixRuntimeExceptionを投げず、代わりに空のメッセージエラーを返します
@HystrixCommand(commandKey = "prefs",
commandProperties = { @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "2000")})
@Override
public void savePrefs(PrefsRequestParams requestParams) throws Exception {
...
}
場合、Hystrixがスローされますjava.util.concurrent.TimeoutException:ヌル、およびREST応答は次のようになります。サービスの方法の一つは、次のようになります
{
"timestamp": 1509452672714,
"status": 500,
"error": "Internal Server Error",
"exception": "java.util.concurrent.TimeoutException",
"message": "No message available",
"path": "/prefs"
}
このような応答では、実際にどのメソッドから例外がスローされたのかは不明です。私はBrixton.SR5(以前のバージョン)にspring-cloud-dependencies
バージョンを変更した場合、それは明確な応答を返す:
{
"timestamp": 1509452426819,
"status": 500,
"error": "Internal Server Error",
"exception": "com.netflix.hystrix.exception.HystrixRuntimeException",
"message": "prefs timed-out and fallback failed.",
"path": "/prefs"
}
のでHystrixの新バージョン(春・クラウドの依存関係の実際に新しいバージョンが)HystrixRuntimeExceptionをスローしません。それはバグですか、あるいは明確なメッセージエラーを受け取るためにHystrixを別の方法で設定すべきですか? com.netflix.hystrix:hystrix-core:jar:1.5.3:compile
- 私はそれがspring-cloud-dependencies
バージョンCamden.SR7、 用およびバージョンBrixton.SR5ためcom.netflix.hystrix:hystrix-core:jar:1.5.6:compile
を使用していることがわかりMavenの依存関係ツリーから
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.2.7.RELEASE</version>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
:
は、私は、次のMavenの依存関係を使用します。
hystrix-セリのバージョン私は使うべきでは? hystrix-javanica-1.5.6のこのようなオプションは表示されません。 –
ああ、最初にバージョンについて質問する必要があります。最新の1.5.12バージョンでは、それが含まれていた時期はわかりません。 – kaos
バージョン1.5.7以降です。 – kaos