文章插图
NginxNginx是一个高性能的HTTP和反向代理服务器 。Nginx一方面可以做反向代理,另外一方面可以做静态资源服务器,接口使用Lua动态语言可以完成灵活的定制功能 。
Nginx 在启动后,会有一个 Master 进程和多个 Worker 进程,Master 进程和 Worker 进程之间是通过进程间通信进行交互的,如图所示 。Worker 工作进程的阻塞点是在像 select()、epoll_wait() 等这样的 I/O 多路复用函数调用处,以等待发生数据可读 / 写事件 。Nginx 采用了异步非阻塞的方式来处理请求,也就是说,Nginx 是可以同时处理成千上万个请求的 。
ZuulZuul 是.NETflix 开源的一个API网关组件,它可以和 Eureka、Ribbon、Hystrix 等组件配合使用 。社区活跃,融合于 SpringCloud 完整生态,是构建微服务体系前置网关服务的最佳选型之一 。
Zuul 的核心是一系列的过滤器,这些过滤器可以完成以下功能:
- 统一鉴权 + 动态路由 + 负载均衡 + 压力测试
- 审查与监控:与边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图 。
- 多区域弹性:跨越 AWS Region 进行请求路由,旨在实现 ELB(Elastic Load Balancing,弹性负载均衡)使用的多样化,以及让系统的边缘更贴近系统的使用者 。
Zuul1 是基于 Servlet 框架构建,如图所示,采用的是阻塞和多线程方式,即一个线程处理一次连接请求,这种方式在内部延迟严重、设备故障较多情况下会引起存活的连接增多和线程增加的情况发生 。
文章插图
Netflix 发布的 Zuul2 有重大的更新,它运行在异步和无阻塞框架上,每个 CPU 核一个线程,处理所有的请求和响应,请求和响应的生命周期是通过事件和回调来处理的,这种方式减少了线程数量,因此开销较小 。
【五种微服务网关,该选哪个?】
文章插图
Spring Cloud GetWaySpring Cloud Gateway 是Spring Cloud的一个全新的API网关项目,目的是为了替换掉Zuul1,它基于Spring5.0 + SpringBoot2.0 + WebFlux(基于?性能的Reactor模式响应式通信框架Netty,异步?阻塞模型)等技术开发,性能?于Zuul,官?测试,Spring Cloud GateWay是Zuul的1.6倍,旨在为微服务架构提供?种简单有效的统?的API路由管理?式 。
Spring Cloud Gateway可以与Spring Cloud Discovery Client(如Eureka)、Ribbon、Hystrix等组件配合使用,实现路由转发、负载均衡、熔断、鉴权、路径重写、?志监控等,并且Gateway还内置了限流过滤器,实现了限流的功能 。
文章插图
Kong
Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目 。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求 。
文章插图
Kong主要有三个组件:
- Kong Server :基于Nginx的服务器,用来接收API请求 。
- Apache Cassandra/PostgreSQL :用来存储操作数据 。
- Kong dashboard:官方推荐UI管理工具,也可以使用 restfull 方式管理admin api 。
推荐阅读
- 微笑|公务员招聘年龄放宽至40周岁,打破门槛后,大学生的机会更渺茫?
- 白敬亭|白敬亭宋轶领证,微博之夜大秀恩爱,爆料者晒出证据
- 李微敖|奔着白鹿去看《跑男》,却被25岁关晓彤吸引,鹿晗眼光真的绝!
- 贾静雯|张继科事件后续:李微敖死锤,杨幂疑似声讨,安踏率先终止合作
- 考研|华科热门专业本科毕业生两次考研失利,卑微求工作,长衫脱不下去
- 赵丽颖|被微博之夜“除名”的赵丽颖,已经在另一条路上越走越远
- 肖战|虞书欣站姐一张博君一肖P图,败光肖战粉丝微博之夜新建立的好感
- 景甜|景甜称19年差点丢失自己,受这大委屈微笑面对!在寂寞中学会宽容
- 张继科|张继科欠款合同被李微敖曝光,景甜私密视频泄露,债主被判7年
- 赵丽颖|赵丽颖和肖央官宣了:太甜了!