容错与回退
复制 zuul 项目, 修改 ArtifactId 如 zuul-falllback
写 Zuul 的回退类
- @Component
- public class ZuulFallBackProvider implements ZuulFallBackProvider{
- @override
- public String getRoute(){
- return "service-name"; // 为哪个服务提供回退
- }
- @Override
- public ClientHttpResponse fallbackResponse(){
- return new ClientHttpResponse(){
- @Override
- public HttpStatus getStatusCode(){
- return HttpStatus.OK;
- }
- ......
- @Override
- public InputStream getBody(){
- return new ByteArrayInputStream("该服务暂不可用!".getBytes());
- }
- }
- }
- }
Zuul 的高可用分为两种场景
(1)Zuul 注册到了 Eureka Server 上
将多个 Zuul 节点注册到 Eureka Server 上, 就可以实现 Zuul 的高可用. 此时, Zuul 的高可用与其他微服务的高可用没区别
(2)Zuul 未注册到 Eureka Server 上
来源: http://www.bubuko.com/infodetail-3207981.html