Zuul网关是什么?为什么要用? 
相信网上已经有很多详细的相关介绍了,大家可以在这里我就不赘述了。

 

我们直接来入门试试 Zuul 网关的路由功能!

和前面一样,用脚手架快速搭建一个模块,名字为:yuanxion-zuul
依赖和版本选择如图:

 

创建好后,将配置文件 application.properties 改成 application.yml,
然后在配置文件中 修改默认端口,并给服务取名:

 

引导类上添加注解:

 

然后再配置中,设置路由网关:

 

然后启动Zuul实例
有时候,可能实例快速启动没有自动出现,我们可以手动添加:

 

选择之后,取个名字:

再确定,就可以了。手动添加就成功了!

 

 

 

 

现在我们启动Zuul

先访问 http://localhost:8081/user/1

 

然后再访问  http://localhost:10010/service-provider/user/1

 

 结果是一样的! 为什么呢?


(图上的 ribbon 设置,不用加。 )

 

Zuul的基本使用,就是这样了!

 

不过刚刚我们刚刚使用Zuul的时候,并没有经过Eureka,而且Zuul配置里的 path 写了固定值,没办法做到负载均衡。

下面,我们来试试经过Eureka使用Zuul!

把 Zuul 注入到 Eureka ,(使Zuul能拉取服务列表):
先三步走:

1.在Zuul中引入Eureka依赖:

2.覆盖默认配置

3.在引导类里 启用Eureka

这样,Zuul网关就可以注入到Eureka中了,可以拉取服务列表了

去修改Zuul配置中的 url

 

然后重启Zuul,看看还能不能 通过 http://localhost:10010/service-provider/user/1 去访问

这样就可以了!

我们已经会了 两种 配置方式了
1.通过 url 路径去配置
2.通过 服务ID( serviceId )去配置

其实有四种配置方式,还有另外两种配置方式!

我们先来看看第三种配置方式:
(可以看成 简化 的第二种配置方式)

写好,重启后,依旧能访问!


然后我们再看第四种配置方式:

重启zuul,访问  http://localhost:10010/service-provider/user/1 ,依旧可以!
并且!访问 http://localhost:10010/service-consumer/consumer/user?id=1 ,也可以!

虽然第四种特别简单,但是,我们一般是 使用 第三种!

第三种配置方式,可以简化路径前缀,有几个就配置几个:

 

Zuul的配置里 还可以加个 路由前缀,这样可以判断访问是否经过网关:

 

重启启动 Zuul ,这时候,访问路径,需要添加一个 api 前缀,不然访问不了:

 

 

以上就是 Zuul 网关的路由功能!