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 网关的路由功能!