• 浅析服务网关对企业核心应用架构的重要性​
    无论您是企业内部、云厂商或服务商架构师,在梳理业务场景,规划、部署应用架构之时,服务网关设计与实现的成败,是直接决定您系统交付价值的最直接体现。
    服务网关作用何在?
     
     
    简言之,路由转发和过滤器。
    ·  路由转发:接收一切外界请求,转发至后端;

    ·  过滤器:完成权限校验、限流以及监控等一系列横切功能。

     
    服务网关功能体现在哪?
     
     
    近些年,随着微服务轻量级应用不断盛行,API网关正扮演着举足轻重的角色。因为它既需要承担企业应用服务对外的唯一门户,更重要的是它提取了许多应用的共性功能。
    目前API网关实现的功能包括请求分发、条件路由、API管理、限流隔离、熔断降级、安全策略、监控报警以及调用链追踪等。

    一、请求分发
    API进行服务发现时给不同url前缀以及微服务应用构建不同的namespace对象,在进行请求匹配时候只需根据url前缀选取到对应的namespace即可匹配到对应微服务应用,后续就是现有微服务框架sdk的功能:路由、负载均衡直至完成整个调用。

    二、条件路由&灰度发布
     
    条件路由依然是复用现有的微服务框架,避免重复造轮,网关进行服务发现初始化时会给每个应用创建Invoker代理对象,Invoker内会根据不同的分组创建不同的Space空间,请求调用时会对这些Space空间进行规则匹配,从而决定是否路由到特定分组上。

    三、API管理
     
    当大部分应用还是裸连网关而非经过BFF聚合时,有必要对每个接口都进行管理,以区分哪些是微服务间调用,哪些是暴露给前端/客户端调用。

    四、限流隔离/熔断降级
     
    API网关作为南北流量的唯一入口,整体治理必要性非常大。
    限流隔离主要是作用在流入方向服务端测的流量控制,其中限流主要是控制qps,隔离主要是控制并发数。通过相关SDK(基于Prometheus)暴露metrics数据给监控平台,以便我们随时观察到流量控制水平。

    五、安全策略
     
    针对恶意爬虫类异常流量,用户可以在网关管控平台手动进行规则配置,经由配置中心下发到网关的Security Control进行热更新。在请求来临时由它判断是否符合规则,被封禁的流量同样暴露metrics数据给监控平台供我们随时查看。
    同时还会将网关日志实时采集至大数据分析平台,经分析如果判断某个ip或者用户存在异常情况,会自动配置安全策略规则至网关管控平台,同时触发一个报警提醒业务owner。目前支持包括根据客户端IP、用户ID、其余http header/attribute等。
    六、监控报警
     
    API网关有完善的监控报警、调用链追踪、日志查询等功能。这里监控主要指查询metrics、调用链主要指查询tracing,日志即logging,三者是监控领域典型指标:

    此外还支持主机层面的报警,通过内嵌了的metrics sdk暴露metrics指标到endpoint供监控中心拉取,tracing sdk负责埋点打印tracing日志,tracing日志和业务日志均会通过日志采集器输入监控中心处理。在监控平台上,用户可以查询调用链、监控、日志信息,API网关发生的主机异常或者业务异常也会报警给owner。
     
     
    技术选型
     
     
    若读者有兴趣自建一个轻量级的服务网关,技术选型推荐如下:
    ·  开发语言:java + groovy,groovy的好处是网关服务无需重启动态添加filter实现

    ·  微服务基础框架:Springboot;

    ·  网关基础组件:Netflix Zuul;

    ·  服务注册中心:Consul;

    ·  权限校验:JWT;

    ·  API监控:Prometheus + Grafana;

    ·  API统一日志收集:Logback + ELK;

    ·  压力测试:Jmeter;

    更多云管理相关咨询可联系新钛云服,值得信赖的云管理服务专家。

    电话:400 920 0057
    邮箱:info@tyun.cn
    «
    »
以专业成就每一位客户,让企业IT只为效果和安全买单

以专业成就每一位客户,让企业IT只为效果和安全买单