Ric*_*oli 4 spring spring-cloud netflix-zuul
是否可以设置到主服务器/服务器/服务的代理,但是当这不可用时,将请求重定向到辅助服务器/服务器/服务?
次要服务不是与主要服务相同类型的实例。它们的 API 兼容但不相同。当主要资源不可用时,次要资源是性能较差的最后一个资源。
我们还没有使用 Eureka,只使用固定 IP。
zuul:
routes:
whatever:
path: /whatever/**
sensitiveHeaders: Cookie,Set-Cookie
url: http://server1:8080/whatever
Run Code Online (Sandbox Code Playgroud)
我看了一下ZuulFallbackProvider,但是这个接口是为了在错误的情况下提供一个固定的响应。我想,当http://server1:8080/whatever没有响应时,重定向到http://server2:8080/whateverApi2。
谢谢。
您可以使用 来做到这一点ZuulFallbackProvider,但您需要先配置以下内容。
首先,url-routing -zuul.routes.<service>.url在 Zuul 中直接指定 url在 HystrixCommand 中不执行。为此,您需要像下面这样更改配置。
zuul:
routes:
whatever:
path: /whatever/**
sensitiveHeaders: Cookie,Set-Cookie
serviceId: whatever
stripPrefix: false
ribbon:
eureka:
enabled: false
whatever:
ribbon:
listOfServers: http://server1:8080/
Run Code Online (Sandbox Code Playgroud)
上面的配置是使用Ribbon,没有eureka。你可以在这里找到详细信息
现在,您的请求将通过功能区在 HystrixCommand 中执行。所以你可以提供你自己的 ZuulFallbackProvider。
在 ZuulFallbackProvider 中,您可以向您的http://server2:8080/whateverApi2.infallbackResponse方法发出回退请求,如下所示。下面是一个非常幼稚的例子。:-) 您需要根据自己的目的完成以下示例。
@Component
public class TestZuulFallbackProvider implements ZuulFallbackProvider{
@Override
public String getRoute() {
return "test";
}
@Override
public ClientHttpResponse fallbackResponse() {
ResponseEntity<String> response = new RestTemplate().exchange("http://server2:8080/whateverApi2", HttpMethod.GET, null, String.class);
return new ClientHttpResponse() {
@Override
public HttpStatus getStatusCode() throws IOException {
return response.getStatusCode();
}
@Override
public int getRawStatusCode() throws IOException {
return response.getStatusCodeValue();
}
@Override
public String getStatusText() throws IOException {
return response.getStatusCode().getReasonPhrase();
}
@Override
public void close() {
}
@Override
public InputStream getBody() throws IOException {
return new ByteArrayInputStream(response.getBody().getBytes("UTF-8"));
}
@Override
public HttpHeaders getHeaders() {
return response.getHeaders();
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2537 次 |
| 最近记录: |