vlambda博客
学习文章列表

微服务基础设施API网关


微服务基础设施API网关


本章导读


微服务当中为什么引入网关这样一个组件,我们可以从一个实际例子来说明一下,比如一个公司有一个大门,有一个门卫每天员工上下班的时候都会经过这个门卫,门卫会做一些日常工作,比如说安全的管控、指导部门位置等。


要点解析


在微服务当中,有一个API网关这样的角色相当于公司的门卫。我在下方贴了个图,大家请看下;



一般我们公司内部有很多微服务,比如说购物车、库存、推荐、订单等等这些微服务。那么这些微服务是每个团队各自独立去维护的,但是我们不希望外界知道这些细节,那么这个时候就可以让网关这样的角色来屏蔽这些细节。

让客户看上去,看企业内部服务的时候好像是一个服务,虽然我们内部有很多的服务,但看上去是一个统一的服务,这就是我们的网关所起到的作用,能够屏蔽我们服务内部的细节,来对外提供统一的接口。


那么网关在微服务中处在什么位置,我们看下图。

从图中我们可以看到有四个层次,最外层就是用户的接入设备,然后有一个负载均衡器,之后就是我们今天的主角网关,最后是我们内部的微服务。

为什么我们在网关前面增加负载均衡,这样做的目的是让网关是无状态的,无状态的好处是网关可以部署很多,不会存在单点,这对系统的稳定性和可用性是非常重要的。所以在网关前面一般会部署负载均衡,然后有多个网关。


  


网关主要有四项基本功能


1、反向路由

    当外面的服务请求进来的时候,怎么找到对应的微服务,这是网关要做的事情,将外部的请求转换成具体的内部的服务调用。


2、安全认证

    回顾文章开头的例子,网关相当的企业的门卫,相当于看门人,当外面有请求进来的时候,有些是正常的访问,而有些是恶意的访问,比如爬虫、黑客行为。网关可以对这些请求进行安全的认证。


3、限流熔断

    如我们公司有个门,外面有流量进来正常的情况下流量是比较稳定的,但也可能有突发流量,比如公司在搞促销,这个时候可能会有流量洪峰冲进来,如果没有好的限流熔断措施很可能造成服务内部瘫痪。网关就要存在一个职责,当有大量的请求请求内部系统的时候,它要承担一个限流熔断的措施。


4、日志监控

    外面的所有请求都需要经过网关,那么我们就可以在网关上增加日志监控,进行访问审计操作。将访问情况保存到日志中。另外我们分析这些日志,可以通过日志反馈服务的性能情况,能够对整个的流量情况进行监控。


本文是关于微服务系列文章,如果觉得不错,欢迎点评和分享!

文章将持续更新并配有实战视频讲解,欢迎关注+分享!