iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringCloud微服务网关Zuul的作用是什么
  • 439
分享到

SpringCloud微服务网关Zuul的作用是什么

2023-07-02 19:07:43 439人浏览 八月长安
摘要

这篇文章主要介绍“SpringCloud微服务网关Zuul的作用是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springCloud微服务网关Zuul的作用是什么”文章能帮助大家解决问题。网关

这篇文章主要介绍“SpringCloud微服务网关Zuul的作用是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springCloud微服务网关Zuul的作用是什么”文章能帮助大家解决问题。

    网关的作用

    微服务架构中,服务实例的地址可能经常会发生变化,所以我们不能直接将服务的地址暴露出来。如果每一个微服务都直接暴露接口,会导致一系列的问题,比如调用过于复杂,涉及到账户、权限不能统一处理等。另外基于高内聚低耦合的设计准则来讲,我们也应该将内部系统和外部系统做切割。

    因此,这时就需要有一个独立的组件来处理外部的请求,这个组件就是服务网关。服务网关就是为了简化前端的调用逻辑,通常情况下也会实现相关的认证逻辑,根据外部不同的请求响应不同的数据,从而简化内外部系统之间调用的复杂度。

    SpringCloud微服务网关Zuul的作用是什么

    服务网关负责服务请求路由、组合及协议转换。客户端的所有请求都首先经过服务网关,然后由它将请求路由到合适的微服务。服务网关经常会通过调用多个微服务并合并结果来处理一个请求,它可以在系统外部与内部响应之间友好的转换。

    本文将先着重介绍Zuul组件。

    spring cloud 网关组件Zuul介绍

    Zuul 是 Netflix 公司开源的产品,被称为第一代网关,也是 Spring Cloud 前几个版本默认使用的一款提供动态路由微服务网关组件。Zuul 接收所有外来请求,并将请求转发到对应的后端服务。作为一个前置服务,Zuul 旨在实现动态路由,监控,弹性和安全性等功能。

    Zuul 提供了不同类型的 filter 用于处理请求,这些 filter 可以让我们实现以下功能:

    • 权限控制和安全性:可以识别认证需要的信息和拒绝不满足条件的请求。

    • 监控:与边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。

    • 动态路由:根据需要动态地路由请求到后台的不同集群

    • 压力测试:逐渐增加指向集群的流量,以了解性能。

    • 负载均衡:为每一种负载类型分配对应容量,并弃用超出限定值的请求

    • 静态资源处理:直接在 zuul 处理静态资源的响应,从而避免其转发到内部集群。

    Zuul网关实战

    之前的介绍中,我们启动了注册中心reGIStry,dms服务,和app服务,请求时,直接调用了app服务的接口,app服务又调用了dms服务:

    SpringCloud微服务网关Zuul的作用是什么

    加上网关服务之后,就会变成如下:

    SpringCloud微服务网关Zuul的作用是什么

    接下来,我们创建zuul服务:

    1、创建服务

    创建子模块zuul,pom.xml引入eureka-client 和zuul的依赖

    <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>        <!-- feign -->        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-openfeign</artifactId>        </dependency>        <!-- zuul路由 -->        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>javax.servlet-api</artifactId>            <version>3.1.0</version>        </dependency>

    2、创建配置文件

    server:
      port: 8004
    spring:
      application:
        name: zuul

    eureka:
      client:
        service-url:
          defaultZone: Http://localhost:8001/eureka/
    feign:
      hystrix:
        enabled: true
    zuul:
      routes:
        app: #活动
          path: /app/** #配置请求URL的请求规则
          serviceId: app #指定Eureka注册中心中的服务id
        dms: #活动
          path: /dms/** #配置请求URL的请求规则
          serviceId: dms #指定Eureka注册中心中的服务id
    logging:
      pattern:
        console: '%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'

    3、创建Zuul过滤器

    public class MyZuulFilter extends ZuulFilter {//    pre :可以在请求被路由之前调用//    route :在路由请求时候被调用//    post :在route和error过滤器之后被调用//    error :处理请求时发生错误时被调用    @Override    public String filterType() {        return "pre";// 前置过滤器    }    //通过int值来定义过滤器的执行顺序,优先级为0,数字越大,优先级越低    @Override    public int filterOrder() {        return 0;    }    //返回一个boolean类型来判断该过滤器是否要执行,所以通过此函数可实现过滤器的开关    @Override    public boolean shouldFilter() {        return true;//此处为true,说明需要过滤    }    //过滤器的具体逻辑。    @Override    public Object run() throws ZuulException {        // 获取上下文        RequestContext currentContext = RequestContext.getCurrentContext();        httpservletRequest request = currentContext.getRequest();        String accessToken = request.getParameter("accessToken");        if (StringUtils.isEmpty(accessToken)) {            //setSendZuulResponse(false)令zuul过滤该请求,不进行路由            currentContext.setSendZuulResponse(false);            //设置返回的错误码            currentContext.setResponseStatusCode(401);            currentContext.setResponseBody("AccessToken is null");            return null;        }        System.out.println("获取到AccessToken为:"+accessToken);        // 否则正常执行业务逻辑.....        return null;    }}

    4、编写启动类

    注意增加@EnableZuulProxy注解

    @EnableZuulProxy@EnableEurekaClient@SpringBootApplicationpublic class ZuulApplication {    public static void main(String[] args) {        SpringApplication.run(ZuulApplication.class, args);    }}

    5、启动验证

    这个时候,我们将直接请求app的接口地址,改成网关zuul的地址和端口:http://localhost:8004/app/index

    SpringCloud微服务网关Zuul的作用是什么

    关于“SprinGCloud微服务网关Zuul的作用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: SpringCloud微服务网关Zuul的作用是什么

    本文链接: https://www.lsjlt.com/news/343755.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • SpringCloud微服务网关Zuul的作用是什么
      这篇文章主要介绍“SpringCloud微服务网关Zuul的作用是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringCloud微服务网关Zuul的作用是什么”文章能帮助大家解决问题。网关...
      99+
      2023-07-02
    • SpringCloud超详细讲解微服务网关Zuul
      目录网关的作用Spring Cloud 网关组件Zuul介绍Zuul网关实战1、创建服务2、创建配置文件3、创建Zuul过滤器4、编写启动类5、启动验证总结网关的作用 微服务架构中,...
      99+
      2022-11-13
    • SpringCloud超详细讲解微服务网关Zuul基础
      目录一、Zuul的简介1、Zuul是怎么工作的2、Zuul能干嘛二、Zuul的使用1、配置Pom.xml2、配置Application.yml3、撰写启动类4、效果图三、学会Spri...
      99+
      2022-11-13
      SpringCloud Zuul SpringCloud 微服务网关 Zuul
    • SpringCloud网关(Zuul)如何给多个微服务之间传递共享参数
      目录1、使用场景解决方案1解决方案22、代码实现3、成果展现4、总结1、使用场景 因为最近项目需要国际化,但是以前国际化的语言切换是放置在未进行微服务化之前的一个独立的SpringB...
      99+
      2022-11-13
    • SpringCloud分布式微服务云架构 第五篇: 路由网关(zuul)(Finchley版本)
      SpringCloud分布式微服务云架构 第五篇: 路由网关(zuul)(Finchley版本)在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,了解springcloud架构...
      99+
      2023-06-05
    • SpringCloud微服务网关Gateway怎么创建
      这篇文章主要介绍“SpringCloud微服务网关Gateway怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringCloud微服务网关Gateway怎么创建”文章能帮助大家解决问题。...
      99+
      2023-07-02
    • SpringCloud Gateway服务网关的部署与使用的方法是什么
      这篇文章主要介绍“SpringCloud Gateway服务网关的部署与使用的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringCloud Gateway服务网...
      99+
      2023-07-05
    • Spring Cloud中的API网关服务Zuul怎么配置
      这篇文章主要讲解了“Spring Cloud中的API网关服务Zuul怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud中的API网关服务Zuul怎么配置”吧!构...
      99+
      2023-06-19
    • SpringCloud服务网关Gateway的使用教程详解
      目录Gateway什么是Gateway什么是api网关网关的三个核心概念路由(Route)断言(Predicate)过滤(Filter)gateway的工作流程如何使用Gateway...
      99+
      2022-11-13
    • springcloud负载均衡的作用是什么
      Spring Cloud负载均衡的作用是帮助应用程序在多个服务提供者之间分配负载,以提高系统的可扩展性和可靠性。具体来说,Sprin...
      99+
      2023-09-01
      springcloud 负载均衡
    • .Net Core微服务之EventBus的作用是什么
      在.NET Core微服务架构中,EventBus(事件总线)的作用是实现微服务之间的解耦和消息传递。它允许微服务之间通过发送和订阅...
      99+
      2023-09-21
      .Net EventBus 微服务
    • SpringCloud Feign的作用是什么及怎么使用
      本篇内容主要讲解“SpringCloud Feign的作用是什么及怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringCloud Feign的作用是什么及怎么使...
      99+
      2023-07-04
    • SpringCloud怎么实现服务调用feign、熔断hystrix和网关gateway
      本文小编为大家详细介绍“SpringCloud怎么实现服务调用feign、熔断hystrix和网关gateway”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringCloud怎么实现服务调用feign、熔断hystrix和网关gat...
      99+
      2023-07-05
    • 微信小程序云服务器的作用是什么
      微信小程序云服务器的作用是为开发者提供稳定、可靠的云端服务,使得小程序可以在云端进行数据存储、计算和功能扩展等操作。具体来说,微信小...
      99+
      2023-08-17
      微信小程序 云服务器
    • 微服务的APM是什么
      本篇内容介绍了“微服务的APM是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!### 1. APM?APM (Application P...
      99+
      2023-06-19
    • SpringCloud服务接口调用OpenFeign及使用的方法是什么
      这篇“SpringCloud服务接口调用OpenFeign及使用的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“S...
      99+
      2023-07-05
    • 云服务器公网和内网是什么作用
      云服务器公网和内网的作用:公网IP:用来连接公网网络,可以使公网用户访问你的服务器。内网IP:如果您帐号下有多台网站服务器,使用内网IP地址进行不同服务器间数据通信传输,内网传输速度不受限制。对于公网用户来说是访问不了你的服务器。...
      99+
      2022-10-21
    • golang微服务指的是什么
      这篇文章主要介绍“golang微服务指的是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“golang微服务指的是什么”文章能帮助大家解决问题。在golang中,微服务(或微服务架构)是一种软件架...
      99+
      2023-07-04
    • 服务器对网站优化的作用是什么
      这篇文章将为大家详细讲解有关服务器对网站优化的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对用户来说看,能够在最短的时间内看到企业的网站,才会有接下去的故事,而对搜索引擎而言,网...
      99+
      2023-06-07
    • 网页代理服务器ip的作用是什么
      这篇文章主要讲解了“网页代理服务器ip的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“网页代理服务器ip的作用是什么”吧!伴随着5G网络的普及和千兆带宽的普及,网络已经进入一个全新...
      99+
      2023-06-20
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作