博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springcloud gateway(hystrix filter)
阅读量:5107 次
发布时间:2019-06-13

本文共 3551 字,大约阅读时间需要 11 分钟。

参考

 

1.依赖pom.xml

4.0.0
com.guo
guo
0.0.1-SNAPSHOT
guo-gateway
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-gateway

  

2.配置application.yml

server:  port: 8081spring:  application:    name: guo-gateway  cloud:    gateway:      discovery:        locator:          enabled: false          lowerCaseServiceId: true     eureka:  client:    service-url:      defaultZone: http://localhost:8761/eureka/logging:  level:    org.springframework.cloud.gateway: debug

  

3.启动配置

package com.guo.gateway;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.gateway.route.RouteLocator;import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;import org.springframework.context.annotation.Bean;@SpringBootApplication@EnableEurekaClientpublic class Application {	public static void main(String[] args) {        SpringApplication.run( Application.class, args );    }		@Bean    public RouteLocator myRoutes(RouteLocatorBuilder builder) {        String httpUri = "http://localhost:8762/hi";        return builder.routes()            .route(p -> p                .path("/demo")                .filters(f -> f.addRequestHeader("Hello", "World"))                .uri(httpUri))            .build();    }}

  

4.启动演示

启动eureka-server eureka-client gateway

访问gateway接口  会自动转发到 

5.添加熔断器

pom.xml

org.springframework.cloud
spring-cloud-starter-netflix-hystrix

  添加过滤器

  

package com.guo.gateway;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.gateway.route.RouteLocator;import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;import org.springframework.context.annotation.Bean;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import reactor.core.publisher.Mono;@SpringBootApplication@EnableEurekaClient@RestControllerpublic class Application {	public static void main(String[] args) {        SpringApplication.run( Application.class, args );    }		@Bean    public RouteLocator myRoutes(RouteLocatorBuilder builder) {        String httpUri = "http://localhost:8762/hi";        return builder.routes()            .route(p -> p                .path("/demo")                .filters(f -> f.addRequestHeader("Hello", "World"))                .uri(httpUri))            .route(p -> p            		.path("/hystrix")                .filters(f -> f                    .hystrix(config -> config                        .setName("mycmd")                        .setFallbackUri("forward:/fallback")))                .uri(httpUri))            .build();    }		  @RequestMapping("/fallback")  public Mono
fallback() { return Mono.just("fallback"); }}

  

停掉 http://localhost:8762/hi 服务,访问熔断成功。

转载于:https://www.cnblogs.com/yun965861480/p/10844447.html

你可能感兴趣的文章
使用requests模块post payload请求
查看>>
javascript console
查看>>
Linux时间子系统之(六):POSIX timer
查看>>
Linux内存管理 (20)最新更新和展望
查看>>
js实现图片自适应
查看>>
不要重复你自己(复用代码)
查看>>
再读三命通会(7)
查看>>
【操作系统】【进程】进程各状态关系图
查看>>
leetcode 347. Top K Frequent Elements
查看>>
Python list 增加/插入元素的说明
查看>>
代码如何实现多线程
查看>>
C# - Abstract Classes
查看>>
白话经典算法系列之六 高速排序 高速搞定
查看>>
python学习笔记2:字符串
查看>>
动态规划——最长上升子序列LIS及模板
查看>>
pv、uv、ip
查看>>
重磅:Spring Boot 2.0 正式发布!
查看>>
MVC+ZTree大数据异步树加载
查看>>
WPF3.5 使用BINDINGGROUP进行实体类和集合验证
查看>>
蓝桥杯 马虎的算式(全排列)
查看>>