fallback 메서드가없는 서비스 레이어의 spring-boot 응용 프로그램에서 Hystrix (spring-cloud-dependencies
의 Camden.SR7 버전)를 사용합니다. 이러한 방법은 더 이상 이초 이상 실행Hystrix는 HystrixRuntimeException을 throw하지 않고 대신 빈 메시지 오류를 던지지 않습니다.
@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 : 널 (null), 및 REST 응답은 다음과 같이 표시됩니다 서비스의 방법 중 하나는 다음과 같습니다
{
"timestamp": 1509452672714,
"status": 500,
"error": "Internal Server Error",
"exception": "java.util.concurrent.TimeoutException",
"message": "No message available",
"path": "/prefs"
}
이러한 응답을 통해 예외가 실제로 throw 된 메서드가 무엇인지 명확하지 않습니다. 내가 Brixton.SR5 (구)에 spring-cloud-dependencies
버전을 변경하는 경우, 그것은 분명한 응답을 반환 : HystrixRuntimeException를 포기하지 않습니다 Hystrix의
{
"timestamp": 1509452426819,
"status": 500,
"error": "Internal Server Error",
"exception": "com.netflix.hystrix.exception.HystrixRuntimeException",
"message": "prefs timed-out and fallback failed.",
"path": "/prefs"
}
그래서 새 버전 (스프링 클라우드 종속성 실제로 새 버전). 버그입니까, 명확한 메시지 오류를 받으려면 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
를 사용하고 있음을 알 받는다는 종속성 트리에서
<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>
...
:
나는 다음과 같은 받는다는 종속성을 사용합니다.
내가 hystrix-javanica의 버전을 사용해야은? 나는 hystrix-javanica-1.5.6과 같은 옵션을 보지 못합니다. –
맞습니다. 먼저 버전에 대해 물어보십시오. 최신 1.5.12 버전에 포함되어 있으며, 포함 된시기는 확실하지 않습니다. – kaos
1.5.7 버전부터 포함되어 있습니다. – kaos