Zuul网关服务器在本地处理请求

时间:2019-08-22 06:41:48

标签: spring-boot local netflix-zuul

如何使Spring Boot Zuul代理服务器在本地处理特定请求,而不是将其代理到其他服务器?
假设我想通过一个API对Zuul代理服务器本身进行自定义运行状况检查,该API应该返回本地响应,而不是从其他远程服务器返回代理响应。

转发请求需要哪种路由配置?

1 个答案:

答案 0 :(得分:0)

以下是我想出的方法,它对我有用:

1)创建一个本地请求处理程序:
在Zuul代理服务器代码

的文件中添加带有RequestMapping的常规Controller / RestController
@RestController
public class LocalRequestHandler {
    @GetMapping(path = "/status", produces = MediaType.TEXT_PLAIN_VALUE);
    private static ResponseEntity<String> getServiceStatus() {
        String status = "I am alive";
        return ResponseEntity.ok().body(status);
    }
}

2)在定义其他路由的配置文件(application.properties或视情况而定)中创建本地转发路由。就我而言,Spring Boot Zuul代理服务器在Jetty容器上运行,并且GatewaySvc作为应用程序上下文。

zuul.routes.gatewaysvc.path=/GatewaySvc/status
zuul.routes.gatewaysvc.url=forward:/GatewaySvc/status 

对于未经测试的独立Spring Boot,您可能必须从上述配置中删除上下文路径。

zuul.routes.gatewaysvc.path=/status
zuul.routes.gatewaysvc.url=forward:/status

参考: Strangulation Patterns and Local Forwards