从0开始搭建springcloud---Zuul网关

梦里梦外; 2024-04-18 11:53 136阅读 0赞

1. 什么是网关

API Gateway, 是系统唯一对外的入口, 介于客户端和服务器端之间的中间层,处理非业务功能提供路由请求、鉴权、监控、缓存限流等功能
在这里插入图片描述

主流的网关:
zuul:是Netflix开源的微服务网关,和Eureka,Ribbon,Hystrix等组件配合使用,Zuul 2.0比1.0的性能提高很多
kong: 由Mashape公司开源的,基于Nginx的API gateway
nginx+lua:是一个高性能的HTTP和反向代理服务器,lua是脚本语言,让Nginx执行Lua脚本,并且高并发、非阻塞的处理各种请求

2. 代码配置

2.1 pom.xml

在这里插入图片描述

2.2 启动类添加注解

启动类添加注解@EnableZuulProxy
在这里插入图片描述

2.3 启动zuul并访问

ip:zuul的端口/服务的名词/接口
在这里插入图片描述

2.4 配置访问路由

在2.3中我们通过服务的application.name的名字进行访问,我们在zuul可以进行路由名称配置
在这里插入图片描述

这样的话再访问movie服务时的访问路径为http://192.168.1.47:9000/apimovie/movie/2
在这里插入图片描述

2.5 配置忽略服务

在这里插入图片描述

2.6 配置请求头的值为空的问题

我们看zuul的源码的时候会发现zuul忽略了Cookie,Set-Cookie, Authorization这三个的值。
在这里插入图片描述
在这里插入图片描述

我们可以在yml文件设置这个的值为空,就会把zuul的默认的三个值会覆盖,表示不会忽略任何请求的值。配置如下
值设置为空就好

  1. zuul:
  2. sensitive-headers:

3. zuul拦截器

  1. 自定义一个类继承ZuulFilter
  2. 重写里头的方法
  3. 在类顶部加注解,@Component,让Spring扫描
    在这里插入图片描述

Type:定义filter的类别,用字符串代表,有四种标准类别,代表了Request的生命周期。filterType()返回值代表该filter的Type。

PRE: 该类型的filters在Request routing到源web-service之前执行。用来实现Authentication、选择源服务地址等
ROUTING:该类型的filters用于把Request routing到源web-service,源web-service是实现业务逻辑的服务。这里使用HttpClient请求web-service。
POST:该类型的filters在ROUTING返回Response后执行。用来实现对Response结果进行修改,收集统计数据以及把Response传输会客户端。
ERROR:上面三个过程中任何一个出现错误都交由ERROR类型的filters进行处理。

下边是具体配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 网关限流

微服务开发中有时需要对API做限流保护,防止网络攻击,比如做一个短信验证码API,限制客户端的请求速率能在一定程度上抵御短信轰炸攻击,降低损失。

使用zuul的拦截器配置限流
在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,136人围观)

还没有评论,来说两句吧...

相关阅读

    相关 0开始springcloud---Feign

    1. 简介 在前面的文章中可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,...

    相关 0开始Alpaca

    前言 接上篇,由于公司业务调整,老板让所有的开发开始学python,并一人分配了一个语言模型,要求进行自己尝试搭建部署,而分到我的是Alpaca。 于是Java还没写