• 微服务·API网关


    阅文时长 | 3.52分钟 字数统计 | 1232字符
    主要内容 | 1、什么是API网关 2、微服务中的API网关 3、几种部署策略
    『微服务·API网关』
    编写人 | SCscHero 编写时间 | 2020/9/3 AM6:31
    文章类型 | 系列 完成度 | 已完成
    座右铭 每一个伟大的事业,都有一个微不足道的开始。

    一、什么是API网关   完成度:100%

    广泛定义

    在维基百科中没有找到API网关或者API GateWay的词条,但是在百度百科中有这样的总结,可以参考理解。

    两个相互独立的局域网之间通过路由器进行通信,中间的路由被称之为网关。
    任何一个应用系统如果需要被其他系统调用,就需要暴露API,这些 API 代表着一个一个的功能点。
    如果两个系统中间通信,在系统之间加上一个中介者协助API的调用,这个中介者就是API网关。

    ——选自《百度百科》

    个人理解

    个人理解的API网关,是在微服务框架中扮演着统一接入客户端、消费端的API请求的入口,通过API网关做服务发现、反向代理、负载均衡。类似于设计模式中的外观模式。还有其他功能,比如处理身份认证、流量控制、访问日志、反向代理、服务发现。

    常用的API网关有哪些

    (1)【Zull】JAVA开发
    (2)【Kong】lua开发,部分功能收费,维护成本高。
    (3)【TYK】go开发 收费
    (4)【Ocelot】ASP.NetCore开发
    当然,对于.Neter对于Ocelot的学习更为适当,目前学习资料比较多,博主之后也会写一篇Ocelot的博客。

    二、微服务中的API网关   完成度:100%

    微服务架构中API网关所处的角色

    如下图,客户端访问API网关层的负载均衡服务器,SLB转发到API网关集群中处理,API网关集群与注册中心通讯,进行服务发现,进而进行服务访问。

    在这里插入图片描述

    微服务中API网关不可或缺?

    增加客户端请求的复杂度,客户端需要请求不同的微服务。
    跨域问题,微服务的请求地址各不相同。
    身份认证,每套微服务需要一套身份认证,代码耦合度变高。

    API网关的优缺点


    1、封装了API调用的内部结构,可以提供微服务架构中的非业务性功能(身份认证、鉴权等),降低微服务中代码耦合。
    2、客户端只需要关注与网关交互,而不直接调用微服务。
    3、API网关可为每一类客户端提供了特性的API,减少客户端和微服务间的交互次数。
    4、可以结合微服务注册中心组件,动态增加微服务节点,进行服务扩容。并有其他熔断、降级、健康检查等功能。
    5、可以方便实行某些部署策略,如蓝绿部署、金丝雀部署。
    6、可实现服务集群的负载均衡。

    1、增加了维护、部署的工作。网关不可单点部署,否则挂了,将面临整个系统也将崩溃。

    三、几种部署策略   完成度:100%

    蓝绿部署,新旧版本并行发布,流量渐渐转向新版本。
    大爆炸部署,将旧版本停止,切换新版本。
    滚动部署。旧版本缓慢更新到新版本(逐个服务器更新)。
    金丝雀部署。新版本面向一部分用户,最后将完整的流量引流过来。

    如果有帮助到你,请点个赞哦。如果有什么问题,请评论,一起探讨一下。共同进步!如有什么需要与作者联系的,直接私信SCscHero即可。

  • 相关阅读:
    使用Jackson对字典翻译
    通过代理的方式实现对httpClient的监控,超时回调
    mapstruct 1.4.2和lombok 1.18.16之后版本,报错和mapstruct生成空的实现
    jenkins + sonar 中文文件名报错解决
    linux 启动jar脚本
    easyUI关键(常见)组件详解
    shiro三连斩之概念
    SpringMVC请求参数总结
    springboot jsp,过滤器,拦截器
    CentOS添加使用
  • 原文地址:https://www.cnblogs.com/SCscHero/p/13605467.html
Copyright © 2020-2023  润新知