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

网站备案的坏处wordpress漂浮花瓣

网站备案的坏处,wordpress漂浮花瓣,国能商旅app下载,淄博百度本篇文章为系列文章#xff0c;未读第一集的同学请猛戳这里#xff1a;哈喽沃德先生#xff1a;Spring Cloud 系列之 Netflix Zuul 服务网关#xff08;一#xff09;​zhuanlan.zhihu.com本篇文章讲解 Zuul 网关过滤器实现统一鉴权以及网关过滤器异常统一处理。网关过滤器…本篇文章为系列文章未读第一集的同学请猛戳这里哈喽沃德先生Spring Cloud 系列之 Netflix Zuul 服务网关一​zhuanlan.zhihu.com本篇文章讲解 Zuul 网关过滤器实现统一鉴权以及网关过滤器异常统一处理。网关过滤器https://www.zhihu.com/video/1234207041360777216Zuul 包含了对请求的路由和过滤两个核心功能其中路由功能负责将外部请求转发到具体的微服务实例上是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预是实现请求校验服务聚合等功能的基础。然而实际上路由功能在真正运行时它的路由映射和请求转发都是由几个不同的过滤器完成的。路由映射主要通过 pre 类型的过滤器完成它将请求路径与配置的路由规则进行匹配以找到需要转发的目标地址而请求转发的部分则是由 routing 类型的过滤器来完成对 pre 类型过滤器获得的路由地址进行转发。所以说过滤器可以说是 Zuul 实现 API 网关功能最核心的部件每一个进入 Zuul 的 http 请求都会经过一系列的过滤器处理链得到请求响应并返回给客户端。关键名词类型定义路由流程中应用过滤器的阶段。共 pre、routing、post、error 4 个类型。执行顺序在同类型中定义过滤器执行的顺序。比如多个 pre 类型的执行顺序。条件执行过滤器所需的条件。true 开启false 关闭。动作如果符合条件将执行的动作。具体操作。过滤器类型pre请求被路由到源服务器之前执行的过滤器身份认证选路由请求日志routing处理将请求发送到源服务器的过滤器post响应从源服务器返回时执行的过滤器对响应增加 HTTP 头收集统计和度量指标将响应以流的方式发送回客户端error上述阶段中出现错误时执行的过滤器入门案例创建过滤器Spring Cloud Netflix Zuul 中实现过滤器必须包含 4 个基本特征过滤器类型执行顺序执行条件动作具体操作。这些步骤都是 ZuulFilter 接口中定义的 4 个抽象方法package com.example.filter;import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exception.ZuulException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;/*** 网关过滤器*/ Component public class CustomFilter extends ZuulFilter {private static final Logger logger LoggerFactory.getLogger(CustomFilter.class);/*** 过滤器类型* pre* routing* post* error** return*/Overridepublic String filterType() {return pre;}/*** 执行顺序* 数值越小优先级越高** return*/Overridepublic int filterOrder() {return 0;}/*** 执行条件* true 开启* false 关闭** return*/Overridepublic boolean shouldFilter() {return true;}/*** 动作具体操作* 具体逻辑** return* throws ZuulException*/Overridepublic Object run() throws ZuulException {// 获取请求上下文RequestContext rc RequestContext.getCurrentContext();HttpServletRequest request rc.getRequest();logger.info(CustomFilter...method{}, url{},request.getMethod(),request.getRequestURL().toString());return null;}}filterType该函数需要返回一个字符串代表过滤器的类型而这个类型就是在 http 请求过程中定义的各个阶段。在 Zuul 中默认定义了 4 个不同的生命周期过程类型具体如下pre请求被路由之前调用routing 路由请求时被调用postrouting 和 error 过滤器之后被调用error处理请求时发生错误时被调用filterOrder通过 int 值来定义过滤器的执行顺序数值越小优先级越高。shouldFilter返回一个 boolean 值来判断该过滤器是否要执行。run过滤器的具体逻辑。在该函数中我们可以实现自定义的过滤逻辑来确定是否要拦截当前的请求不对其进行后续路由或是在请求路由返回结果之后对处理结果做一些加工等。访问访问http://localhost:9000/product-service/product/1 控制台输出如下CustomFilter...methodGET, urlhttp://localhost:9000/product-service/product/1统一鉴权接下来我们在网关过滤器中通过 token 判断用户是否登录完成一个统一鉴权案例。创建过滤器package com.example.filter;import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exception.ZuulException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.PrintWriter;/*** 权限验证过滤器*/ Component public class AccessFilter extends ZuulFilter {private static final Logger logger LoggerFactory.getLogger(AccessFilter.class);Overridepublic String filterType() {return pre;}Overridepublic int filterOrder() {return 1;}Overridepublic boolean shouldFilter() {return true;}Overridepublic Object run() throws ZuulException {// 获取请求上下文RequestContext rc RequestContext.getCurrentContext();HttpServletRequest request rc.getRequest();// 获取表单中的 tokenString token request.getParameter(token);// 业务逻辑处理if (null token) {logger.warn(token is null...);// 请求结束不在继续向下请求。rc.setSendZuulResponse(false);// 响应状态码HTTP 401 错误代表用户没有访问权限rc.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());// 响应类型rc.getResponse().setContentType(application/json; charsetutf-8);PrintWriter writer null;try {writer rc.getResponse().getWriter();// 响应内容writer.print({message: HttpStatus.UNAUTHORIZED.getReasonPhrase() });} catch (IOException e) {e.printStackTrace();} finally {if (null ! writer)writer.close();}} else {// 使用 token 进行身份验证logger.info(token is OK!);}return null;}}访问访问http://localhost:9000/product-service/product/1 结果如下访问http://localhost:9000/product-service/product/1?tokenabc123 结果如下Zuul 请求的生命周期HTTP 发送请求到 Zuul 网关Zuul 网关首先经过 pre filter验证通过后进入 routing filter接着将请求转发给远程服务远程服务执行完返回结果如果出错则执行 error filter继续往下执行 post filter最后返回响应给 HTTP 客户端网关过滤器异常统一处理https://www.zhihu.com/video/1234207208662945792创建过滤器package com.example.filter;import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exception.ZuulException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component;import java.io.IOException; import java.io.PrintWriter;/*** 异常过滤器*/ Component public class ErrorFilter extends ZuulFilter {private static final Logger logger LoggerFactory.getLogger(ErrorFilter.class);Overridepublic String filterType() {return error;}Overridepublic int filterOrder() {return 0;}Overridepublic boolean shouldFilter() {return true;}Overridepublic Object run() throws ZuulException {RequestContext rc RequestContext.getCurrentContext();Throwable throwable rc.getThrowable();logger.error(ErrorFilter... throwable.getCause().getMessage(), throwable);// 响应状态码HTTP 500 服务器错误rc.setResponseStatusCode(HttpStatus.INTERNAL_SERVER_ERROR.value());// 响应类型rc.getResponse().setContentType(application/json; charsetutf-8);PrintWriter writer null;try {writer rc.getResponse().getWriter();// 响应内容writer.print({message: HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase() });} catch (IOException e) {e.printStackTrace();} finally {if (null ! writer)writer.close();}return null;}}模拟异常在 pre 过滤器中添加模拟异常代码。// 模拟异常 Integer.parseInt(zuul);配置文件禁用 Zuul 默认的异常处理 filterSendErrorFilterzuul:# 禁用 Zuul 默认的异常处理 filterSendErrorFilter:error:disable: true访问访问http://localhost:9000/product-service/product/1 结果如下下一篇我们讲解 Zuul 和 Hystrix 的无缝结合实现网关监控、网关熔断、网关限流、网关调优记得关注噢大家可以通过 分类 查看更多关于 Spring Cloud 的文章。本文采用 知识共享「署名-非商业性使用-禁止演绎 4.0 国际」许可协议。 您的点赞和转发是对我最大的支持。 扫码关注 哈喽沃德先生「文档 视频」每篇文章都配有专门视频讲解学习更轻松噢 ~
http://www.huolong8.cn/news/155615/

相关文章:

  • 江都建设招标网站网上推广网站
  • 贵溪网站建设wordpress 删除demo
  • 网站建设业务的销售人员培训文档江宁网站建设方案
  • 点创网站建设成都的装修公司有哪些
  • 制作网站软件成都网站建设前50强
  • 桂林软件开发海口seo整站
  • 个人手机版网站app怎么做wordpress用户自定义作者
  • 济南网站建设公司选济南网络网站设计制作步骤
  • 怀来县网站建设外包加工网是正规的吗
  • 网页制作创建站点内容注册深圳公司流程和费用
  • 网站设计 联系职业生涯规划大赛演讲稿
  • 对象存储 做视频网站西安手机网站制作的公司
  • 广东个人 网站备案西安市seo排名按天优化
  • 泉州网站设计哪家公司好wordpress注册没用
  • 中咨城建设计南京网站做1688网站运营工资怎么样
  • 北京泰达建设有限公司网站建网站需花哪几种钱
  • 学校网站建设问卷调查表创世网站建设
  • 网站建设dns解析设置wordpress文学模版
  • 网站建设竞标需要怎么做当当网站建设优点
  • 帮别人做网站后期维护东莞建站
  • 直播网站开发核心技术丽水专业网站制作公司
  • 网站站内优化怎么做网上做设计的网站
  • 白云微网站建设二级建造师注册查询
  • 免费网站添加站长统计wordpress nginx cos html cache
  • 松北建设局网站爱疯卷网站怎么做
  • 做婚介网站可行性报告软文案例
  • 网站建设公司选择标准高端品牌男鞋
  • 织梦网站怎么安装isp网站接入做哪些业务
  • 网站设计实训心得体会城乡建设部官方网站
  • 网站备案导致网站被k网站建设的卷子