一:Zuul简介
Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能。
二:准备工作
继续使用上一次我搭建的框架,博客地址:https://blog.csdn.net/SpringCYB/article/details/89675753
三:搭建Zuul
1.在上次我们搭建的框架上新建SpringBoot微服务 springcloud-zuul
选择服务:
2.在他的启动类上加上注解@EnableZuulProxy,开启zuul的功能:
package com.jk;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient
public class SpringcloudZuulApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudZuulApplication.class, args);
}
}
3.配置他的 application.yml 配置文件如下:
server:
port: 80
spring:
application:
name: springcloud-zuul
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
首先指定服务注册中心的地址为http://localhost:8761/eureka/,服务的端口为80,服务名为 springcloud-zuul
4.为了方便我就直接在消费者的controller写一个测试方法来测试了,就不在生产者写方法了:
//获取配置文件的端口号
@Value("${server.port}")
String port;
@GetMapping("testZuul")
public String testZuul(){
System.out.println("路由转发成功 ,端口号:" + port);
return "路由转发成功 ,端口号:" + port;
}
5.启动eureka和consumer项目以及zuul项目
设置并行启动
选择consumer项目,把Allow打上勾引就可以并行启动了
然后我们把consumer项目的端口号改一下,在启动一个consumer项目
这样我们就启动了两个consumer项目,但两个端口号是不一样的
6.使用PostMan进行测试:
我这样达到了一个负载均衡轮循的效果
完成!