Zuul网关_zuul网关的作用

Zuul网关_zuul网关的作用首先我们要知道为什么要使用网关呢?先复习一下之前说过的微服务的知识,最开始我们运行微服务就是三个重要部分1.服务端2.消费端3.注册中心首先用户在消费端发出消息,这个时候就需要负载均衡器Ribbon去调配服务,而且要使用到Hystrix去保护服务器,以免访问过多出现服务器过载,及时进行服务降级,然后我们通过消费端访问服务端的方法在最开始的时候使用的是RestTemplate去访问,当时是直接调配这个方法去访问,现在改进了一下,有Feign的出现,把Ribbon,Hystrix,还有RestTemp

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

首先我们要知道为什么要使用网关呢?

先复习一下之前说过的微服务的知识,最开始我们运行微服务就是三个重要部分
1.服务端
2.消费端
3.注册中心

首先用户在消费端发出消息,这个时候就需要负载均衡器Ribbon去调配服务,而且要使用到Hystrix去保护服务器,以免访问过多出现服务器过载,及时进行服务降级,然后我们通过消费端访问服务端的方法在最开始的时候使用的是RestTemplate去访问,当时是直接调配这个方法去访问,现在改进了一下,有Feign的出现,把Ribbon,Hystrix,还有RestTemplate都包含了,所以我们可以直接用Feign去访问服务端,但是我的服务器不可能说随便谁都可以访问,至少要经过登录验证才可以访问,以前我们是在controller里面直接编写登录方法,但是现在如果我们在一个大平台比如滴滴平台上,不可能说每一个消费端都去编写一个controller,这样代码量太多而且冗余,占用内存量大,因此,网关的出现解决了这个问题。

zuul网关的工作示意图:
在这里插入图片描述
网关在负载均衡器那边,网关是由什么集成的呢?首先我们要知道,一个网关它是不是也要调用用户管理,对吧?所以它也是需要负载均衡器Ribbon去调用管理工具,还有就是网关如果出现了故障或者出现了访问量过多导致系统过载,那么网关也是需要熔断和服务降级的,所以网关也需要Hyrix去保护它。蓝色部分的是外层服务,外层服务收到请求之后会调用内层服务,这个调用的组件就是Feign,然后一切都是在注册中心中进行,

如果不使用网关会造成什么影响呢?

不使用网关的话,我们将会面临两个问题:

1.用户不需要经过网关,也不需要权限管理,直接就可以访问我们的微服务
用户不用经过审核,也就是不需要走登录流程,直接就可以访问你的微服务,这样听起来是不是挺可怕,因为你的各种用户的信息,用户管理,购物车,甚至下单地址什么的信息都可以随便被别人访问,这就对用户的隐私造成很大的破坏,导致了用户没办法保障自己的隐私问题。
2.代码的冗余
为什么代码会冗余呢?如果没有网关,我们的每一个微服务是不是要自己建一个controller的权限对吧,那如果我们在每个微服务那里建立一个访问权限的话,这个代码量就很大,你很难保证你有多少个微服务,比如电商网站,你不仅需要用户管理微服务,还需要购物车,商品详情等等微服务,每个都配置一个访问权限,这个量就很大了,而且最重要的是,这还只是对外的权限管理配置,如果微服务自己之间也是不是也需要配置呀?那么我们不可能又要在每个微服务的controller那里再加上对其他微服务的权限管理,这样一来代码量太大了,造成代码冗余。

因此服务网关的作用非同小可,服务网关做的功能有三个:
1.路由
2.负载均衡
3.权限控制

我们可以通过网关向外界提供一个Rest API,这里说一下什么是Rest API呢?就拿登录界面来说,API就是你所看到的登陆界面的前端部分,而Rest就是实现这些前端部分的方法,因此网关对外提供一个Rest API其实也就是提供一个登录页面让外界进行登录验证,才能访问微服务。

zuul说白了就是一序列的过滤器,用来过滤各种信息

总结一下,zuul有这些功能:
1.身份验证。可以进行对用户的身份验证
2.审核。也可以对用户传来的信息进行审核与排查。
3.路由。根据不同的地址路由到不同微服务,,比如用户管理这个微服务的controller写的地址师order开头的,那用户就可以通过输入order去访问用户管理页面的这个微服务。
4.压力测试。因为所有的请求都会经过zuul网关,所以zuul就可以趁这个机会进行测试请求的数量多不多,而且得到相对应的数据,来决定是否需要运行。
5.负载均衡。也就是分配到微服务的实例进行运行
6.静态响应。静态响应就是如果是访问一些静态网页的话可以直接在zuul网关处进行访问了,就可以不进入内部资源里面进行访问了。

以下就是一个完整的服务请求过程
在这里插入图片描述
无论是电脑端还是手机端发送过来的请求都会经过zuul网关的处理,如果进行练额身份验证和审查通过后,就可以直接访问里面的服务,如果不通过,将会被拦截在外面。然后访问服务就是直接向微服务发送请求,微服务再在Eureka注册中心进行注册,然后拉取相关的服务进行对用户的服务

具体如果要实现什么服务,Eurka会通过具体的地址去调用

还有一点需要说明一下,就是路由和负载均衡的区别:

1.路由
路由是用户请求访问网关的时候,网关根据用户输入的地址进行调取相关的微服务,(因为用户地址和微服务地址一样,所以被调用),也就是顺着路径找到家。
2.负载均衡
要理解负载均衡,首先你要知道的是,微服务由三个组件组成,服务端,注册中心,消费端,你在调取一个微服务时,相当于消费端向注册中心发送了一个请求,那有很多个服务端,我们该调用哪一个服务端呢,这个问题就交由Ribbon去解决,Ribbon会帮你随机调用一个服务端进行服务,这就是负载均衡。就像滴滴平台,你向滴滴平台发送了打车请求,滴滴平台就相当于一个注册中心,你发送请求后,滴滴平台的Ribbon负载均衡器就会进行功能,优先给你安排服务等级比较高的滴滴师傅。以上便是负载均衡的介绍

好接下来让我们进行实操

首先创建一个zuul模块

在这里插入图片描述
在这里插入图片描述
只选择这个即可

我们配置组件还是要记得那三个步骤:
1.配置启动器
2.覆盖配置
3.添加到引导类

然而我们在配置上图选项后,它已经自动帮我们配置了启动器依赖
然而我们只需要在yml中去配置就可以了

在这里插入图片描述
配置端口号,配置微服务名字

接下来我们需要配置引导类
在这里插入图片描述
这个便是zuul的组件配置,配置在引导类这边

我们接下来还要对yml进行配置
在这里插入图片描述
这个配置的意思就是网关的路径配置,routes后面写的是服务端或者消费端的微服务名字
然后path配置的就是网址路径
url配置的也是网址

如果引导类没有被我们加载进来可以手动加载进来
在这里插入图片描述
这里已经配置好了,先详细说明一下

在这里插入图片描述
这个path和url是什么含义呢?
我先从操作上跟你们描述一遍它的作用,我们上面配置的端口号是10010嘛,所以如果我们去访问网址,localhost:10010/service-provider/user/2,(解释一下后面为什么是user/2,因为我们在服务端配置的controller的地址访问就是user/2这样子去访问的),然后网页会跳转到这个网址:
http://localhost:8082/user/2

看懂了吧?也就是说你只要输入了端口号还有service-provider还有相关controller配置地址和id,就可以访问到http://localhost:8082/,这就是网关的作用,帮助你进行跳转。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170621.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月15日 下午10:46
下一篇 2022年8月15日 下午10:46


相关推荐

  • 深入浅出Python——Python基础语法全解

    深入浅出Python——Python基础语法全解前言:Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。文章目录一、Python简介1.了解Python2.Python介绍3.Python特点4.Python发展历史5.Python版本二、Python解释器1.解释器的作用2.解释器的安装三、PyCharm安装与使用1.PyCharm的作用2.PyCharm安装与使用四、注释1.注释的作用2.注释的分类及语法五、变量1.变量的作用2.定义变量2.1标识符2.2命名习惯2.3使用变量2.4认识

    2022年6月24日
    24
  • python升级版本命令-CentOS7 下升级Python版本

    python升级版本命令-CentOS7 下升级Python版本来博客园的第一篇博客 以后要坚持养成记录 分享的习惯啊 这样生活才会有痕迹 服务器版本 CentOS7 364 位旧 Python 版本 2 7 5 新 Python 版本 3 8 0 说明 本次配置使用 root 用户进行操作 故在代码中未使用 sudo 语句 请使用非 root 用户留意 1 切换工作目录至 usr local 在 Linux 系统下 路径 usr local 相当于 C ProgremFiles 通常安

    2026年3月19日
    2
  • linux 远程桌面

    linux 远程桌面文章目录 linux 远程桌面服务端 tigervnc 设置 VNC 设置开机自启 VNC 设置开机自启修改防火墙配置客户端使用 MobaXterm 连接 linux 远程桌面使用 tigervnc 实现远程桌面服务端 tigervnc 设置 1 安装 tigervncRedH 系列 yuminstallti serverDebian 系列 sudoapt getinstallti 运行 tigervncvncs 1 参数是端口号

    2026年3月20日
    2
  • markdown 生成 word或者pdf,包括一些模板的使用

    markdown 生成 word或者pdf,包括一些模板的使用

    2026年3月16日
    2
  • tlb表项_谷物对人体的好处

    tlb表项_谷物对人体的好处TLB:TranslationLookasideBuffer.根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。当处理器要在主内存寻址时,不是直接在内存的物理地址里查找的,而是通过一组虚拟地址转换到主内存的物理地址,TLB就是负责将虚拟内存地址翻译成实际的物理内存地址,而CPU寻址时会优先在TLB中进行寻址。处理器的性能就和寻址的命中率有很大的关系。映射机制必须使一个程序能断言某个地址在其自己的进程空间或地址空间

    2025年5月28日
    7
  • 跟我一起复制一款基于ESP-Drone无人机控制板[通俗易懂]

    跟我一起复制一款基于ESP-Drone无人机控制板[通俗易懂]1、ESP-Drone无人机项目简介ESP无人机是基于ESPRESIFESP32/ESP32-S2Wi-Fi芯片的开源解决方案,可通过Wi-Fi连接到手机应用程序或游戏控制台。ESP无人机具有简单的硬件、清晰和可扩展的代码体系结构,因此该项目可用作为STEAM(科学、技术、工程、数学)的教育平台或其它的控制领域。它的主要代码从CrazyFle开源项目移植而来,采用了GPL3.0协议。关于ESP-Drone更多的信息,请访问:https://hub.fastgit.org/espressi

    2022年8月15日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号