SpringCloud 之Zuul的使用

269 阅读1分钟

何为Zuul

image.png

使用步骤

在之前的项目上进行

  1. 导入依赖
  2. 创建Zuul程序
  3. 使用注解@EnableZuulProxy(设置一个Zuul服务器端点并在其中安装一些反向代理过滤器,以便它可以将请求转发到后端服务器。可以通过配置或通过DiscoveryClient手动注册后端。)

正向代理代理的对象是客户端
反向代理代理的对象是服务端

  1. 编辑配置文件

样例

  • 创建项目导入依赖
    <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>SpringCloud-Api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
    </dependencies>
  • 启动类
@SpringBootApplication
@EnableZuulProxy//反向代理,可以访问多个服务提供者
public class GateWayZuul_9527 {
    public static void main(String[] args) {
        SpringApplication.run(GateWayZuul_9527.class,args);
    }
}
  • applicatoin.yaml
server:
  port: 9527
spring: # 服务名称
  application:
    name: springcloud-gateway-zuul

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: zuul9527.com  # 获取要在eureka中注册的该实例的唯一ID(在appName的范围内)。
    prefer-ip-address: true  # 表示在猜测主机名时,应优先使用服务器的IP地址,而不要使用OS报告的主机名。
zuul:
  routes: # map<String,Routes>
    mydept.serviceId: springcloud-provider-dept # key
    mydept.path: /mydept/**  # value
  ignored-services: "*" # 不考虑自动代理的服务名称集。 默认情况下,将代理发现客户端中的所有服务。
  • 修改hosts
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com
127.0.0.1 www.gatewayzuul.com

通过 www.gatewayzuul.com:9527/mydept/getA… 即可访问
直接访问了服务提供者,没有使用服务消费者

image.png