API网关(APIGateway)的基本功能及其高级应用

演变过程

传统的单体技术架构,所有的内容,被打包进一个包内。为了保证,系统的稳定、安全,需要开发一些过滤器、拦截器,来实现对客户端请求的过滤与拦截,以及完成最终请求的转发。如下图所示

微服务技术解决方案下,同样需要为每个服务开发过滤器、拦截器来进行请求管理。但由于服务数量众多,同时,客户端形式多样化,如果在每个服务身上开发,将会造成很大的代码冗余与开发负担。因此,期待,将相同的一些功能,抽取到一个服务内实现,这便成为了一个组件,就是现在的网关。

网关存在的原因:

  • 解决微服务技术架构下,请求管理功能

  • 解决微服务技术架构下,多客户端的适配,采用单一入口,完成协议适配

网关的基本功能

微服务技术解决方案下的,网关,至少需要具备图示基本功能。

  1. 网关作为单点入口,完成统一的请求管理

  2. 免去客户端直接对接众多微服务的复杂性,采用单点入口,实现路由转发,从而实现服务调用

  3. 服务对于整个系统来讲,是不稳定的,那么网关,需要进行限流熔断,保持系统的稳定与分区容错性

  4. 对于服务调用的链路,网关有职责进行记录,日志监控,保证整个系统,在监控下工作

  5. 系统可能不仅仅是由自有客户端调用,很多时候,系统开放能力API给外部,因此网关需要安全认证,来保证安全

网关的高级应用

红绿部署

红绿部署,将新旧版本并存发布,为了解决发布时间问题。将流量导向新版本,如果生产没有问题,则去除老版本,如果有问题,快速切换到老版本。

采用网关,可以简易实现蓝绿部署。

开发者测试分支

开发者对于生产,有些时候需要进行一定的测试。因此采用网关,可以实现,流量导向,路由转发到测试分支内,完成测试。

埋点测试

埋点测试,用来进行特殊业务需求或者技术需求下的测试。提前埋好点,可以按照埋点,检查整个调用链路情况。采用网关,快速实现流量导向。路由转发至需要埋点的服务集群。

压力测试

使用集群中一个或一组服务作为压力测试服务。那么必然还是使用到网关的流量导向、路由转发功能

调试路由

生产上,不方便测试的,可以采用网关,进行导向测试路由。

金丝雀测试

金丝雀测试,用于测试流量的可行性。类似于蓝绿部署。

粘性金丝雀测试

有些场景下,是需要客户端进入同样的服务内。粘性金丝雀,就是将客户流量粘住,保证流量导向单一。

失败注入测试

人为的测试系统的安全与稳定,需要进行失败注入。那么采用网关,即可实现流量的导向。

降级测试

服务具有不稳定性,因此微服务中,常见系统测试涵盖了降级测试这个方面。网关很好的可以承担起该职责。

防爬防攻击

网关作为请求的入口,自然可以承担起流量的管控。

健康检查与坏点检测

网关同样会作为服务注册到服务发现注册中心,因此,可以作为健康检查与坏点检测的工具,采用自动断开等手段,保证系统的稳定与及时通知。

跨区高可用

网关部署集群、跨区,可以实现,地域流量导向。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值