![cover](https://img-blog.csdnimg.cn/7e357fc964c941e584fa2923a671e3f1.png)
Spring cloud gateway 配置超时
依赖<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2021.1</version></dependenc
·
依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.1</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.1</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
网关配置文件
spring:
application:
name: mytest-gateway
cloud:
nacos:
discovery:
namespace:
server-addr: 127.0.0.1:8848
gateway:
httpclient:
connect-timeout: 1000
response-timeout: 1s
routes:
- id: testMod
uri: lb://test-Mod
predicates:
- Path=/test/**
filters:
- StripPrefix=1
服务配置文件
spring:
application:
name: test-Mod
cloud:
nacos:
discovery:
namespace:
server-addr: 127.0.0.1:8848
@RestController
public class HealthController {
@GetMapping("/health")
public String testMe() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "this is working";
}
}
访问显示超时
自定义返回信息:
网关配置:
/**
*自定义异常处理
*/
public class GlobalWebExceptionHandler implements ErrorWebExceptionHandler {
@Override
public Mono<Void> handle(ServerWebExchange exchange, Throwable ex) {
ServerHttpResponse response = exchange.getResponse();
return response
.writeWith(Mono.fromSupplier(() -> {
DataBufferFactory bufferFactory = response.bufferFactory();
HashMap<String, Object> map = new HashMap<>();
map.put("errCode", "000");
map.put("errMsg", "当前在线人数较多");
//返回json异常原因给前端
return bufferFactory.wrap(JSON.toJSONBytes(map));
}));
}
}
/**
* 注册异常处理器
*/
@Configuration
public class GatewayExceptionConfig {
@Primary
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
public ErrorWebExceptionHandler errorWebExceptionHandler(ObjectProvider<List<ViewResolver>> viewResolversProvider,
ServerCodecConfigurer serverCodecConfigurer) {
return new GlobalWebExceptionHandler();
}
}
更多推荐
所有评论(0)