# spring-cloud-zuul
## 目录
一、zuul简介
1.1 API 网关
1.2 zuul
二、项目结构
三、构建api 网关 zuul
3.1 引入依赖
3.2 在启动类上添加注解@EnableZuulProxy和@EnableDiscoveryClient
3.3 指定注册中心、配置网关的路由规则
3.4 启动eureka、producer、consumer、zuul服务,访问 localhost:8090/consumer/sell/product
四、错误熔断
4.1 zuul 默认整合了 hystrix ,不用导入其他额外依赖
4.2 创建 CustomZuulFallbackProvider并实现FallbackProvider 接口,同时用@Component声明为spring 组件,即可实现熔断时候的回退服务
五、zuul 过滤器
六、负载均衡
zuul 默认集成了ribbon 实现了负载均衡。只要启动多个实例即可查看到负载均衡的效果。
这里我们直接在idea 中启动多个实例来测试:
负载均衡测试结果:
七、附:关于版本问题可能导致的 zuul 启动失败
## 正文
## 一、zuul简介
### 1.1 API 网关
api 网关是整个微服务系统的门面,所有的外部访问需要通过网关进行调度和过滤。它实现了请求转发、负载均衡、校验过滤、错误熔断、服务聚合等功能。
下图是直观的显示api Gateway 在微服务网关中的作用(图片引用自spring boot 官网)。