一、博客背景
基于前面的一些列博客,我们现在有两种微服务,分别是数据微服务dataserver和视图微服务feignserver。他们有可能放在不同的 ip 地址上,有可能是不同的端口。为了访问他们,就需要记录这些地址和端口。 而地址和端口都可能会变化,这就增加了访问者的负担。所以这个时候,我们就可以用网关来解决这个问题。这篇博客就是基本的讲解下zuul的使用。
二、新建子模块
三、修改pom文件
引入相关依赖
<dependencies>
<!--引入eureka-client依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入zuul网关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
</dependencies>
四、新建启动类
启动类上需要加上@EnableZuulProxy注解
package tp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
/**
* @Package: com.tp
* @ClassName: ZuulApplication
* @Author: tanp
* @Description: ${description}
* @Date: 2020/7/22 17:25
*/
@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class,args);
}
}
五、新建application.yml文件
eureka:
client:
service-url:
defaultZone: http://localhost:8689/eureka/
spring:
application:
name: zuul-server
server:
port: 8683
zuul:
routes:
servers-a:
#映射访问服务的地址
path: /data-server/**
#服务名
serviceId: DATA-SERVER
servers-b:
path: /feign-server/**
serviceId: FEIGN-SERVER
六、启动服务
可以发现注册中心中,已经有zuulserver服务了,下面我直接通过网关服务调用接口查看数据
访问:http://127.0.0.1:8683/feign-server/getdatas
可以得到
访问:http://127.0.0.1:8683/data-server/datas,可以得到
可以发现经过zuul网关服务调用其他服务,我们只需要记住zuul网关服务的ip、端口号、被调用服务的服务名和调用方法即可。当服务配置很多时,记不住各个服务的IP,端口使用网关服务即可大大省事