目录
6.1 API Gateway简介
API Gateway是随着微服务概念兴起的一种架构模式,用于解决微服务过于分散,没有统一出入口进行流量管理的问题。它是介于客户端和服务器端之间的中间层,作为微服务网关,所有外部请求都会先经过API Gateway,这样客户端只需和API Gateway交互,无需单独调用特定微服务接口。
16.2 Zuul简介
API Gateway常见选型:
1)基于Openresty的Kong
2)基于Go的Tyk
3)基于java的Zuul:智能路由Zuul本质是一个由Java编写的Web Servlet应用,可用于身份验证、服务迁移、分级卸载以及各种动态路由选型
Zuul的核心组件是一系列的过滤器,他们可完成以下功能:
1)身份认证和安全
2)审计和监控
3)动态路由
4)压力测试
5)负载分配
6)静态响应处理
7)多区域弹性
Zuul提供四种过滤器:前置(pre)、后置(post)、路由(route)和异常(error)。请求会先按顺序通过所有前置过滤器,然后在路由过滤器中转发给后端应用,得到响应后又会通过所有的后置过滤器,最后返回给客户端。在这个流程中若发生异常则会转跳到异常过滤器中。
16.3 项目实战
1.创建项目
2.添加Zuul依赖:通常Zuul需要注册到Eureka上以实现高可用
3.启用Zuul代理:在Spring Boot启动类上添加注解@EnableZuulProxy
4.配置application.properties
zuul.routes.book_api.url=http://127.0.0.1:9000
zuul.routes.user_api.url=http://127.0.0.1:9001
server.port=8000
book_api是微服务Book的服务API地址标识,user_api是微服务User的服务API地址标识
5.启动测试微服务应用
6.启动API Gateway服务
7.编写Zuul过滤器:实现一个请求跟踪过滤器SimpleFilter,只需继承抽象类ZuulFilter过滤器即可
8.测试SimpleFilter过滤器的效果