前面博文我们通过rest+Ribbon和Feign的方式实现了对生产者的消费(说白了就是转手调用一下server接口),顺带看了一下负载均衡效果。但是我们发现两种方式调用接口的时候如果想调用不同的生产者(application.name或者说serviceID)是需要写死在代码里的,没有实现方便的路由转发功能,另外没有做过滤器校验等功能,当然你可以自己DIY进去。今天介绍一个springCloud支持的方便的路由网关框架Zuul。
下面主要学习实践一下Zuul项目的搭建、路由转发功能、过滤器功能、负载均衡功能。
源码百度网盘备份:链接:https://pan.baidu.com/s/16p_4VtqMdw6xF1HN_HzvGg 密码:m4cg
一、创建一个zuul项目
springboot工程我们已经创建了好几次了,就不赘述了,直接上截图。
我又放到testSpringCloud这个根路径下了,主要是想用这个路径下的父pom.xml文件,虽然里面也没写什么有用的东西,但是养成版本统一控制的习惯还是好的。
修改zuul项目的pom.xml文件
引入spring-cloud-starter-netflix-eureka-client和spring-cloud-starter-netflix-zuul依赖,spring-boot-starter-web这个依赖基本上我这几个项目里都有,如果嫌麻烦的话可以放到父pom.xml里,更懒的话那就直接复制粘贴我的pom文件吧。父pom.xml文件到我前面的博文里找。没有父pom文件的,parent标签会报错哦。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.testzuul</groupId>
<artifactId>zuul</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>zuul</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>