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

Envoy 详解:云原生时代的高性能网络代理

Envoy 详解云原生时代的高性能网络代理文章目录Envoy 详解云原生时代的高性能网络代理前言核心特性架构与设计哲学核心组件与术语xDS 协议动态配置的基石主要使用场景与其他代理的对比Envoy vs Nginx部署模式与未来演进总结前言Envoy 是由 Lyft 开发并于 2016 开源的高性能网络代理现已成为 CNCF云原生计算基金会的毕业项目。在云原生生态中尤其是在 Istio 等服务网格架构里Envoy 扮演着数据平面的核心角色。本文将详细介绍 Envoy 的核心特性、架构设计、关键组件、使用场景及与其他代理的对比。核心特性Envoy 的设计目标是「网络对应用程序透明」并在此指导下实现了一系列强大的功能进程外架构Envoy 作为独立进程运行与应用无论使用何种语言编写并行。这使得它可以独立升级同时构成透明的服务通信网络。强大的可观测性原生集成丰富的指标、日志和分布式追踪能力帮助用户了解每个请求的完整行为路径。先进的流量管理支持复杂请求匹配路径、Header 等实现 A/B 测试、灰度发布金丝雀发布、重试、超时和熔断等策略。广泛的协议支持原生支持 HTTP/1.1、HTTP/2、gRPC 和 HTTP/3其中 HTTP 连接管理器是核心组件负责管理 HTTP 流量的生命周期。智能负载均衡与健康检查内置多种负载均衡算法Round Robin、Random 等同时支持主动和被动健康检查自动摘除不健康实例。灵活的可扩展性通过 L3/L4 过滤器Filter和 L7 HTTP 过滤器处理具体任务并支持通过 WebAssemblyWasm或 Lua 脚本集成自定义逻辑。架构与设计哲学Envoy 的核心设计哲学是「数据平面与控制平面分离」。Envoy 自身只专注于高性能的数据转发而所有配置下发和策略管理都通过标准化的xDS API由独立的控制平面完成。这种架构使 Envoy 极为灵活并能适应动态的云原生环境。Envoy 使用现代 C 编写采用事件驱动、非阻塞 I/O 模型如 epoll从而保证了高并发下的处理性能。核心组件与术语理解 Envoy 需要熟悉以下几个核心抽象概念它们共同构成了 Envoy 处理流量的完整路径。Downstream / Upstream下游/上游发送请求的客户端称为下游接收请求的服务称为上游。Listener监听器Envoy 暴露的端口负责监听并接收下游请求。Filter过滤器插入监听器链中的可插拔逻辑单元。网络层面L3/L4包括 TCP/UDP 代理过滤器以及用于 L7 入口的 HTTP 连接管理过滤器L7 HTTP 层则包含路由、限流、认证、缓存等丰富的过滤器。Cluster集群一组逻辑上相同的上游服务器负责实际执行业务请求。Route路由规则用于匹配 HTTP 请求并将其转发到对应集群的规则。xDSX Discovery Service一套动态获取配置的 API是 Envoy 动态配置能力的基石。主要包括LDSListener Discovery Service动态发现监听器RDSRoute Discovery Service动态发现路由规则CDSCluster Discovery Service动态发现上游集群EDSEndpoint Discovery Service动态发现集群中的具体服务实例地址SDSSecret Discovery Service动态获取 TLS 证书xDS 协议动态配置的基石xDS 协议使 Envoy 能在不重启的情况下完成几乎所有配置更新这是服务网格实现动态流量治理的基础。SotWState of the World基础模式控制平面发送完整的配置快照。Delta xDS增量 xDS更高效的机制只发送发生变化的资源通过资源版本号和名称进行引用大幅减少网络开销。主要使用场景服务网格数据平面这是 Envoy 最核心的身份。作为 Istio 的默认数据平面Envoy 以 Sidecar 形式拦截服务间流量实现流量管理、mTLS 安全等功能。边缘代理南北向可作为 API 网关或 Kubernetes Ingress Controller处理进入集群的外部流量。微服务通信总线代理微服务间的所有网络通信提供负载均衡、服务发现、重试等能力。高级负载均衡器利用强大的流量切分和路由能力实现 A/B 测试、蓝绿部署和灰度发布。Sidecar是一种分布式架构中的部署模式。它将应用程序的辅助功能如网络代理、日志收集、监控、配置中心客户端等以独立的进程或容器形式与主应用部署在同一台主机或同一个 Pod上共享资源如网络栈、文件系统并为应用提供增强能力。这个名字来源于摩托车旁边的边斗——边斗本身不提供动力但依附于摩托车可以携带额外物品扩展摩托车的功能。1. 核心特征共存Sidecar 与主应用运行在相同的主机环境例如 Kubernetes 中的同一个 Pod共享网络命名空间和存储卷。独立它是独立的进程/容器与主应用解耦可以独立升级、重启不影响主应用逻辑。透明主应用通常无需感知 Sidecar 的存在Sidecar 通过拦截流量例如配置 iptables或读取共享配置来工作。2. 在服务网格中的典型实现Istio Envoy在云原生领域Sidecar 最著名的应用是服务网格的数据平面。以 Istio 为例每个应用 Pod 中会自动注入一个 Envoy 代理容器作为 Sidecar。这个 Envoy Sidecar 负责拦截所有进出应用的流量HTTP、gRPC、TCP 等。实现服务发现、负载均衡、熔断、重试、超时等流量治理。自动启用 mTLS 加密和认证。生成详细的遥测数据指标、日志、追踪。应用容器只需要关心业务逻辑完全不需要修改代码即可获得完整的服务网格能力。与其他代理的对比Envoy vs Nginx特性维度EnvoyNginx架构理念数据/控制平面分离动态、云原生配置实时推送传统单体、基于静态文件配置更新较慢可扩展性原生支持 Wasm/Lua内置 JWT 验证等过滤器依赖模块复杂逻辑常用 Lua 或第三方模块HTTP 吞吐量约 8 万 RPS启用七层处理后差距缩小约 10 万 RPS经典代理吞吐稍占优势P99 延迟约 2 ms多线程及无锁设计优势约 5 ms内存占用约 150 MB/Pod资源受限环境需注意约 50 MB/Pod服务网格集成原生支持是 Istio 等主流服务网格的数据平面非原生需复杂工具集成部署模式与未来演进Sidecar 模式与 Ambient Mesh在 Istio 中Envoy 最常见的部署方式是 Sidecar 模式即每个应用 Pod 内注入一个独立的 Envoy 容器。如今也出现了Ambient Mesh模式旨在减少 Sidecar 资源开销通过节点级的四层代理ztunnel和可选命名空间的七层代理Waypoint Proxy实现服务网格功能。最新版本与演进Envoy 保持快速迭代持续强化如 WebAssemblyWasm扩展、HTTP/3 性能优化以及对 Kafka、MongoDB 等更多 L7 协议的深度支持。总结Envoy 不仅仅是传统的反向代理而是为云原生时代设计的通信总线和网络架构中心。它通过数据/控制平面分离、动态配置、强大的可观测性和灵活的可扩展性成为构建现代化大规模分布式系统不可或缺的基石。无论作为服务网格的数据平面、边缘网关还是高级负载均衡器Envoy 都展现出了卓越的性能和适应性。如果你正考虑在实际环境中使用 Envoy可以结合自己的云环境例如 Kubernetes进一步探索其具体配置和最佳实践。

相关文章:

Envoy 详解:云原生时代的高性能网络代理

Envoy 详解:云原生时代的高性能网络代理 文章目录Envoy 详解:云原生时代的高性能网络代理前言核心特性架构与设计哲学核心组件与术语xDS 协议:动态配置的基石主要使用场景与其他代理的对比(Envoy vs Nginx)部署模式与未…...

将Taotoken接入Node.js后端服务,为应用添加智能对话能力

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 将Taotoken接入Node.js后端服务,为应用添加智能对话能力 1. 场景概述:后端服务集成大模型的需求 在开发具…...

国内开通 GPT 会员的自助充值流程记录

国内用户开通 GPT Plus / Pro,比较常见的卡点是支付方式、流程步骤和账号安全。我看了下 cdk.hohy6.com 这个页面,它的流程比较直接:选择套餐,填写 Session Token,支付宝付款,然后系统为自己的 ChatGPT 账号…...

书评质量断崖式提升的关键一步,Perplexity辅助写作的3层认知跃迁与2个致命误用陷阱

更多请点击: https://kaifayun.com 第一章:书评质量断崖式提升的关键一步,Perplexity辅助写作的3层认知跃迁与2个致命误用陷阱 Perplexity 不是搜索引擎的替代品,而是面向深度思考的“认知协作者”。当用于技术书评写作时&#x…...

避开PostgreSQL逻辑复制的那些坑:从复制标识(Replica Identity)配置到性能调优指南

PostgreSQL逻辑复制深度优化:从复制标识陷阱到高性能配置实战 在数据库架构设计中,逻辑复制作为PostgreSQL的核心功能之一,为数据分发、高可用和实时分析提供了强大支持。但许多中高级用户在实际部署时,往往会在复制标识配置和性能…...

周奕成(中国武术散打运动员)

周奕成,男,出生于辽宁省海城市,中国武术散打运动员,二级运动员(三次认证), 所属队伍为辽宁省散打专业队,参赛体重区间:60kg → 65kg → 70kg 。赛事与等级认证1. 2023年 …...

为什么你做的RAG总是翻车?三个坑让你怀疑人生

电梯里同事突然问:"你觉得RAG落地最难的地方在哪?"我愣了5秒,保安在旁边接话:“我以前干过,主要就文档预处理、召回质量、生成忠实度。” 一、真实场景里的RAG,和你想象的完全不一样 大模型的八…...

载肌红蛋白的钆纳米Texaphyrin用于氧协同和成像引导的放射增敏治疗

北京大学王凡教授、中国科学院生物物理研究所史继云研究员和多伦多大学郑钢教授团队在《Nature Communications》(IF16.6)上发表题为“Myoglobin-loaded gadolinium nanotexaphyrins for oxygen synergy and imaging-guided radiosensitization therapy”…...

为什么所有人都在聊RAG?看这篇,小白也能彻底搞懂

你是否有过这样的经历——你满怀期待地问 AI 一个专业问题,它流畅地给了你一段"答案",引经据典、逻辑自洽。 结果一查,发现全是错的。一本正经地胡说八道。 这就是大语言模型(LLM)的致命短板:它…...

告别单一视角:用Transformer融合骨架与轮廓,实战提升步态识别鲁棒性

多模态步态识别实战:基于Transformer的骨架与轮廓融合技术 步态识别作为远距离身份认证的重要手段,在安防监控、智能门禁等领域展现出独特优势。然而传统单模态方法在面对换装、遮挡等现实场景时,识别性能往往大幅下降。2023年CVPR会议上提出…...

代码随想录算法训练营第六十天|Bellman_ford 队列优化算法、Bellman_ford之判断负权回路、bellman_ford之单源有限最短路

参考文章均来自代码随想录 Bellman_ford 队列优化算法 参考文章链接 对第 59天中的题目进行优化 详细见参考文章推理步骤 还是用邻接表 #include <iostream> #include <vector> #include <queue> #include <list> #include <climits> using …...

YOLOv8模型家族全解析:P2、P6、标准版到底该选哪个?一张图帮你搞定选择困难症

YOLOv8模型家族全解析&#xff1a;P2、P6、标准版到底该选哪个&#xff1f; 在计算机视觉项目的初期&#xff0c;模型选型往往是最令人头疼的环节。面对GitHub仓库中琳琅满目的YAML配置文件&#xff0c;即便是经验丰富的工程师也难免陷入选择困难。YOLOv8作为当前最先进的目标检…...

Tycoon2FA 利用 OAuth 设备码钓鱼劫持 Microsoft 365 账户的机理与防御

摘要 以 Tycoon2FA 为代表的钓鱼即服务平台正采用基于 OAuth 2.0 设备码流程的新型钓鱼攻击&#xff0c;针对 Microsoft 365 账户实施高隐蔽性劫持。该攻击不窃取明文口令与传统双因素验证码&#xff0c;而是诱导用户在微软官方认证页面完成设备授权&#xff0c;使攻击者获取合…...

2026年最容易上手的5个AI副业

前言: 2026年,AI工具已经彻底改变了副业的门槛。过去需要3-5年积累的技能,借助AI可能只需3-5周就能开始接单赚钱。 这篇文章精选了5个最容易上手、最快出收益的AI副业方向,每个方向都附上了具体操作路径。 一、为什么现在是做AI副业的最好时机? 三个关键信号: 需求爆发…...

【行业趋势】软件测试的第三次革命:从手工、自动化到AI Agent驱动

写在前面 如果你是一名测试工程师&#xff0c;大概率经历过这样的时刻&#xff1a;凌晨两点&#xff0c;被自动化回归失败的告警吵醒&#xff0c;爬起来一看&#xff0c;又是页面改了个按钮ID&#xff0c;三百条用例全红了。修了一小时定位器&#xff0c;天亮了。 如果你是一名…...

OpenMMLab环境配置避坑指南:从CUDA 11.6到PyTorch 1.13,如何为MMRotate 0.3.4找到对的mmcv-full?

OpenMMLab精准环境配置实战&#xff1a;破解CUDA 11.6与PyTorch 1.13下的mmcv-full匹配困局 当你在RTX 3060显卡上尝试运行MMRotate 0.3.4时&#xff0c;突然发现控制台抛出ImportError: cannot import name get_dist_info from mmcv.runner——这往往是深度学习工程师与OpenMM…...

HTTPS单向认证、双向认证、抓包原理与反抓包策略详解

HTTPS单向认证、双向认证、抓包原理与反抓包策略详解 一、HTTPS单向认证 HTTPS单向认证是只要求站点部署 SSL证书&#xff0c;客户端会去验证服务器的身份&#xff0c;而服务器不会去验证客户端的身份。这种认证方式相对简单&#xff0c;但可以提供一定的 安全性。任何用户都可…...

CLup使用:一键创建Doris存算一体集群

通过 CLup 数据库管理平台的可视化界面&#xff0c;一键自动化部署 Apache Doris 存算一体集群&#xff0c;自动完成环境检查、配置初始化、节点部署与集群注册&#xff0c;无需手动执行复杂的 FE/BE 配置与启动命令&#xff0c;大幅降低部署门槛。CLup安装部署请看&#xff1a…...

如何轻松配置Windows和Office:面向新手的终极解决方案指南

如何轻松配置Windows和Office&#xff1a;面向新手的终极解决方案指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出配置提示而烦恼吗&#xff1f;Office突然变成只…...

学术论文翻译翻车重灾区!Perplexity翻译查询功能如何通过引用锚点保留+LaTeX公式智能隔离实现零失真输出(仅限Pro+订阅用户可见的隐藏模式)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;学术论文翻译翻车重灾区的底层归因分析 学术论文翻译失准并非偶然现象&#xff0c;其背后存在系统性语言学、认知科学与工程实践三重张力。当非母语研究者依赖通用大模型或词典式工具进行技术文本转译时…...

告别Rufus!在Ubuntu 22.04上用Ventoy打造你的万能Windows安装盘(附PE系统集成)

在Ubuntu 22.04上使用Ventoy打造全能Windows安装与维护工具盘 作为一名长期以Linux为主力系统的开发者&#xff0c;难免会遇到需要为朋友或备用机安装Windows的场景。传统方案往往要求我们临时切换到Windows环境使用Rufus等工具&#xff0c;既低效又违背Linux用户的习惯。本文将…...

《ROS 2机器人开发从入门到实践》 2.3 使用功能包组织C++节点

简介&#xff1a; 上一小节我们用功能包组织了python节点&#xff0c;这节我们把C节点也装进功能包。 参考资料&#xff1a; 参考资料均来自于鱼香ROS社区创始人小鱼&#xff0c;资源如下&#xff1a; ①&#xff1a;【《ROS 2机器人开发从入门到实践》 2.3 使用功能包组织…...

日志分析 Elasticsearch 和 logstach.filebeat.

一、Elasticsearch 到底是啥&#xff1f;简单说&#xff0c;ES 就是一个能飞速搜索和分析海量数据的搜索引擎。类似百度、谷歌&#xff0c;但它是给你公司内部的数据用的。比如&#xff1a;淘宝搜商品&#xff0c;输入“手机 拍照好”&#xff0c;毫秒级给你结果——背后就是 E…...

Claude Code 配置手册

验证已经安装node和npmnode -v npm -v如果显示版本号且 ≥ 18.0.0&#xff0c;则说明安装成功安装CLInpm i -g anthropic-ai/claude-codelatest npm i -g openai/codexlatest npm i -g google/gemini-clilatest根目录下新建 settings.json 配置文件vim ~/.claude/settings.json…...

Creo 9.0新手必看:别再乱点‘基准平面’了,这7种创建方法才是正确打开方式

Creo 9.0基准平面实战指南&#xff1a;7种高效创建方法与避坑技巧 刚接触Creo 9.0的工程师们&#xff0c;是否经常遇到这样的场景&#xff1a;面对一个复杂零件建模时&#xff0c;明明脑子里已经构思好了结构&#xff0c;却卡在第一步——找不到合适的草绘平面&#xff1f;或者…...

【c++面向对象编程】第37篇:面向对象设计原则(一):单一职责与开闭原则

目录 一、为什么需要设计原则&#xff1f; 二、单一职责原则&#xff08;Single Responsibility Principle&#xff09; 违反原则的例子 重构&#xff1a;分离职责 三、开闭原则&#xff08;Open-Closed Principle&#xff09; 违反原则的例子 重构&#xff1a;使用多态&…...

全球数据治理:合规与AI双引擎驱动

一、全球化数据治理进入“合规AI”双引擎驱动时代2026年&#xff0c;全球数据治理市场的竞争格局正在被两股力量重塑。一方面&#xff0c;各国数据主权法规持续收紧——中东多国强化数据本地化存储要求&#xff0c;欧盟AI治理法案进入实质性执行阶段&#xff0c;拉美个人数据保…...

MTK手机用上高通QC快充,背后多出的那颗‘xmusb350’芯片到底在忙啥?

MTK手机为何需要外挂xmusb350芯片实现高通QC快充&#xff1f; 当你在电商平台搜索"支持QC快充的MTK手机"时&#xff0c;可能会发现一个有趣的现象&#xff1a;采用联发科处理器的机型在充电模块描述中&#xff0c;常会特别标注"搭载独立QC协议芯片"。这背后…...

辽宁传媒学院学生宿舍与生活服务情况梳理

校园住宿条件是了解高校生活服务的重要方面。本文对辽宁传媒学院学生宿舍房型、设施配置、日常服务和新生入住流程进行梳理&#xff0c;供读者了解校园生活环境时参考。由于宿舍分配、设施配置和报到流程可能随年份调整&#xff0c;具体安排应以学校当年发布的通知为准。一、宿…...

如何快速解锁教学控制:JiYuTrainer极域电子教室防控制完全指南

如何快速解锁教学控制&#xff1a;JiYuTrainer极域电子教室防控制完全指南 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在计算机课堂上&#xff0c;眼睁睁看着老师的演…...