gateway 是什么?
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 网关项目。

这些网关都有一些相似的理念,和自己独特的理解。
目录
gateway 是什么?的更多相关文章
- 记一次nginx部署yii2项目时502 bad gateway错误的排查
周六闲来无事,就试着安装和部署下yii2,安装过程没什么问题,但部署到nginx上时遇到了502 bad gatewary问题,折腾了半天才搞定.这个问题是我以前在部署yii2时没有遇到过的,因此记在 ...
- tomcat 504 gateway time-out
今天有个环境ajax调用一个请求的时候,出现一个504 gateway time-out响应,原以为是nginx找不到资源的问题,恰当我们的服务器上又配置了nginx,看了配置文件,没有指向tomca ...
- linux查看本机IP、gateway、DNS
IP: ifconfig gateway:[root@localhost ~]# netstat -rnKernel IP routing tableDestination Gatew ...
- 502 Bad Gateway深究
早上收到502报警,设置的报警规则是502错误两分钟超过500就报警. 排障流程: 日志分析系统报障-->查看日志系统日志-->nginx错误日志-->php错误日志-->ph ...
- 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 ...
- Azure Application Gateway (3) 设置URL路由
<Windows Azure Platform 系列文章目录> 在之前的文章中,笔者介绍了Azure Web App可以设置URL路由.如下图: 在这里笔者简单介绍一下,首先我们还是创建以 ...
- Azure Application Gateway (4) 设置URL路由 - PowerShell
<Windows Azure Platform 系列文章目录> 本文将介绍如果使用Azure PowerShell,创建Azure Application Gateway URL Rout ...
- Azure Application Gateway (2) 面向公网的Application Gateway
<Windows Azure Platform 系列文章目录> 本章将介绍如何创建面向公网的Application Gateway,我们需要准备以下工作: 1.创建新的Azure Reso ...
- Azure Application Gateway (1) 入门
<Windows Azure Platform 系列文章目录> 请读者注意,Azure Application Gateway在ASM模式下,只能通过PowerShell创建 具体可以参考 ...
- 解决 502、504 Gateway Time-out(nginx)
一.504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx ...
随机推荐
- 定期发送邮件功能-outlook与腾讯邮箱
一.背景:定期发送邮件功能挺好用的,可以帮忙我们在特殊的时间点发送邮件,以及实现无人推送的功能 二.outlook的实现1.首先编辑好邮件保存至草稿 2.选项-延迟传递,设置不早于传递的时间,点击发送 ...
- java - 递归排序 - 求数组最小值
// 递归求数组最小值 public class Bubble { // 定义存储最小值的变量 static int min; public static void main(String[] arg ...
- [转帖]加速拥抱支持开源生态 | OceanBase 开源版3.1.1正式发布
https://www.oceanbase.com/news/accelerated-embrace-and-support-of-open-source-ecosystem-oceanbase-op ...
- [转帖]Jmeter学习笔记(二十一)——Concurrency Thread Group阶梯式加压测试
https://www.cnblogs.com/pachongshangdexuebi/p/11739064.html 一.先安装jmeter的插件管理工具 1.下载地址:jmeter-plugins ...
- [转帖]疑问:进程在竞争CPU时并没有真正运行,为什么还会导致系统的负载升高?
疑问:进程在竞争CPU时并没有真正运行,为什么还会导致系统的负载升高? 因为存在CPU上下文切换. linux系统说明 Linux是一个多任务操作系统,它支持远大于CPU数量的任务同时运行.当然,这些 ...
- [转帖]linux中top命令显示不全怎么解决
https://www.yisu.com/zixun/697775.html 这篇"linux中top命令显示不全怎么解决"文章的知识点大部分人都不太理解,所以小编给大家总结了以下 ...
- Docker 运行 Redis Rabbitmq seata-server ftp 的简单办法
公司里面用到了很多组件, 发现安装二进制太麻烦了, 所以想用Docker 进行安装. 这里面简单给总结一下就不在折腾了.. 1. redis docker run -d -p 6379:6379 -- ...
- Zabbix6.0的安装与IPMI的简单使用
zabbix简介 1.zabbix的安装与使用 建议使用CentOS8进行部署, 不建议使用CentOS7, rpm包直接部署的话,CentOS8比较容易一些 支持mysql数据库.建议先期部署mys ...
- rabbitmq rpm包安装以及简单设置用户的方法
公司有一台性能比较好的power机器. 同事要求安装rabbitmq 今天尝试进行了一下处理 公司里面有网络有相应的源 性能还不错 第一步安装一下依赖的erlang yum install erlan ...
- [译]深入了解现代web浏览器(四)
本文是根据Mariko Kosaka在谷歌开发者网站上的系列文章https://developer.chrome.com/blog/inside-browser-part4/翻译而来,共有四篇,该篇是 ...