前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Spring Cloud】008-Zuul路由网关

【Spring Cloud】008-Zuul路由网关

作者头像
訾博ZiBo
发布2025-01-06 15:56:50
发布2025-01-06 15:56:50
570
举报
文章被收录于专栏:全栈开发工程师

一、概述

1、Zuul包含了对请求的路由过滤两个最主要的功能

其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而**过滤器功能则负责对请求的处理过程进行干预,**是实现请求校验,服务聚合等功能的基础。Zuul和Eureka进行整合, 将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。 注意:Zuu|服务最终还是会注册进Eureka; 提供:代理+路由+过滤三大功能!

二、代码演示

1、创建一个新的模块zuul-9527,并导入坐标

代码语言:javascript
复制
<?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>springcloud</artifactId>
        <groupId>com.zibo</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-zuul-9527</artifactId>
    <!--实体类 + web-->
    <dependencies>
        <!--zuul-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.4.7.RELEASE</version>
        </dependency>
        <!--Hystrix-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</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>
        <!--集成Ribbon-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
            <version>1.4.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.zibo</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.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

</project>

2、创建配置文件application.yaml

代码语言:javascript
复制
server:
  port: 9527
spring:
  application:
    name: springcloud-zuul
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: springcloud-zuul-9527 # 修改eureka的默认描述信息
    prefer-ip-address: true
info:
  app.name: com.zibo.springcloud
  company.name: zibo.com

3、hosts文件里面在加一个地址

代码语言:javascript
复制
# 原来的
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com
# 新增一个
127.0.0.1 www.zibo.com

4、写主启动类

代码语言:javascript
复制
package com.zibo.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableZuulProxy //开启
public class Zuul_9527 {
    public static void main(String[] args) {
        SpringApplication.run(Zuul_9527.class,args);
    }
}

5、运行测试

访问7001:
访问8001:
通过路由访问8001:

http://www.zibo.com:9527/springcloud-provider-dept/dept/get/1

6、隐藏微服务的名字

修改9527的配置文件:
代码语言:javascript
复制
server:
  port: 9527
spring:
  application:
    name: springcloud-zuul
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: springcloud-zuul-9527 # 修改eureka的默认描述信息
    prefer-ip-address: true
info:
  app.name: com.zibo.springcloud
  company.name: zibo.com
zuul:
  routes:
    mydept.serviceId: springcloud-provider-dept
    mydept.path: /mydept/**
重启9527,然后访问:

此时,通过http://www.zibo.com:9527/springcloud-provider-dept/dept/get/1也可以访问,现在我想把它关闭了,使得通过springcloud-provider-dept不能访问;

修改配置文件:
代码语言:javascript
复制
server:
  port: 9527
spring:
  application:
    name: springcloud-zuul
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: springcloud-zuul-9527 # 修改eureka的默认描述信息
    prefer-ip-address: true
info:
  app.name: com.zibo.springcloud
  company.name: zibo.com
zuul:
  routes:
    mydept.serviceId: springcloud-provider-dept
    mydept.path: /mydept/**
  ignored-services: springcloud-provider-dept # 使得不能通过springcloud-provider-dept访问
  # ignored-services: "*" # 忽略所有访问路径
运行测试:
附加:

ignored-services:"*" # 忽略所有访问路径

prefix: /zibo:# 设置公共的访问前缀;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
    • 1、Zuul包含了对请求的路由和过滤两个最主要的功能
    • 二、代码演示
      • 1、创建一个新的模块zuul-9527,并导入坐标
        • 2、创建配置文件application.yaml
          • 3、hosts文件里面在加一个地址
            • 4、写主启动类
              • 5、运行测试
                • 访问7001:
                • 访问8001:
                • 通过路由访问8001:
              • 6、隐藏微服务的名字
                • 修改9527的配置文件:
                • 重启9527,然后访问:
                • 修改配置文件:
                • 运行测试:
                • 附加:
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档