Gateway 定义是什么?

百度百科解释:

网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。

网关既可以用于广域网互连,也可以用于局域网互连。

网关是一种充当转换重任的计算机系统或设备。

使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。

与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

通俗一点的讲:网关就是要去别的网络的时候,把报文首先发送到的那台设备或软件。

就像大家小区的菜鸟驿站,要收发快递都需要在驿站处理。

驿站知道怎么把你的馒头送到杭州的张三手里,也知道成都的李四寄来的水果是小区哪栋楼美女应该吃的。

硬件网关

在it技术领域,网关最初是一种硬件设备的代名词,时至今日,在购物网站上搜索“网关”依然可以看见大量硬件设备

其中路由器就是大家接触最多的网关设备,这些设备通常主要负责数据转发的角色。

换句话说,这些设备就像快递公司一样负责收发数据,而我们像在微信上交流就必须把我们的数据打包成快递让网关送到其他人那里。

软件网关

而在软件领域,网关软件大多主要解决以下问题:

  1. 设备成本

    互联网不断发展,我们有各种各样需求需要针对性转发各种数据

    • 比如早年博客盛行的时代,自己搭建博客是技术宅的必备选择,如果都需要一个硬件设备,电费网费设备费估计没多少人能承受
    • 直播、短视频盛行的现在,如此量级庞大并且种类繁多的数据流如果仅仅通过硬件设备分类,定位以及转发,几亿人的视频如何配额呢?
  2. 定制化能力

    现代需求越来越复杂,硬件由于难以修改,很难针对性添加业务处理,比如

    • 大家常常遇见攻击之后,想限制某个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 网关项目。

这些网关都有一些相似的理念,和自己独特的理解。

目录

gateway 是什么?的更多相关文章

  1. 记一次nginx部署yii2项目时502 bad gateway错误的排查

    周六闲来无事,就试着安装和部署下yii2,安装过程没什么问题,但部署到nginx上时遇到了502 bad gatewary问题,折腾了半天才搞定.这个问题是我以前在部署yii2时没有遇到过的,因此记在 ...

  2. tomcat 504 gateway time-out

    今天有个环境ajax调用一个请求的时候,出现一个504 gateway time-out响应,原以为是nginx找不到资源的问题,恰当我们的服务器上又配置了nginx,看了配置文件,没有指向tomca ...

  3. linux查看本机IP、gateway、DNS

    IP:     ifconfig gateway:[root@localhost ~]# netstat -rnKernel IP routing tableDestination     Gatew ...

  4. 502 Bad Gateway深究

    早上收到502报警,设置的报警规则是502错误两分钟超过500就报警. 排障流程: 日志分析系统报障-->查看日志系统日志-->nginx错误日志-->php错误日志-->ph ...

  5. Problem with "AnyConnect was not able to establish connection to the specified secure gateway."

    Cisco的VPN客户端最近报"AnyConnect was not able to establish connection to the specified secure gateway ...

  6. Azure Application Gateway (3) 设置URL路由

    <Windows Azure Platform 系列文章目录> 在之前的文章中,笔者介绍了Azure Web App可以设置URL路由.如下图: 在这里笔者简单介绍一下,首先我们还是创建以 ...

  7. Azure Application Gateway (4) 设置URL路由 - PowerShell

    <Windows Azure Platform 系列文章目录> 本文将介绍如果使用Azure PowerShell,创建Azure Application Gateway URL Rout ...

  8. Azure Application Gateway (2) 面向公网的Application Gateway

    <Windows Azure Platform 系列文章目录> 本章将介绍如何创建面向公网的Application Gateway,我们需要准备以下工作: 1.创建新的Azure Reso ...

  9. Azure Application Gateway (1) 入门

    <Windows Azure Platform 系列文章目录> 请读者注意,Azure Application Gateway在ASM模式下,只能通过PowerShell创建 具体可以参考 ...

  10. 解决 502、504 Gateway Time-out(nginx)

    一.504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx ...

随机推荐

  1. eyebeam高级设置

    概述 VOIP测试过程中,经常会用到各种各样的SIP终端,eyebeam是其中最常见的一种. 在eyebeam的配置option中,只有少量的配置选项,有些特殊的设置无法配置. 比如DTMF码的发码形 ...

  2. Redis 哨兵模式高可用

    本文为博主原创,未经允许不得转载: 目录: 1. 哨兵 Sentinel 介绍 2. 哨兵架构特点及工作原理 3. redis哨兵架构搭建步骤 4. 哨兵数据丢失 5. spring boot 整合  ...

  3. 关于spring-boot-starter-parent 3.1.2和3.1.5版本的区别导致的错误

    1.问题 在学习黑马程序员SpringBoot3+Vue3全套视频教程时,手动配置springboot项目时,由于之前spring-boot-starter-parent安装的版本是3.1.5,视频要 ...

  4. 一 , FileChanle

    package nio; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer ...

  5. Linux-磁盘-di-目录查询-du-tree

  6. shell-命令行位置参数-$n

  7. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.11.30)

    一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...

  8. (保姆级)服务器-Zabbix6.0使用Python脚本实现带图片的邮箱的报警

    前言 近期在琢磨Zabbix邮箱报警的功能,但是网上的教程通常是4.0或5.0版本Zabbix,并使用Python2.7环境,运行在新版本Zabbix6.0上有颇多问题,为此我基于原先教程修改基于Za ...

  9. Advanced .Net Debugging 1:你必须知道的调试工具

    一.简介    我曾看到过许多开发人员使用错误的工具来分析问题,更有甚者,有些人连任何工具都没有使用.他们采取的分析方法通常包括:输出更多的调试信息,或者做一些临时性的代码审查.这里的临时性是指,通过 ...

  10. [转帖]Kafka Dashboard

    https://grafana.com/grafana/dashboards/18276-kafka-dashboard/ Kafka resource usage and consumer lag ...