当前位置: 首页 > news >正文

房屋租赁网站开发模版长沙seo霜天博客

房屋租赁网站开发模版,长沙seo霜天博客,网站建设的多少钱,关于做代购网站的纳税知识Zuul过滤器机制zuul的核心是一系列的filters, 其作用可以类比Servlet框架的Filter,或者AOP。zuul把Request route到 用户处理逻辑 的过程中,这些filter参与一些过滤处理,比如Authentication,Load Shedding等。Spring Cloud对Zuul进…

Zuul过滤器机制

zuul的核心是一系列的filters, 其作用可以类比Servlet框架的Filter,或者AOP。

zuul把Request route到 用户处理逻辑 的过程中,这些filter参与一些过滤处理,比如Authentication,Load Shedding等。

Spring Cloud对Zuul进行了整合和增强。目前,Zuul使用的默认是Apache的HTTP Client,也可以使用Rest Client,可以设置ribbon.restclient.enabled=true.

Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行。

Zuul的过滤器之间没有直接的相互通信,他们之间通过一个RequestContext的静态类来进行数据传递的。RequestContext类中有ThreadLocal变量来记录每个Request所需要传递的数据。

Zuul的过滤器是由Groovy写成,这些过滤器文件被放在Zuul Server上的特定目录下面,Zuul会定期轮询这些目录,修改过的过滤器会动态的加载到Zuul Server中以便过滤请求使用。

过滤器类型:

Zuul大部分功能都是通过过滤器来实现的。Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期。

PRE:这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。

ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfilx Ribbon请求微服务。

POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。

ERROR:在其他阶段发生错误时执行该过滤器。

内置的特殊过滤器

zuul还提供了一类特殊的过滤器,分别为:StaticResponseFilter和SurgicalDebugFilter

StaticResponseFilter:StaticResponseFilter允许从Zuul本身生成响应,而不是将请求转发到源。

SurgicalDebugFilter:SurgicalDebugFilter允许将特定请求路由到分隔的调试集群或主机。

自定义的过滤器

除了默认的过滤器类型,Zuul还允许我们创建自定义的过滤器类型。

例如,我们可以定制一种STATIC类型的过滤器,直接在Zuul中生成响应,而不将请求转发到后端的微服务。

过滤器的生命周期

Zuul请求的生命周期如图,该图详细描述了各种类型的过滤器的执行顺序。

编写Zuul微服务网关

创建工程,添加依赖

org.springframework.cloud

spring-cloud-starter-zuul

org.springframework.cloud

spring-cloud-starter-eureka

添加注解

在启动类上添加注解@EnableZuulProxy,声明了一个Zuul代理。该代理使用Ribbon来定位注册在Eureka Server中的微服务;同时,该代理还整合了Hystrix,从而实现了容错,所有经过Zuul的请求都会在Hystrix命令中执行。

@SpringBootApplication

@EnableZuulProxy//开启Zuul网关功能

publicclassGetWayZuulApplication{

publicstaticvoidmain(String[]args){

SpringApplication.run(GetWayZuulApplication.class,args);

}

}

编写配置文件

从配置文件中可知,此处仅仅是添加了Zuul的依赖,并将Zuul注册到Eureka Server上。

#应用启动的端口号

server.port=8040

#应用名称

spring.application.name=microservice-getway-zuul

#Eureka的相关配置

#如果可以在配置时确定主机名(否则将从操作系统原语中猜出)

#eureka.instance.hostname=microservice-getway-zuul

#表示将自己的IP注册到EurekaServer。如果不配置会将操作系统的hostname到EurekaServer.

eureka.instance.prefer-ip-address=true

#Eureka服务器地址也就是注册中心的地址包含认证账号和密码

eureka.client.serviceUrl.defaultZone=http://admin:admin123@localhost:8761/eureka

创建自定义过滤器

继承ZuulFilter类,实现:filterType,filterOrder,shouldFilter,run方法

PreRequestLogFilter:功能是打印请求日志

package com.taowd.filter;

import com.netflix.zuul.ZuulFilter;

import com.netflix.zuul.context.RequestContext;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import javax.servlet.http.HttpServletRequest;

/**

* @author Taowd

* @date 2018/3/27 - 14:33

* @Description

*/

public class PreRequestLogFilter extends ZuulFilter {

private static final Logger logger = LoggerFactory.getLogger(PreRequestLogFilter.class);

@Override

public String filterType() {

return "pre";

}

@Override

public int filterOrder() {

return 1;

}

@Override

public boolean shouldFilter() {

return true;

}

@Override

public Object run() {

RequestContext ctx = RequestContext.getCurrentContext();

HttpServletRequest request = ctx.getRequest();

PreRequestLogFilter.logger.info(String.format("send %s request to %s", request.getMethod(), request.getRequestURI().toString()));

return null;

}

}

测试启动服务注册中心项目:microservice-discovery-eureka

启动服务提供者项目:microservice-provider-user

启动路由网关项目: microservice-getway-zuul-filter

检查microservice-getway-zuul-filter项目控制台,打印请求路径

禁用Zuul拦截器功能

#禁用Zuul拦截器

zuul.PreRequestLogFilter.pre.disable=true

http://www.lbrq.cn/news/2502253.html

相关文章:

  • 重庆有没有做网站的网络推广工具有哪些
  • 贵州公司网站建设比选公示2022最新小学生新闻
  • 太原建设设计公司网站企业建站公司热线电话
  • 网站优化排名易下拉用法网站建设黄页在线免费
  • 邢台网站建设哪家公司好邯郸seo优化公司
  • 网站建设怎么报价网站优化公司大家好
  • 做外贸的网站要多少钱线下推广方法及策略
  • 快速优化网站建设搜索引擎排名优化方案
  • 无法连接网站互联网营销师培训教程
  • 做衬衣的网站今日国际新闻头条15条
  • 如何在门户网站做推广方案福州关键词排名软件
  • 自己做套现要建网站吗临沂seo优化
  • 网站导航条用什么做北京效果好的网站推广
  • 成都装修网站建设seo企业推广案例
  • 建站工作室 网站建设工作室百度网址大全网站大全
  • app浏览器源码大全网站微商营销
  • win2003 wordpress景德镇seo
  • 网站建设公司与维护什么是软文营销
  • 寻找移动网站建设百度搜索引擎使用技巧
  • 深圳网站建设哪个公司号发帖推广哪个平台好
  • 会计是做什么的新手seo入门教程
  • 什么网站可以做会计题目广州seo网站推广平台
  • 盐城市建设局网站打不开网络营销以什么为中心
  • 高佣联盟做成网站怎么做百度信息流推广技巧
  • 巩义做网站xd seo搜索引擎优化的五个方面
  • 北京做网站建设的公司有哪些百度直播推广
  • wordpress站点切换为中文百度seo优化策略
  • 大淘客联盟做网站设计网站logo
  • 成都专业网站排名推广看片应该搜什么关键词哪些词
  • 浪琴手表网站建设图百度pc端入口
  • Laravel 分页方案整理
  • 【华为机试】5. 最长回文子串
  • 解决ubantu系统下matplotlib中文乱码问题
  • React入门学习——指北指南(第三节)
  • Kafka——Java消费者是如何管理TCP连接的?
  • 关于“PromptPilot”