上一章提到在HTTP Response中添加头的问题,如果在微服务里面添加,比如UserService项目,则每个项目都需要做重复的工作。每次遇到这样的情况,那肯定会有更好的解决方案。在前端的反向带来服务统一添加,就是一个更好的方案。这样每个微服务只需要解决自己关心的领域问题。基本思路就是在反向代理上面添加一个过滤器,对每个HTTP响应都增加一个头。
Zuul
Spring的代理服务使用了Netflix的Zuul。按照Zuul官方的介绍,
https://github.com/Netflix/zuul,是一个Edge Service。Edge Service是边界服务,提供了接入的功能,包括动态路由,过滤,监控等。
Spring Cloud提供了Zuul的集成,只需要在http://start.spring.io/中添加对zuul的依赖,就可以通过简单的配置使用zuul了。Spring提供的官方文档如下:
http://cloud.spring.io/spring-cloud-netflix/
https://spring.io/guides/gs/routing-and-filtering/
实现
新建一个叫做gateway的项目,添加的依赖是zuul。然后SPRING INITIALIZR自动生成maven项目。
GatewayApplication.java:
package com.he