• API网关


    什么是API网关

    API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
    API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。

    API网关解决的问题

    • 客户端请求多个微服务,增加客户端复杂度
    • 存在跨域,认证不统一问题
    • 与微服务耦合太强,微服务变更,客户端需要变更

    如何构建API网关

    API网关的作用

    API网关所处的位置通常为:

     
     
    客户端
    统一API网关
    内部微服务

    使用API网关的好处:

    • 易于监控
    • 统一认证
    • 减少客户端与微服务交互,解耦接口依赖

    网关大致分类

    单节点API网关

    Backends for frontends网关

     

    开源网关

    Netflix Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器(Spring Cloud使用)。

    提供能力:

    • 身份认证与安全
    • 审查与监控
    • 动态路由
    • 压力测试
    • 负载分配
    • 静态响应处理

    API网关存在的问题及解决方案

    问题

    • 拿单节点网关来说,这种网关相当于是处于 Web 层和 Service 之间,用来聚合服务的?注意,我们需要的是聚合服务,而以上这些开源项目都不具备这个功能,我说的聚合具体指的是开箱即用。
    • 除了单点问题,还有一个问题,网关需要承担日志,监控,安全,服务发现,版本控制等,甚至超时,熔断,重试,聚合查询等职能,这很容易造成性能问题。

     

    解决方案

    单点问题:Keepalived + LVS 保证一个网关挂掉时,迅速进行失效转移
    性能问题:双重网关(双重网关,外部网关处理安全,认证,限流,监控,日志等,内部网关处理缓存,重试,熔断等)

    人这辈子没法做太多事情,所以每做一件事都要做到精彩绝伦。 因为,这就是我的宿命。人生苦短,你明白吗? 所以这是我为人生做出的选择
  • 相关阅读:
    如何在vue项目中使用svg图标
    Failed to connect to github.com port 443 after 21035 ms: Timed out
    通过二次封装dialog深入理解自定义双向绑定是怎么回事
    eltable根据屏幕大小适配最大高度
    Java lambda 笔记
    Oracle使用regexp_substr函数实现 列转行
    php获取日期时间等
    1227 Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for operation
    git pull 每次都要输出merge合并信息
    Nacos安装步骤windows
  • 原文地址:https://www.cnblogs.com/junjun1578/p/11958422.html
Copyright © 2020-2023  润新知