zuul 网关的用途_Zuul网关

zuul 网关的用途_Zuul网关Zuul的主要作用:1.路由,进行请求转发。2.鉴权,进行身份认证(安全)。3.限流,限制访问的数量,保证服务器的稳定。除此之外还有以下作用4.负载均衡。5.压力测试。6.监控1.Zuul简单使用1.添加依赖org.springframework.cloudspring-cloud-starter-netflix-zuul2.添加@EnableZuulProxy注解@EnableZuulProx…

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

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

Zuul的主要作用:

1.路由,进行请求转发。

2.鉴权,进行身份认证(安全)。

3.限流,限制访问的数量,保证服务器的稳定。

除此之外还有以下作用

4.负载均衡。

5.压力测试。

6.监控

1.Zuul简单使用

1.添加依赖

org.springframework.cloud

spring-cloud-starter-netflix-zuul

2.添加@EnableZuulProxy 注解

@EnableZuulProxy

@SpringBootApplication

@EnableDiscoveryClient

public class GatewayApplication {

public static void main(String[] args) {

SpringApplication.run(GatewayApplication.class,args);

}

}

3.配置路由地址

a.配置写死的地址

zuul:

routes:

user:

path: /user/**

url: http://127.0.0.1:8083

b.结合eureka,动态拉取服务列表,根据服务id找到对应的url。

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka

zuul:

routes:

user:

path: /user-service/**

serviceId: user-service

c.简化版配置,routes的key是服务id,值是映射的地址

zuul:

routes:

user-service: /user-service/**

d.Zuul默认为从eureka拉取服务列表中的所有服务配置了key=服务名,值为 /服务名/** 的routes。也就是说即使不做任何配置,也可以匹配服务名进行访问服务。

e.某些服务不需要Zuul的默认配置,做以下配置做过滤。

ignored-services:

– customer-service

f.若想去除路由前缀,可做以下配置。strip-prefix: false

zuul:

routes:

#user-service: /user-service/**

user:

path: /user/**

serviceId: user-service

strip-prefix: false

2.ZuulFilter简介

Zuul最重要的一个功能是实现请求的鉴权,而Zuul实现的方式是通过过滤器,ZuulFilter则是这些过滤器的顶级父类,其中有四个最重要的方法。

//过滤器类型

public abstract String filterType();

//过滤器优先级

public abstract int filterOrder();

//是否启用过滤器

boolean shouldFilter();

//过滤逻辑

Object run() throws ZuulException;

其中,Zuul的过滤器类型主要有四种,也代表着ZuulFilter的生命周期

pre:请求在路由被执行之前

routing:在路由请求时调用

post:在routing和error过滤器之后调用

error:处理请求时发生错误时调用

zuul 网关的用途_Zuul网关

自定义一个过滤器,程式如下

@Component

public class LoginFilter extends ZuulFilter {

//过滤器类型,分为pre(处理请求头,身份验证等),routing(路由转发),post(路由转发后的处理),error(处理请求时发生错误时调用)

@Override

public String filterType() {

return FilterConstants.PRE_TYPE;

}

//优先级

@Override

public int filterOrder() {

return FilterConstants.SERVLET_DETECTION_FILTER_ORDER-1;

}

//是否启动过滤拦截

@Override

public boolean shouldFilter() {

return true;

}

//拦截的逻辑

@Override

public Object run() throws ZuulException {

RequestContext context = RequestContext.getCurrentContext();

HttpServletRequest request =context.getRequest();

String token = request.getParameter(“access-token”);

if (StringUtils.isBlank(token)){

context.setSendZuulResponse(false);

context.setResponseStatusCode(HttpStatus.FORBIDDEN.value());

}

return null;

}

}

3. Zuul的负载均衡和熔断机制

Zuul集成了Ribbon和Hystrix,只需要做简单的配置,就可以实现负载均衡和熔断机制。需要注意的是,hystrix的超时时长要大于RIbbon的超时时长。另外,Zuul中Ribbon的超时时长计算公式如下

ribbonTimeout = (ribbonReadTimeout + ribbonConnectTimeout) * (maxAutoRetries + 1) * (maxAutoRetriesNextServer + 1);

hystrix:

command:

default:

execution:

isolation:

thread:

timeoutInMilliseconds: 6000

ribbon:

ConnectionTimeOut: 500

ReadTimeOut: 2000

4.Zuul的高可用性

Zuul作为微服务,可以启动多台Zuul,自动注册到eureka上,形成集群。通常可搭配Ngnix服务网关来使用,来实现对Zuul集群的负载均衡调用。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Unknown symbol alloc_etherdev_mqs错误处理方法

    Unknown symbol alloc_etherdev_mqs错误处理方法编译内核模块,并且安装时,出现以下错误:root@am335x-evm:~/modules#insmodwlan.ko[292.849701]wlan:disagreesaboutversionofsymbolalloc_etherdev_mqs[292.856774]wlan:Unknownsymbolalloc_etherdev_mqs(err-2…

    2022年10月25日
    0
  • 水力发电属于可再生能源吗_薪柴属于可再生能源吗

    水力发电属于可再生能源吗_薪柴属于可再生能源吗电属于二次能源,谈不上可再生、不可再生。二次能源二次能源是指由一次能源经过加工转换以后得到的能源,包括电能、汽油、柴油、液化石油气,氢能等。二次能源又可以分为“过程性能源”和

    2022年8月2日
    6
  • 基于H.265编解码高清视频传输系统「建议收藏」

    基于H.265编解码高清视频传输系统「建议收藏」胡博,赵旦峰,王中刊.基于H.265编解码高清视频传输系统[J].应用科技,2017,44(1):27-32. HUBo,ZHAODanfeng,WANGZhongkan.High-definitionvideotransmissionsystembasedonH.265[J].AppliedScienceandTechnology,2017,

    2022年10月3日
    0
  • Portraiture Mac(PS磨皮滤镜插件) v3.5.1已注册版「建议收藏」

    Portraiture Mac(PS磨皮滤镜插件) v3.5.1已注册版「建议收藏」portraituremac激活成功教程版是大家熟知的一款专业磨皮滤镜插件。本次与大家分享的Portraiture插件Mac激活成功教程版专为photoshop软件设计,功能强大,能够智能的对图像中的肤色、毛发以及眉毛等部位进行滤镜抛光处理,细节处理,以减少瑕疵。portraituremac激活成功教程版基本上是人人都能用得上的ps辅助工具,有了它处理人像效果更加显著。原文及下载地址:www.mac69.c…

    2022年7月22日
    26
  • java 三大框架_java的三大框架是什么,功能各是什么

    java 三大框架_java的三大框架是什么,功能各是什么展开全部常说的三大框架指:SSH,即:Spring、62616964757a686964616fe59b9ee7ad9431333365653764Struts、Hibernate。Spring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来成为一个完成的应用。Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了唯一的数据访问抽象,包…

    2022年7月7日
    26
  • windows平台下载android源码

    最近在看《android内核剖析》,很多细节不具体看代码很难理解,记住了印象也不深,感觉还是跟着源码走一遍好些,回来下载android源码,遇到不少问题,终于开始下载了,整理下流程,鉴于网上很多教程时间久了都会失效,本文截止14年4月18日亲测有效。需要工具如下:下载msysgit,安装     官方下载:http://code.google.com/p/msysgit/downloads

    2022年3月11日
    30

发表回复

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

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