当前位置: 首页 > news >正文

Day913.反向代理和网关是什么关系 -SpringBoot与K8s云原生微服务实践

反向代理和网关是什么关系

Hi,我是阿昌,今天学习记录的是关于反向代理和网关是什么关系的内容。

一、反向代理

反向代理 是一种网络技术,用于将客户端的请求转发到一个或多个服务器上,并将响应返回给客户端。与正向代理不同,反向代理隐藏了真实服务器的身份和网络地址,使得客户端无法直接访问服务器。

反向代理通常位于服务器集群的前端,用于接收来自客户端的请求,并根据预定的规则将请求路由到适当的后端服务器。这样可以实现负载均衡、高可用性、安全过滤等功能。此外,反向代理还可以缓存静态内容以加快网站的访问速度,减轻后端服务器的负载。

一些常见的反向代理软件包括NGINX、Apache、HAProxy等。


二、网关

API网关(API Gateway)是一个位于客户端和后端服务之间的服务器,用于管理和公开API(应用程序接口)。

API网关充当了客户端和后端服务之间的代理,负责路由请求、鉴别身份、监控使用情况、限流、缓存、加密、协议转换等功能。

通过API网关,客户端可以使用统一的API终端点来访问后端服务,而无需了解每个服务的具体实现细节。

同时,API网关可以提供多种安全机制,例如身份验证、授权、防火墙和DDoS攻击防护等。

API网关可以对请求进行路由和转换,使得客户端和服务端之间的交互更加灵活和高效。

此外,API网关还可以监控API的使用情况,收集数据并生成报告,以便开发人员和管理人员了解API的使用情况和性能状况,帮助他们更好地优化API设计和管理。

常见的API网关包括Amazon API Gateway、Apigee、Kong等。


三、网关的演变流程

反向代理网关 都是网站架构演进出来的产物。

演进过程如下图所示:

在这里插入图片描述

web时代,web1.0和web2.0时代的应用主要以web网站形式呈现,大多都采用前置反向代理,主要作用是反向路由和负载均衡,也承担安全认证和日志监控、限流熔断或缓存等功能,代表的技术产品有:nginx、haproxy,网站的升级频率并不是特别高,反向代理一般采用静态配置的方式,或有运维团队单独配置。

来到web3.0和微服务的时代,应用的形态发生了很大的变化,出现了大量提供API的服务,因为API的升级和更新的频率很高,对路由安全配置的能力要求很高,就出现了两个问题:

  • 这时候传统静态反向代理的方案就不够灵活,缺乏动态配置能力
  • 传统运维配置的方式效率低下,研发人员无法做到自助的配置

为了去解决如上的矛盾,API网关作为一个补充就运营而生。
API网关和反向代理的功能其实是大同小异的,不过主要面向API和微服务的,最主要的是面向研发人员更加自助优秀灵活的动态配置能力。

反向代理和API网关是大同小异的,反向代理能做的,那API网关基本也是可以做的,最多就需要扩展一下。

但对应架构上存在两套东西,看起来是比较变扭的,而且运维的成本也比较高。

另外在云原生时代,针对服务的要求有了更高的要求,对网关要求动态可配置,还要求动态可编程。

所以在业界又出现了反向代理和网关有融合的趋势,称之为统一代理,其又可以作为反向代理使用,也可以作为API网关使用。

网关主要给微服务/api用,偏向开发人员,反向代理主要面向传统静态web应用,偏向运维。未来趋势是DevOps+网关和反向代理再次融合。


四、反向代理和网关是什么关系

反向代理和网关都是位于客户端和后端服务之间的中间件,用于管理和转发请求。它们之间的关系可以理解为网关是反向代理的升级版

反向代理主要用于将客户端的请求转发到后端服务器上,并将响应返回给客户端。它可以隐藏后端服务器的身份和网络地址,实现负载均衡、高可用性、安全过滤等功能。

而网关则更加复杂,它不仅具有反向代理的功能,还能对请求进行转换、路由、过滤、监控和管理。API网关是一种特殊的网关,专门用于管理和公开API。

因此,可以认为API网关是一种更加高级的反向代理,它不仅提供了反向代理的基本功能,还具有更加丰富和复杂的功能,例如API管理、安全鉴别、流量控制、缓存、转换等。


五、总结

反向代理网关 都是网站架构演进出来的产物。

反向代理和API网关都是中间件技术,用于管理和转发请求。反向代理主要用于将客户端请求转发到后端服务器上,并将响应返回给客户端,可以实现负载均衡、高可用性、安全过滤等功能。而API网关则是一种更加高级的网关,它不仅提供反向代理的基本功能,还具有更加丰富和复杂的功能,例如API管理、安全鉴别、流量控制、缓存、转换等。API网关专门用于管理和公开API,可以提供统一的API终端点,便于客户端访问和后端服务的管理。


相关文章:

Day913.反向代理和网关是什么关系 -SpringBoot与K8s云原生微服务实践

反向代理和网关是什么关系 Hi,我是阿昌,今天学习记录的是关于反向代理和网关是什么关系的内容。 一、反向代理 反向代理 是一种网络技术,用于将客户端的请求转发到一个或多个服务器上,并将响应返回给客户端。与正向代理不同&am…...

IT行业就业趋势显示:二季度平均月薪超8千

我国的IT互联网行业在近些年来规模迅速扩大,技能和技术水平也明显提升,目前IT互联网行业已经成为社会发展中新型产业的重要组成部分,行业的人才队伍也在不断的发展壮大,选择进入入互联网行业工作的人也越来越多。 根据58同城前段…...

【毕业设计】基于Java的五子棋游戏的设计(源代码+论文)

简介 五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用,客户端…...

C#:Krypton控件使用方法详解(第十四讲) ——kryptonSeparator

今天介绍的Krypton控件中的kryptonSeparator。下面介绍控件的外观属性如下图所示:Cursor属性:表示鼠标移动过该控件的时候,鼠标显示的形状。属性值如下图所示:DrawMoveIndicator属性:表示确定移动分隔符时是否绘制移动…...

Java的jar包打包成exe应用

将springboot项目使用maven打出的jar包,打成windows平台下exe应用程序包(自带jre环境)。 工具:1、exe4j 2、Inno Setup 工具放到网盘,链接:https://pan.baidu.com/s/1ZHX8P7u-7GBxaC6uaIC8Ag 提取码&#x…...

Latex学习笔记

Latex 学习笔记 快速入门 编译软件: TeX Live TexStudio, Ctex, 线上: Overleaf第一个示例代码: \documentclass{article} % 设置文档使用的文档类 % 导言区 \title{my first Latex document} \author{Jclian91} \date{\today} \begin{document} % 正文区\maket…...

【c++复习】C++的基础知识(常用关键字、缺省参数、函数重载、引用)

C基础写在开头C基础常用关键字using namespace流插入和流提取操作符内联函数(inline)宏auto关键字 (c11nullptr (c11缺省参数函数重载引用写在开头 C基础部分我想介绍如下几个关键点: 常见关键字命名空间的定义和使用缺省参数函数重载引用、指针和引用的区别内联函…...

Docker入门建议收藏 第二部分

二、Docker 容器技术与虚拟机的区别 Docker 到底是个什么东西呢?我们在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机。 虚拟机 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在…...

蓝桥杯三月刷题 第7天

文章目录💥前言😉解题报告💥三角回文数🤔一、思路:😎二、代码:💥数数🤔一、思路:😎二、代码:💥数组切分🤔一、思路:😎二、…...

面试官问百万数据excel导出功能如何实现?

文章目录 背景实现1.异步处理1.1 使用job1.2 使用mq2.使用easyexcel4.多个sheet5.计算limit的起始位置6.文件上传到OSS7.通过WebSocket推送通知8.总条数可配置9.order by商品编号总结背景 用户在UI界面上点击全部导出按钮,就能导出所有商品数据。 咋一看,这个需求挺简单的。…...

理解HTTPS及配置

HTTP的弊端及HTTPS的由来 众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种.那么在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数据本身存在的安全问题:(1)、通信使用明文(不…...

IP-guard浏览器上传下载智能加解密,让管理更省心省力

现在员工日常工作中经常会通过浏览器访问公司的业务系统(OA、JIRA等),或者访问其他外部系统,访问下载服务器的文档变得更便捷,工作地点也不再局限于办公室中。为确保应用系统机密安全且又不影响员工的正常工作&#xf…...

leetcode day22 位运算

位运算咋这么老难 剑指 Offer 56 - I. 数组中数字出现的次数 借评论区大佬答案:nums [1,2,10,4,1,4,3,3] a^a0a^0aa^b^ca^c^ba&(-a)最低位为1的二进制(从又到左)所有的异或结果得到sum2^108flag-8&88可分为两组,一组为与…...

java中如何判断map是否为空

java中判断map是否为空的方法是:利用isEmpty()函数来判断。函数介绍:isEmpty()是Java中用于判断某种容器是否有元素的系统库函数。如用来判断ArrayList,HashSet,HashMap是否有元素等。在Java中,可以用isEmpty();判断一…...

C语言数据结构:链表的增删改查及动态创建

目录 一,链表与数组 ① 定义区别 ② 实现区别 二,链表遍历和计算链表中节点数量 ① 链表遍历 ② 计算节点数量 三,查找链表节点 四,增加节点到链表中 ① 在节点后方插入 ② 在节点前方插入 ● 在头节点前方插入 ● 在…...

「Python 基础」I/O 编程、正则表达式

文章目录1. I/O 编程文件读写StringIO 和 BytesIO操作文件和目录序列化2. 正则表达式进阶re 模块1. I/O 编程 I/O指Input/Output; Input Stream 从外面(磁盘、网络)流进内存; Output Stream 从内存流到外面; 同步 …...

java 把pdf图片文档和文章文档转成文字的方法

java 提供了一些库和工具可以用来把 PDF 文档和图片文档转成文本。 Apache PDFBox:这是一个开源的 PDF 库,可以用来提取 PDF 文件中的文本内容。 iText:这是一个用于创建和处理 PDF 文件的库,可以用来提取 PDF 文件中的文本内容。…...

JavaScript 中的全部对象

宿主对象(host Objects):由 JavaScript 宿主环境提供的对象,它们的行为完全由宿主环境决定。 【 浏览器环境宿主,全局对象window,window 上又有很多属性,如 document。 全局对象 window 上的属…...

【教学典型案例】23.部分服务总是频繁出现掉线情况

目录一:背景介绍问题描述解决二:问题分析过程解决过程设计到的知识1、nacos的data目录作用。2、nacos data目下的protocol目录3、nacos ip混乱问题三:总结一:背景介绍 问题描述 因为某些特殊原因需要把nacos迁移到另一个版本的n…...

线程安全 List 效率测试

List 常见类以及各自优缺点可自行参考 https://blog.csdn.net/weixin_39883065/article/details/111197724 本机环境 java 版本:1.8.0_161 window 信息: 测试代码 下面通过代码测试 List 线程安全类 Vector、Collections.synchronizedList(List lis…...

动手实现一个简易的RS纠删码:用Python从GF(2^8)有限域到编解码全流程

动手实现一个简易的RS纠删码:用Python从GF(2^8)有限域到编解码全流程 在分布式存储和通信系统中,数据可靠性始终是核心挑战之一。想象一下,当你将文件上传到云端或通过网络传输重要数据时,如何确保即便部分数据丢失或损坏&#xf…...

Flutter 轻量存储方案介绍、区别、对比和使用场景

在 Flutter 项目中,本地存储通常可以分为几类: 第一类是轻量 Key-Value 存储,例如 shared_preferences、get_storage、mmkv,适合保存开关、配置、登录状态等简单数据。 第二类是安全存储,例如 flutter_secure_storage&…...

Midjourney Chlorophyll印相实战手册(含独家--sref权重调优表与叶脉纹理增强公式)

更多请点击: https://intelliparadigm.com 第一章:Midjourney Chlorophyll印相的技术起源与美学范式 Chlorophyll印相并非传统暗房工艺的简单复刻,而是Midjourney V6模型在跨模态语义理解基础上,对植物色素光学响应机制进行算法化…...

SoC早期流片策略:风险控制与工程实践深度解析

1. 早期流片的风险与回报:一次深度权衡在系统级芯片开发这个行当里干了十几年,验证始终是悬在每个项目团队头顶的达摩克利斯之剑。面对动辄数亿门级、集成数十个异构核心的复杂SoC,想要在流片前达到“万无一失”的验证覆盖率,所需…...

规范驱动开发:基于OpenAPI与LLM的现代API构建实践

1. 项目概述:一个基于规范驱动的现代API开发实践最近在GitHub上看到一个挺有意思的项目,叫izzymsft/spec-driven-dev-backend-apis,它是一个用FastAPI构建的客户管理后端REST API。这个项目本身的功能——客户和地址的CRUD操作,结…...

在reMarkable平板上部署AI智能体:手写交互与视觉语言模型实践

1. 项目概述:当reMarkable平板遇见AI,一个手写交互的智能副驾如果你和我一样,既是reMarkable电子墨水屏平板的深度用户,又对AI智能体(Agentic AI)的潜力充满好奇,那么你一定会对这个项目感到兴奋…...

LSLib:让《神界原罪》和《博德之门3》MOD制作变得高效完整的实用指南

LSLib:让《神界原罪》和《博德之门3》MOD制作变得高效完整的实用指南 【免费下载链接】lslib Tools for manipulating Divinity Original Sin and Baldurs Gate 3 files 项目地址: https://gitcode.com/gh_mirrors/ls/lslib 你是否曾想为《神界原罪》或《博德…...

题目五:抽象类 + 接口 混合实现

编程要求:抽象类 Machine:抽象方法 work(),普通方法 start();接口 Clean:抽象方法 clean();类 Robot继承抽象类 Machine 实现接口 Clean;实现所有未实现的方法;测试创建机器人对象&…...

别再只盯着原理图了!用Python+OpenCV动手模拟激光三角测距(斜射/直射对比)

用PythonOpenCV模拟激光三角测距:斜射与直射的实战对比 激光三角测距技术听起来高大上,但真正理解它的精髓往往需要跳出公式推导的泥潭。作为一名长期在工业检测领域摸爬滚打的技术人员,我发现用代码模拟物理过程是最有效的学习方式。本文将…...

别再只盯着机械式了!一文看懂MEMS、Flash、OPA等固态激光雷达怎么选(附避坑指南)

固态激光雷达技术全景:从MEMS到OPA的实战选型策略 激光雷达技术正在经历一场静默革命——机械旋转部件逐渐被半导体芯片取代,就像当年电子管被晶体管淘汰的历史重演。在自动驾驶和机器人领域摸爬滚打多年的工程师都清楚,选择激光雷达就像在迷…...