Gateway 定义是什么?
百度百科解释:
网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
网关既可以用于广域网互连,也可以用于局域网互连。
网关是一种充当转换重任的计算机系统或设备。
使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。
与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。
通俗一点的讲:网关就是要去别的网络的时候,把报文首先发送到的那台设备或软件。
就像大家小区的菜鸟驿站,要收发快递都需要在驿站处理。
驿站知道怎么把你的馒头送到杭州的张三手里,也知道成都的李四寄来的水果是小区哪栋楼美女应该吃的。
硬件网关
在it技术领域,网关最初是一种硬件设备的代名词,时至今日,在购物网站上搜索“网关”依然可以看见大量硬件设备
其中路由器就是大家接触最多的网关设备,这些设备通常主要负责数据转发的角色。
换句话说,这些设备就像快递公司一样负责收发数据,而我们像在微信上交流就必须把我们的数据打包成快递让网关送到其他人那里。
软件网关
而在软件领域,网关软件大多主要解决以下问题:
-
设备成本
互联网不断发展,我们有各种各样需求需要针对性转发各种数据
- 比如早年博客盛行的时代,自己搭建博客是技术宅的必备选择,如果都需要一个硬件设备,电费网费设备费估计没多少人能承受
- 直播、短视频盛行的现在,如此量级庞大并且种类繁多的数据流如果仅仅通过硬件设备分类,定位以及转发,几亿人的视频如何配额呢?
-
定制化能力
现代需求越来越复杂,硬件由于难以修改,很难针对性添加业务处理,比如
- 大家常常遇见攻击之后,想限制某个ip访问量
- 站点访问量暴增,需要添加新的服务器,像微博上明星出轨离婚那个夸张访问量
- 微服务拆分
- 灰度上线
- 等等
由 HAProxy、NGINX、Spring Cloud Gateway、Zuul、envoy 再到 apisix 、kong、istio 等等,复杂度与其涵盖的知识面,是笨鸟本人多年都不曾学完。
Api Gateway 介绍
API Gateway 其实是位于客户端与后端服务之间的 API 管理工具。是特定场景的软件网关,也是反向代理的典型代表。
百度百科解释:API网关是一个服务器,是系统的唯一入口。
从面向对象设计的角度看,它与外观模式类似。
API网关封装了系统内部架构,为每个客户端提供一个定制的API。
它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。
通常,网关也是提供REST/HTTP的访问API。
服务端通过API-GW注册和管理服务。
现在很多应用和服务都在向微服务、容器化迁移,形成新的云原生时代。
云原生是下一个 5-10 年的技术颠覆,它将重写传统企业的技术架构,非常适用于公有云、私有云、混合云等各种环境。
一个动态、实时、高性能的 API 网关可以提供负载均衡、动态上游、灰度发布、精细化路由、限流限速、服务降级、服务熔断、身份认证、可观测性等数百项功能。
其作用可以用网友的这幅图理解
在 CNCF 的 API Gateway landscape 中有接近 20 个 API 网关的选型(不包括公有云厂商的产品),包括 Apache APISIX、Kong、Tyk 等等。很多网关都称自己是下一代 API 网关,是最受欢迎的开源 API 网关项目。
这些网关都有一些相似的理念,和自己独特的理解。