09-SpringCloud 之 Zuul

什么是 Zuul

Zuul 即:服务网关,它包含了对请求的路由过滤两个主要功能

Zuul 的使用

  1. 新建 Module:spring-cloud-zuul-9527

  2. 编写 pom 引入依赖

    pom.xml
    <?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">
        <parent>
            <artifactId>spring-cloud-netflix</artifactId>
            <groupId>com.kaishen</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>spring-cloud-zuul-9527</artifactId>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
        </properties>
    
        <!-- 引入该模块所需依赖 -->
        <dependencies>
            <!-- Eureka Client -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
            </dependency>
    
            <!-- zuul -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-zuul</artifactId>
            </dependency>
        </dependencies>
    </project>
    
  3. 编写 application.yml 配置路由及拦截
    Zuul 也需要注册到 Eureka

    application.yml
    server:
      port: 9527
    
    # Spring 配置
    spring:
      application:
        name: spring-cloud-zuul
    
    # Eureka 配置
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
      instance:
        instance-id: www.zuul9527.com # 服务描述信息
        prefer-ip-address: true # 显示 ip 地址
    
    # 监控信息
    info:
      app.name: kaishen-spring-cloud-zuul9527
    
    # Zuul 配置
    zuul:
      routes:
        mydept.serviceId: spring-cloud-provider-dept # 微服务名,对 9527 的访问将会被路由到该服务
        mydept.path: /mydept/** # url 地址拦截
      ignored-services: spring-cloud-provider-dept # 忽略,即不能使用微服务名进行访问 ("*" 表示隐藏所有微服务)
      prefix: /kaiye/ # 访问前缀
    
  4. 编写启动类,开启注解

    ZuulApplication9527
    package com.kaishen;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
    
    /**
     * 路由网关启动类
     * @author : toby
     * Create in 17:46 2022/5/9
     */
    @SpringBootApplication
    @EnableZuulProxy
    public class ZuulApplication9527 {
    
        public static void main(String[] args) {
            SpringApplication.run(ZuulApplication9527.class, args);
        }
    }
    
  5. 访问:
    在 C:\Windows\System32\drivers\etc\hosts 中配置主机映射,即可使用 http://www.kaishen.com:9527/kaiye/mydept/dept/get/1 访问后端服务

posted @   kaishen  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示