• 111541

    文章

  • 803

    评论

  • 12

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

SpringCloud 微服务 (十二) 服务网关 Zuul

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

本节记录学习服务网关的基础内容

在没有网关的时候,如果有很多服务:order,product ... 那么客户端会和每个服务一一打交道,这明显不是一个好方式,需要一个服务来充当请求的统一的入口,就是本篇学习的角色---服务网关

那么所有请求都通过网关,是服务的入口,显而易见体现网关的作用和注意点,如果网关挂了,那么所有的请求都摸不着头脑,所以网关要素必须是高可用,稳定性,另外所有的请求都通过网关,访问压力大,说明还具备并发性能,安全性不用说了必备的,根据不同类型的服务,做不同的措施,比如金融行业服务,肯定要对通信数据加密,服务网关是非业务处理的绝佳场所,比如协议转发、防刷新、流量管控、日志等等扩展性

总结以上网关的要素: 稳定性、高可用、性能、并发、安全、扩展性等等

 

常用的网关配套方案 :  

①Nginx 

Nginx简介->性能、高可用是Nginx优越之处,事件驱动型设计,全异步的网络IO处理机制,极少的进程切换,各种优化设计,Nginx由多个不同功能,不同层次,不同类型,耦合度极低的模块组成,维护功能就比较方便,不会影响其他功能

②Kong

基于Nginx二次开发软件,商业软件,不说了

③Tyk

轻量级,快速可伸缩的API网关,支持配额和速度限制,认证,数据分析,多用户多组织,提供全Restful API,GO语言开发,发层面上就存在优势

④Spring Cloud Zuul (本次学习目标)

Netflix提供的一个基于JVM路由和服务端的负载均衡器,专为微服务提供; 如果以Java技术栈为主构建微服务体系,Zuul提供认证、鉴权、限流、动态路由、监控、弹性、安全、负载均衡、协作单点压测、静态响应等边缘服务框架,如果项目用了Spring/Spring Cloud框架,使用Zuul是个不错的选择,如果团队没有专门分配网关服务人员,那么Zuul也是快速上手的选择

Zuul和Nginx相比,在性能、并发方面都是有所不足,在项目开发中,往往会技术混搭,利用不同组件的优势,灵活使用技术组件,在微服务完整生态体系中,选Zuul作为一个前置网关服务,在外部调用的时候,搭配Nginx,使用Nginx暴露Url,Nginx把请求转发多个Zuul服务上,让Nginx承担性能、并发角色

 

贴一张Request请求&Zuul 生命周期 的过程图 :

从上面可以看出来 Zuul=路由+一堆过滤器 ,说明其核心是一堆过滤器,其中的Origin Server是其他服务,比如product服务、order服务等等,其中custom filter是自定义过滤器,图中仅标出Pre filter下的自定义,在其他filter阶段也是可以自定义,每个Http请求都会经过这些过滤器,经过滤处理得到响应并返回给客户端

上图filter分四种类型 :

●前置(Pre)

请求最先过滤点,在路由前执行,比如可以做校验,鉴权,限流,请求转发等操作

●路由(Route)

将请求转发到origin server,比如觉得某个请求用的不好或者性能不高,此处可以自己重写Http请求

●后置(Post)

此处已经拿到了请求结果,可以对结果做自己喜欢做的事,比如统计、日志、封装、加工结果

●错误(Error)

以上三个filter出现异常,就会进入此处,就可以做一些统一异常处理功能

 

还有看到一张Zuul架构图,在红色箭头处1,2,3filter之间是没有联系的,通过Request Contents进行操作

 

再附上一张项目架构图,帮助理解

 

关于Zuul学习,本篇就笔记到这里,后续再做笔记

还要准备下造航母知识,不然没有机会拧螺丝了,加油

-----------------------------------------------------


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客