上文给我们解说的是微服务网关形式,本文给我们解说网关的首要功用和技能选型!

网关的首要功用

微服务网关作为微服务后端服务的一致进口(Entry Point),它能够统筹办理后端服务,首要分为数据平面(Data Plane)和操控平面(Control Plane)。

● 数据平面的首要功用是接入用户的HTTP恳求和微服务被拆分后的聚合。运用微服务网关一致对外露出后端服务的API和契约,路由和过滤功用正是网关的中心才能模块。别的,微服务网关能够完结阻拦机制和专注跨横切面(Cross-CuttingConcerns)的功用,包含协议转化、安全认证、熔断限流、灰度发布、日志办理、流量监控等。

● 操控平面的首要功用是对后端服务做一致的管控和装备办理。

例如,能够操控网关的弹性伸缩;能够一致下发装备;能够对网关服务添加标签;能够在微服务网关上经过装备Swagger功用一致将后端服务的API契约露出给运用方,完结文档服务,提高工作效率和降低交流成本。

其实,对于微服务网关的主要功能和技术选型,你还需要深入理解下

路由功用

路由是微服务网关的中心才能。经过路由功用微服务网关能够将恳求转发到目标微服务。在微服务架构中,网关能够结合注册中心的动态服务发现,完结对后端服务的发现,调用方只需要知道网关对外露出的服务API就能够透明地拜访后端微服务。

负载均衡

API网关结合负载均衡技能,运用Eureka或许Consul等服务发现工具,经过轮询、指定权重、IP地址哈希等机制完结下游服务的负载均衡。

协议转化

API网关的一大效果在于构建异构体系,API网关作为单一进口,经过协议转化整合后台基于REST、AMQP、Dubbo等不同风格和完结技能的微服务,面向Web Mobile、开放平台等特定客户端供给一致服务。

安全认证

一般来说,不管对内网还是外网的接口都需要做用户身份认证,而用户认证在一些规模较大的体系中都会选用一致的单点登录(Single Sign On)体系,如果每个微服务都要对接单点登录体系,那么显然比较浪费资源且开发效率低。API网关是一致办理安全性的绝佳场所,能够将认证的部分抽取到网关层,微服务体系无须重视认证的逻辑,只重视自身业务即可。常见的安全性技能(如密钥交换、客户端认证与报文加解密等)都能够在API网关中完结。

黑白名单

微服务网关能够运用体系黑名单,过滤HTTP恳求特征,阻拦异常客户端的恳求,例如DDoS攻击等侵蚀带宽或资源迫使服务中断等行为,能够在网关层面进行阻拦过滤。比较常见的阻拦策略是依据IP地址添加黑名单。在存在鉴权办理的路由服务中能够经过设置白名单跳过鉴权办理而直接拜访后端服务资源。

灰度发布

微服务网关能够依据HTTP恳求中的特殊标记和后端服务列表元数据标识进行流量操控,完结在用户无感知的情况下完结灰度发布。

流量染色

和灰度发布的原理相似,网关能够依据HTTP恳求的Host、Head、Agent等标识对恳求进行染色,有了网关的流量染色功用,我们能够对服务后续的调用链路进行盯梢,对服务推迟及服务运行状况进行进一步的链路分析。

限流熔断

在某些场景下需要操控客户端的拜访次数和拜访频率,一些高并发体系有时还会有限流的需求。在网关上能够装备一个阈值,当恳求数超越阈值时就直接返回错误而不持续拜访后台服务。当呈现流量洪峰或许后端服务呈现推迟或故障时,网关能够主动进行熔断,保护后端服务,并保持前端用户体验良好。

服务管控

网关能够统计后端服务的恳求次数,而且能够实时地更新当时的流量健康状况,能够对URL粒度的服务进行推迟统计,也能够运用Hystrix Dashboard检查后端服务的流量状况及是否有熔断产生。

文档中心

网关结合Swagger,能够将后端的微服务露出给网关,网关作为一致的进口给接口的运用方供给检查后端服务的API标准,不需要知道每一个后端微服务的Swagger地址,这样网关起到了对后端API聚合的效果。

日志审计

微服务网关能够作为一致的日志记录和收集器,对服务URL粒度的日志恳求信息和响应信息进行阻拦。

网关的技能选型

● Nginx+Lua

Nginx是一个高性能的HTTP和反向代理服务器。Nginx一方面能够做反向代理,别的一方面能够做静态资源服务器,接口运用Lua动态言语能够完结灵活的定制功用。

● Kong

Kong是一款API办理软件,它本身是基于Nginx+Lua的,但比Nginx供给了更简单的装备方法,数据选用Apache Cassandra或PostgreSQL存储。Kong的一个十分诱人的当地就是供给了大量的插件来扩展使用,经过不同的插件能够为服务供给各种增强功用。

● Spring Cloud Zuul

Zuul是Netflix公司开源的一个API网关组件。现在,结合Spring Cloud供给的服务治理体系,能够完结恳求转发、路由规则装备、负载均衡,以及集成Hystrix完结熔断功用。

● Spring Cloud Gateway

Spring Cloud Gateway是基于Spring 5.0和Spring Boot 2.0构建的,供给路由等功用。