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

网站违规词处罚做网站的做视频网站 带宽多少才合适

网站违规词处罚做网站的,做视频网站 带宽多少才合适,贵州省网站建设选哪家,福州网站设计网址Spring Cloud Zuul 底层是基于Servlet实现的#xff0c;核心是通过一系列的ZuulFilter来完成请求的转发。 1、核心组件注册 1.1. EnableZuulProxy注解 启用Zuul作为微服务网关#xff0c;需要在Application应用类加上EnableZuulProxy注解#xff0c;而该注解核心是利用Im…Spring Cloud Zuul 底层是基于Servlet实现的核心是通过一系列的ZuulFilter来完成请求的转发。 1、核心组件注册 1.1. EnableZuulProxy注解 启用Zuul作为微服务网关需要在Application应用类加上EnableZuulProxy注解而该注解核心是利用Import注解往Spring容器导入了ZuulProxyConfiguration配置类 1.2. ZuulProxyConfiguration ZuulProxyConfiguration继承了ZuulConfiguration。 1.2.1. ZuulConfiguration ZuulConfuguration主要是利用Import往Spring容器注入了ServerPropertiesAutoConfiguration配置类下一小节介绍并且作为配置类往Spring容器注入了CompositeRouteLocator、SimpleRouteLocator、ZuulController、ZuulHandlerMapping、ZuulServlet等组件基于Spring DispatcherServlet实现请求转发入口。 还有ServletDetectionFilter、Servlet30WrapperFilter、SendResponseFilter、SendErrorFilter、SendForwardFilter等pre、post类型的过滤器是Zuul实现路由转发的核心过滤器。 还有ZuulRefreshListener监听器同于监听应用内部事件设置路由信息状态为dirty实现动态更新。 1.2.2. ZuulProxyConfiguration 当然了ZuulProxyConfiguration本身也注入了实现路由转发的核心过滤器包含route类型的过滤器RibbonRoutingFilter、SimpleHostRoutingFilter。 还有路由定位器DiscoveryClientRouteLocator先调用父类SimpleRouteLocator获取配置文件中的路由配置然后再从注册中心中补充路由信息。 还有一个非常重要的ListenerZuulDiscoveryRefreshListener它实现了ApplicationListener接口主要监听InstanceRegisteredEvent、ParentHearbeatEvent和HeartbeatEvent根据注册中心发送的事件来更新最新的路由信息设置路由信息状态为dirty。 2、路由配置注册 上面已经提到Zuul是基于Servlet实现的而根据请求URL找到对应Handler是利用HandlerMapping完成的而Zuul也根据此实现了ZuulHandlerMapping实现类。 2.1. ZuulHandlerMapping DispatcherServlet#initHandlerMappings 2.2. ZuulHandlerMapping#lookupHandler 在DispatcherServlet在首次请求分发时就会遍历所有HandlerMapping然后根据请求去获取对应的HandlerHandlerExecutionChain包含Handler和拦截器当遍历到ZuulHandlerMapping时会调用lookupHandler方法如果是首次调用会触发上面的registerHandlers方法进行路由配置注册。 2.3. ZuulHandlerMapping#registerHandlers ZuulHandlerMapping首次根据url查找Handler时会先找到所有的路由配置然后遍历注册HandlerZuulController这里查找所有路由配置就是上面提到的DiscoveryClientRouteLocator。 3、请求处理 DispatcherServlet分发请求的流程 图片拿自网络 3.1. ZuulController 在2.3.中ZuulHandlerMapping给路由配置注册Handler时对应的Handler是ZuulController。ZuulController继承了ServletWrappingController底层是实现Controller接口。 3.2. SimpleControllerHandlerAdapter 根据上面流程图找到HandlerMapping后会继续找到能执行对应Handler的HandlerAdapter而上面也提到ZuulController是实现于Controller接口所以最后定位到的是SimpleControllerHandlerAdapter。 SimpleControllerAdapter执行请求逻辑非常简单就是执行Handler的handleRequest方法即执行ZuulController的handleRequest方法。 3.3. ZuulController#handleRequest ZuulController的handleRequest很简单调用的是父类的handleRequestInternal方法。 但是我们需要注意ZuulController的构造函数里面给servletClass、servletName和supportedMethods赋值了其中servletClass尤为关键因为后续处理就是调用此类实例的方法。 3.4. ServletWrappingController ServletWrappingController重写了InitializingBean#afterPropertiesSet方法在设置实例属性后根据servletClass实例化了servletInstance对象这里就是ZuulServlet的实例。 ServletWrappingController的handleRequestInternal方法也很简单就是调用servletInstance的service方法这里就是ZuulServlet#service方法。 3.5. ZuulServlet#service ZuulServlet的service方法逻辑很简单都是利用ZuulRunner来完成的在ServletWrappingController实例化servletInstance时同时调用了servletInstance的init方法此时ZuulServlet同时会创建一个ZuulRunner实例。 service方法逻辑 执行ZuulRunner#init方法创建请求上下文RequestContext并将利用HttpServletRequestWrapper和HttpServletResponseWrapper分别将HttpServletRequest和HttpServletResponse包装起来。调用ZuulRunner#preRoute方法执行前置过滤器调用ZuulRunner#route方法执行路由过滤器调用ZuulRunner#postRoute方法执行后置过滤器如果步骤2到步骤4出现错误则执行ZuulRunner的error方法最后清理RequestContext内容ThreadLocal 3.6. ZuulRunner ZuulRunner实现也是非常简单底层是利用FilterProcessor来实现的。 3.7. FilterProcessor FilterProcessor执行过滤器的逻辑也非常简单就是根据过滤器类型找到所有的过滤器然后遍历调用processZuulFilter方法执行里面只要是执行ZuulFilter的runFilter方法并且对错误信息和成功信息做统计。 3.8. FilterLoader和FilterRegistry FilterProcessor中是利用FilterLoader来完成过滤器的加载的而FilterLoader最终是利用FilterRegistry来完成过滤器的加载。 FilterLoader和FilterRegistry都是单例在ZuulFilterConfiguration中创建并注入到ZuulFilterInitializer中最后并将ZuulFilterInitializer注入到Spring容器中。 ZuulFilterInitializer实现了ServletContextListener接口在Spring容器完成初始化时会将ZuulFilter集合注入到FilterRregistry中。 4. 核心过滤器 这里只要分析核心过滤器不包含所有的过滤器。 4.1. 前置过滤器 4.1.1. ServletDetectionFilter 执行顺序为-3主要是区分请求是通过Spring的DispatcherServlet处理运行的还是ZuulServlet来处理运行的。 4.1.2. Servlet30WrapperFilter 执行顺序为-2主要是将HttpServletRequest包装成Servlet30RequestWrapper。 4.1.3. FormBodyWrapperFilter 执行顺序为-1条件要么是Context-Type为application/x-www-form-urlencoded的请求要么是Context-Type为multipart/form-data且是由String的DispatcherServlet处理的请求主要是将HttpServletRequest包装成FormBodyRequestWrapper。 4.1.4. DebugFilter 执行顺序为1条件要么配置里指定zuul.debug.request为true要么请求参数debug为true。主要用来将当前请求上下文中的debugRouting和debugRequest参数设置为true主要是做到灵活开关debug模式开启debug模式时会打印一些日志方便分析问题。 4.1.5. PreDecorationFilter 执行顺序为5条件要求请求上下文中不存在forward.do和serviceId参数主要是做一个预处理将相关信息存到上下文中包含路由、后置、错误过滤器的过滤条件判断信息。 4.2. 路由过滤器 4.2.1. RibbonRoutingFilter 执行顺序为10条件是请求上下文中routeHost为null并且serviceId不为null主要是构建Ribbon命令上下文并且发起请求转发。 在发起请求转发的时候需要构建HTTP客户端这里会根据配置和依赖来选用指定的HTTP客户端。 4.2.2. SimpleHostRoutingFilter 执行顺序为100条件是请求上下文中routeHost不为null主要是直接根据物理地址发送请求这里是直接调用原生的HttpClient包的客户端。 4.2.3. SendForwardFilter 执行顺序为500条件是请求上下文中forward.do不为null并且sendForwardFilter.ran为false主要是做本地转发。 4.3. 后置过滤器 4.3.1. SendResponseFilter 执行顺序为1000条件是请求上下文中异常为null并且响应头或响应体不为null主要是将响应写回给客户端。 4.4. 错误过滤器 4.4.1 SendErrorFilter 执行顺序为0条件是请求上下文中异常不为null并且sendErrorFilter.ran为false主要是将异常写回给客户端。
http://www.pierceye.com/news/98485/

相关文章:

  • 做电影视频网站赚钱嘛安溪人做的网站
  • 网站建设基础代码赣州专门网公司
  • 购物网站答辩ppt怎么做网站开发环境
  • 做网站的费用计入销售费用吗做装修效果图的网站
  • 企业网站制作深圳免费域名映射
  • 安徽建设厅网站施网站的静态页面谁做
  • 网站内页seo桂林山水甲天下是哪个景点
  • 外贸网站免费建站小榄网站建设公司
  • 做旅游网站赚钱吗wordpress模板调用自定义插件
  • 南宁手机网站建设工艺品做网站
  • 可以下载电影的网站怎么做适合程序员的wordpress主题
  • 哪些网站微信支付平台建设网站软件
  • 做系统网站赚钱做爰网站有哪些
  • 新密做网站公司网站建设工作部署会
  • 上海网站推广方法怎么做网页 网站制作
  • 网站蜘蛛怎么看wordpress多用户商城主题
  • 拨付网站建设经费的请示wordpress+电商版本
  • 深圳网站制作需要多少钱互动营销网站
  • 营销型网站公司名称烟台网站建设专业臻动传媒
  • 哪个网站可以做结婚证企业黄页官网
  • 进网站备案大学生网页设计心得体会
  • 做网站除了广告还有什么收入的短视频营销的发展趋势
  • 企顺网网站建设娜娜视频免费视频在线
  • 如何做英文网站wordpress 247
  • 玄武模板网站制作点击查看视联网视频会议系统
  • 域名购买之后怎么做网站网站二级页面设计要求
  • 一个好的网站怎样布局安康市网站建设
  • 上海企业网站优化多少钱湛江网站建设方案托管
  • 手机网站可以做英文版本吗怎么自己购买域名 建设网站
  • 茂港手机网站建设公司如何将音乐上传到wordpress