参考链接:https://springcloud.cc/spring-cloud-dalston.html
一、概念与定义
1、为什么要引入API网关
- 后期维护:路由规则和服务实例列表困难
- 系统架构:统一的前置过滤,如:签名检查,权限校验等,智能路由,熔断机制,服务聚合
2、API网关 & 门面模式
二、Spring Cloud Zuul做了什么?
- 与Eureka整合,将自身注册为Eureka治理下的应用,获取所有微服务的实例信息。
- 委派服务实例维护工作给服务治理
- 统一的前置过滤,如:校验、签名
1、@EnableZuulProxy
2、配置
server.port=5555
spring.application.name=api-gateway
3、路由规则
传统的路由转发:
zuul.routes.api-a-url.path=/api-a-url/**
zuul.routes.api-a-url.url=http://localhost:8080/ #配置ip与路由规则对应关系
面向服务的路由转发:
zuul.routes.api-a-url.path=/api-a-url/**
zuul.routes.api-a-url.url=ServiceIdA # 配置与服务的对应关系
zuul.routes.api-b-url.path=/api-b-url/**
zuul.routes.api-b-url.url=ServiceIdB # 配置与服务的对应关系
三、Spring Cloud Zuul 的重要性
- 统一的系统入口
- 与服务治理框架结合,实现自动化的服务实例维护以及负载均衡的路由转发
- 统一的请求前置过滤,如:接口权限校验和签名比对等