SpringCloud之Zuul路由网关

news2024/11/29 22:50:34

Zuul路由网关

    • 1. Zuul的概念
    • 2. Zuul的作用
    • 3. 案例

1. Zuul的概念


Zuul包含了对请求的路由(用来跳转的)和过滤两个最主要功能:

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

2. Zuul的作用


  • 路由
  • 过滤

3. 案例


  1. 新建springcloud-zuul模块,导入依赖

    <dependencies>
        <!--导入zuul依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--Hystrix依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--dashboard依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix-dashboar</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--Ribbon-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--Eureka-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--实体类+web-->
        <dependency>
            <groupId>com.haust</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>
    
  2. application.yml

    server:
      port: 9527
    
    spring:
      application:
        name: springcloud-zuul #微服务名称
    
    # eureka 注册中心配置
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
      instance: #实例的id
        instance-id: zuul9527.com
        prefer-ip-address: true # 显示ip
    
    info:
      app.name: haust.springcloud # 项目名称
      company.name: 西安文理学院 # 公司名称
    
    # zull 路由网关配置
    zuul:
      # 路由相关配置
      # 原来访问路由 eg:http://www.cspStudy.com:9527/springcloud-provider-dept/dept/get/1
      # zull路由配置后访问路由 eg:http://www.cspstudy.com:9527/haust/mydept/dept/get/1
      routes:
        mydept.serviceId: springcloud-provider-dept # eureka注册中心的服务提供方路由名称
        mydept.path: /mydept/** # 将eureka注册中心的服务提供方路由名称 改为自定义路由名称
      # 不能再使用这个路径访问了,*: 忽略,隐藏全部的服务名称~
      ignored-services: "*"
      # 设置公共的前缀
      prefix: /haust
    
  3. 主启动类

    @SpringBootApplication
    @EnableZuulProxy // 开启Zuul
    public class ZuulApplication_9527 {
    
       public static void main(String[] args) {
           SpringApplication.run(ZuulApplication_9527.class,args);
       }
    }
    
  4. 测试
    在这里插入图片描述

    可以看出 Zuul 路由网关被注册到 Eureka 注册中心了!

    在这里插入图片描述
    上图是没有经过 Zuul 路由网关配置时,服务接口访问的路由,可以看出直接调用微服务(服务提供方)名称去访问,这样不安全,不能将服务名称暴露!
     

    所有经过 Zuul 路由网关配置后,访问的路由为:

      在这里插入图片描述
     
    我们看到,微服务名称被替换并隐藏,换成了我们自定义的微服务名称 mydept ,同时加上了前缀 haust ,这样就做到了对路由访问的加密处理!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新年新故事 | Nice 兔 Meet U

各位伙伴新年好哇 比特熊又回来啦【比特熊故事汇2.0】23年开年第一场与大家一起认识“印象中”的不寻常开发人产品创新实践、工作 Mix 生活、反差感2023年1月12日19:00-20:00【比特熊故事汇2.0】新年想见你第一面Nice 兔 Meet U 比特熊兔年特别限定手办2023年兔年来到&#xff…

Ubuntu10.04编译libevent记录

目前有一个旧的程序 基于很老的ubuntu1004的系统做开发 很多新的C11什么的都用不了 之前 很多在ubuntu1804 上编译的so库 直接拿到1004上来用 提示报错 如下 没办法 只能重新在ubuntu 1004 上面编译了 记录下 下载libevent之后解压 直接执行./configure 提示报错如下图 …

kettle简单的ETL抽取同步两个库之间的数据

kettle下载安装 kettle下载&#xff0c;提取码为 1qyd 安装后&#xff0c;把连接数据库需要的jar包放到 data-integration\lib 目录下&#xff0c;到时候kettle才能正确连接数据库。 sqlserver需要的jar包&#xff0c;提取码为 6a6qmysql需要的jar包&#xff0c;提取码为 n8…

深入理解CAS

目录深入理解CASCAS中的引入什么是CAS&#xff1f;CAS原理——Unsafe类CAS优点CAS缺点ABA问题解决ABA问题深入理解CAS CAS中的引入 我们知道我们使用Volatile可以保证可见性&#xff0c;但不保证原子性&#xff0c;那么&#xff0c;如果我们不使用Lock锁和synchronized&#x…

机器学习之XGBoost模型学习

1.划分数据集函数train_test_split以及数据的加载&#xff1a; python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解_侯小啾的博客-CSDN博客_train_test_split 还有这篇文章&#xff0c;解析的清除&#xff1a; https://com…

2022 年度中国时序数据应用创新奖公布,涉及工业互联网、车联网等多个行业

随着新兴技术的快速发展&#xff0c;越来越多的企业开始以技术的融合创新来推动业务的数字化智能化转型&#xff0c;其中也诞生了很多成功的应用实践案例。2023 年 1 月 9 日&#xff0c;北京涛思数据科技有限公司(TAOS Data) 正式公布「2022 年度中国时序数据应用创新奖」获奖…

【路径规划】基于D星算法实现栅格地图机器人路径规划

目录算法介绍栅格地图代码运行效果算法介绍 A* 在静态路网中非常有效&#xff08;very efficient for static worlds&#xff09;&#xff0c;但不适于在动态路网&#xff0c;环境如权重等不断变化的动态环境下。 D是动态A&#xff08;D-Star,Dynamic A Star&#xff09; 卡内…

nodejs 如何实现自动化部署?

什么是自动化部署 我接触到的自动化部署概念最早是在 Vercel 上提供的&#xff0c;Vercel 可以提供和 github 联动的功能&#xff0c;通过和你自己的 github 上的某个库建立‘链接’&#xff0c;当你 commit 到 github 远程库时就可以自动部署&#xff0c;Vercel 会帮你完成以…

腾龙健康冲刺A股上市:计划募资10亿元,彭学文家族色彩浓厚

近日&#xff0c;广州腾龙健康实业股份有限公司&#xff08;下称“腾龙健康”&#xff09;预披露招股书&#xff0c;准备在深圳证券交易所主板上市。 本次冲刺上市&#xff0c;腾龙健康计划募资10.13亿元&#xff0c;其中4.09亿元用于水疗按摩池配件生产基地升级项目&#xff0…

数据可视化做出的个人年终总结报告,高颜值更高更具说服力

年终总结与个人业绩、晋升、加薪、离职或留任密切相关。聪明人利用年终报告来总结自己的成就和获得资源&#xff0c;领导者也可以从年终报告看出员工的成长和变化。例如我用可视化互动平台&#xff0c;智能分析做出的公司年终总结报告&#xff0c;高颜值高说服力&#xff0c;领…

Java异常的分类和注意点

异常体系结构 Error与Exception Error是程序无法处理的错误&#xff0c;它是由JVM产生和抛出的&#xff0c;比如OutOfMemoryError、ThreadDeath等。这些异常发生时&#xff0c;Java虚拟机&#xff08;JVM&#xff09;一般会选择线程终止。 Exception是程序本身可以处理的异常…

国内外BI数据分析工具做报表有多大区别?

有什么样的土壤就会早就什么样的产品。国内外企业对报表的不同需求导致了国内外BI数据分析工具做表格时的巨大差异&#xff0c;这也是很多时候国外BI数据分析工具在中国水土不服&#xff0c;遭遇口碑体验两极化的一大原因。下面就来简单看看国内外BI数据分析工具做表格时的不同…

【前端】Vue项目:旅游App-(10)city:以indexBar的形式显示数据

文章目录目标过程与代码分析数据并展示封装到一个组件添加indexBar样式修改优化tab栏的切换效果总代码修改或新增的文件common.csscity.vuecurrentGroupCity.vuemain.js目标 上一篇显示了服务器中的数据&#xff1a;【前端】Vue项目&#xff1a;旅游App-&#xff08;9&#xf…

(九)devops持续集成开发——jenkins流水线发布一个docker版的前端vue项目

前言 本节内容主要介绍如何使用jenkins的流水线发布一个docker版的前端项目。关于本节内容中使用到的jenkins的组件&#xff0c;请参考往期博客内容&#xff0c;自行安装。我们使用NodeJS完成前端项目的编译安装&#xff0c;使用ssh组件完成编译后工程的传输&#xff0c;以及d…

Allegro如何快速复制铜皮到其它层面的两种方法详细操作指导

Allegro如何快速复制铜皮到其它层面的两种方法详细操作指导 在做PCB设计的时候,通常需要复制一个做好的铜皮到其它层面,如下图 需要把L3层的铜皮复制到其它的内层 Allegro支持快速将铜皮拷贝到其它层,下面介绍两种方法,具体操作如下 方法一 选择Edit

快速生成100万条数据并存入mysql数据库(1):游戏人物数据

最近正在一直苦恼如果去获取更多的数据以用来进行后期的查询和进行测试&#xff0c;发现了Navicat这个不错的宝藏&#xff0c;他可以一下子根据你数据库里面创建的各种各样的字段和约束创建出各种各样你自己想要的大量数据&#xff0c;当然这些数据非真实数据而是虚拟数据&…

Swin Transformer原理详解篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;CV攻城狮入门VIT(vision transformer)之旅——近年超火的Transformer你再不了解就晚了&#xff01; CV攻城狮入门VIT(vision transformer)之旅——VIT原…

Nacos多级服务存储模型, NacosRule负载均衡规则入门

&#x1f473;我亲爱的各位大佬们好&#x1f618;&#x1f618;&#x1f618; ♨️本篇文章记录的为 NacosRule负载均衡规则 相关内容&#xff0c;适合在学Java的小白,帮助新手快速上手,也适合复习中&#xff0c;面试中的大佬&#x1f649;&#x1f649;&#x1f649;。 ♨️如…

【毕设必备】Python制作GUI学生管理系统,这把直接稳赢

前言 最近有个朋友说&#xff0c;能不能让我搞个学术上管理系统出来&#xff0c;想自己用用&#xff0c;好朋友嘛&#xff0c;那就搞个给他用用咯 之前还有个小朋友说&#xff0c;想弄个出来发给老师&#xff0c;让老师表扬一下自己哈哈哈 话说&#xff0c;这个还是可以做毕…

基于微信小程序的高校毕业论文管理系统小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…