什么是Zuul
Zuul是netflix公司的项目,其功能主要有反向代理、负载均衡等。
下面我们来实战下如何通过Zuul来实现反向代理
基于Zuul的反向代理实战
- 引入zuul依赖
- 使用注解@EnableZuulProxy声明启动Zuul代理;
- 自定义路由(默认会给所有注册到注册中心的服务配置路由)
默认会给所有到注册中心注册的服务都注册路由
ps:使用已有的一个服务CustomServei来测试,这个服务提供了一个http接口:GET http://ip:port/hello
新建服务ApiGateWay
如何创建微服务可以参考:
SpringCloud入门(二)之服务注册
SpringCloud入门(一)之Eureka注册中心
引入Zuul依赖
1 | <dependency> |
启动Zuul反向代理
在项目的启动类中加入注解@EnableZuulProxy
1 | package com.markey.test.apigateway; |
配置路由
在SpingBoot的配置文件中配置路由,因为Zuul会给所有注册到注册中心的服务配置默认路由,所以不配置也可以。
以下配置可以实现,当访问 http://localhost:8083/customservice/user 时,请求会被转发到名为CustomService的服务上,并获取CustomService提供的接口http://localhost:8082/user 的返回结果。
ps:CustomServie服务的实现代码可以参考:SpringCloud入门(三)之基于Feign的服务间接口调用
1 | #配置端口号,默认为8080,已被我的注册中心使用 |
测试
1.启动注册中心和提供接口的服务
2.启动引入了Zuul的服务
3.访问测试接口