SpringCloud的微服务网关:zuul(理论)

时间:2024-10-14 09:36:02

参考链接: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 的重要性

  • 统一的系统入口
  • 与服务治理框架结合,实现自动化的服务实例维护以及负载均衡的路由转发
  • 统一的请求前置过滤,如:接口权限校验和签名比对等