蚂蚁金服 Service Mesh 大规模落地系列 - 网关篇

【DSP】【工程实战】从零构建C6678多核工程:CCS环境配置与启动模式详解 本文详细介绍了在CCS开发环境中从零构建TMS320C6678多核DSP工程的完整流程。内容涵盖KeyStone架构解析、工程创建、基础代码编写、链接命令文件配置、仿真器调试,并重点深入讲解了包括I2C EEPROM在内的多种一级启动模式原理与配置方法,为开发者提供了一套清晰、可复用的实战指南。 阅读详情

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第五篇 - 网关篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。

引言

本文结合无线网关的发展历程,解读进行 Service Mesh 改造的缘由和价值,同时介绍蚂蚁金服在双十一落地过程中如何保障业务流量平滑迁移至新架构下的 Mesh 网关。分享将从如下三个方面展开:

  • 网关的前世今生,解释网关为什么要 Mesh 化;

  • 网关 Mesh 化,阐述如何进行 Mesh 化改造;

  • 双十一落地,介绍在此过程中实现三板斧能力;

前世今生

蚂蚁金服无线网关当前接入数百个业务系统,提供数万个 API 服务,是蚂蚁金服客户端绝对的流量入口,支持的业务横跨支付宝、网商、财富、微贷、芝麻和国际 A+ 等多种场景。面对多种业务形态、复杂网络结构,无线网关的架构也在不断演进。

中心化网关

在 All In 无线的年代,随着通用能力的沉淀,形成了中心化网关 Gateway。

  • 客户端连接到网关接入层集群 Spanner ;

  • Spanner 会把客户端请求转发到无线网关集群 Gateway;

  • Gateway 提供通用能力如鉴权、限流等处理请求,并根据服务标识将请求路由到正确的后端服务;服务处理完请求,响应原路返回;

2016 年新春红包爆发,蚂蚁森林等新兴业务发展壮大,网关集群机器数不断增长。这加剧了运维层面的复杂性,IT 成本也不能承受之重。同时,一些核心链路的业务如无线收银台、扫一扫等,迫切需要与其他业务隔离,避免不可预知的突发流量影响到这些高保业务的可用性。因此,2016 年下半年开始建设和推广去中心化网关。

去中心化网关

去中心化网关将原先集中式网关的能力进行了拆分:

  • 转发逻辑:将 Gateway 中根据服务标识转发的能力迁移到 Spanner 上;

  • 网关逻辑:将网关通用能力如鉴权、限流、LDC 等功能,抽成一个 mgw.jar 集成到业务系统中,与后端服务同 JVM 进程运行;

此时,客户端请求的处理流程如下:

  • 客户端请求到 Spanner 后,Spanner 会根据服务标识转发请求到后端服务的 mgw 中;

  • mgw 进行通用网关能力处理,90% 的请求随即进行 JVM 内部调用;

去中心化网关与集中式网关相比,具有如下优点:

  • 提升性能:

    • 少一层网关链路,网关 jar 调用业务是 JVM 内部调用;

    • 大促期间,无需关心网关的容量,有多少业务就有多少网关;

  • 提高稳定性:

    • 集中式网关形态下,网关出现问题,所有业务都会收到影响;

    • 去中心化后,网关的问题,不会影响去中心化的应用;

但凡事具有两面性,随着在 TOP30 的网关应用中落地铺开,去中心化网关的缺点也逐步显现:

  • 研发效能低:

    • 接入难:需要引入 15+ pom 依赖、20+ 的配置,深度侵入业务配置;

    • 版本收敛难:当前 mgw.jar 已迭代了 40+ 版本,当前还有业务使用的是初版,难以收敛;

    • 新功能推广难:新能力上线要推动业务升级和发布,往往需要一个月甚至更久时间;

  • 干扰业务稳定性:

    • 依赖冲突,干扰业务稳定性,这种情况发生了不止一次;

    • 网关功能无法灰度、独立监测,资源占用无法评估和隔离;

  • 不支持异构接入:非 Java 应用,无法使用去中心化网关; 

Mesh 网关

去中心化网关存在的诸多问题,多数是由于网关功能与业务进程捆绑在一起造成的。这引发了我们的思考:如果网关功能从业务进程中抽离出来,这些问题是否就可以迎刃而解了?这种想法,与 Service Mesh 的 Sidecar 模式不谋而合。因此在去中心化网关发展了三年后,我们再出发对蚂蚁金服无线网关进行了 Mesh 化改造,期望借此解决相关痛点。

Mesh 网关与后端服务同 Pod 部署,即 Mesh 网关与业务系统同服务器、不同进程,具备网关的全量能力。客户端请求的处理流程如下:

  • 客户端请求到 Spanner 后,Spanner 会根据服务标识转发请求到后端服务同 Pod 中的 Mesh 网关;

  • Mesh 网关执行通用逻辑后调用同机不同进程的业务服务,完成业务处理;

对比去中心化网关的问题,我们来分析下 Mesh 网关所带来的优势:

  • 研发效能:

    • 接入方便:业务无需引入繁杂的依赖和配置,即可接入 Mesh 网关;

    • 版本容易收敛、新功能推广快:新版本在灰度验证通过后,即可全网推广升级,无需维护和排查多版本带来的各种问题;

  • 业务稳定性:

    • 无损升级:业务系统无需感知网关的升级变更,且网关的迭代升级将可利用 MOSN 现有的特性进行细粒度的灰度和验证,做到无损升级;

    • 独立监测:由于和业务系统在不同进程,可以实时遥测 Mesh 网关进程的表现,并据此评估和优化,增强后端服务稳定性;

  • 异构系统接入:Mesh 网关相当于一个代理,对前端屏蔽后端的差异,将支持 SOFARPC、Dubbo 和 gRPC 等主流 RPC 协议,并支持非 SOFA 体系的异构系统接入;

至此,我们卖瓜自夸式地讲完了无线网关的前世今生,解释了为何要进行网关 Mesh 化。但细心的你想必怀疑:

  • Mesh 化之后的请求处理流程不是同进程调用,比起去中心化网关多了一跳,是否有性能损耗?

  • 毕竟进行了大刀阔斧的变革,在上线过程中如何保障稳定性?

接下来的章节将对上述问题进行解释。

Mesh 化

架构

首先,从架构层面详细介绍网关 Mesh 化所做的相关工作。依照 Service Mesh 的分层模型,Mesh 网关分为数据面和控制面。

解读:

  • 蓝色箭头线是客户端请求的处理流程,Mesh 网关数据面在蚂蚁金服内部 MOSN 的 Sidecar 中;

  • 绿色箭头线是网关配置下发过程,Mesh 网关控制面当前还是由网关管控平台来承载;

  • 红色箭头线条是 MOSN  Sidecar 的运维体系;

MOSN:

https://github.com/sofastack/sofa-mosn

数据面

采用 Go 语言实现了原先网关的全量能力,融合进 MOSN 的模型中,复用了其他组件已有的能力。 同时网络接入层 Spanner 也实现了请求分发决策能力。

数据转换

将客户端的请求数据转换成后端请求数据,将后端响应数据转换成客户端响应。利用 MOSN 协议层扩展能力,实现了对网关自有协议 Mmtp 的解析能力。

通用功能

授权、安全、限流、LDC 和重试等网关通用能力。利用 MOSN Stream Filter 注册机制以及统一的 Stream Send/Receive Filter 接口扩展而来。

请求路由

客户端请求按照特定规则路由到正确的后端系统。在网关层面实现 LDC 逻辑后,复用 MOSN RPC 组件的路由匹配能力。其中大部分请求都会路由到当前 Zone,从而直接请求到当前 Pod 的业务进程端口。

后端调用

支持调用多种类型的后端服务,支持对 SOFARPC、Chair 等后端,后期计划支持更多的 RPC 框架和异构系统。

控制面

为网关用户提供新增、配置 API 等服务的管控系统,可将网关配置数据下发至 Mesh 网关的 Sidecar 实例;

性能

大家比较关心的是多一跳对业务性能是否有影响?

这个是蚂蚁金服内部 MOSN 层面的性能损耗分析,具体分析参见敖小剑的「蚂蚁金服 Service Mesh 深度实践」。得出的结论是相较于复杂的业务逻辑,Mesh 的性能损耗在可接受的范围内,同时带来了快速获得收益的能力。同时 Mesh 网关在此次接入过程中做了 Session 精简化:

  • 内容精简:从 7k 字节降低到 650 字节;

  • 无解压缩:节省 GZip 的性能损耗;

  • 无线 PC 隔离:解决 session 污染问题;

在带 Session 校验场景下,相较于去中心化网关,基准性能压测得出的结论是:QPS 提升近 1倍,RT 下降约 15%。在此也感谢业务方在 Session 精简化改造过程中的理解和支持。

双十一落地

本次双十一,Mesh 网关的落地情况如下:

  • 大促支付链路淘系支付 API 100% 引流;

  • 大促会员链路主战场应用 100% 引流;

  • 网关 Top API 5% 引流;

从上述引流情况可以看出,Mesh 网关支持多维度百分比引流。当然,新的架构体系在大促时落地,充满了各种风险。

为了做好风险管控,我们严格按照三板斧(可监控、可灰度、可回滚)的要求建设相关能力。当前的 Mesh 网关的路由具备 API 百分比、服务器、Zone 以及应用级别的开关能力,支持业务灰度和应急止血。 

开关

生效时机

作用

Mesh 百分比

立即

控制某个 API 的 Mesh 路由是否开启,支持百分比

Label

自动感知

控制某台服务器的 Mesh 路由是否开启

Zone

Spanner Reload

控制某个 Zone 的 Mesh 路由是否开启

MeshOnly

Spanner Reload

控制某个应用的 Mesh 路由是否开启

这里着重分享下 Mesh 网关 API 百分比分流策略。我们和网络接入层 Spanner 配合,开发了 Mesh 分流功能,实现了秒级生效的单个 API 百分比切流 Mesh 网关能力。某 API 配置了去中心化x%,Mesh化y% 的切流规则时的流量示意图。

  • 去中心化网关服务:由 port1(Http)或 port2(Mmtp)端口提供服务;

  • Mesh 网关服务:由 port3(Http)或 port4(Mmtp)端口提供服务;

其中百分比信息由业务方在 API 管控页面配置,随着 API 响应头带回 Spanner Worker,由 Worker 自主学习,按照对应的百分比做分流决策。同时实现了路由失败回退机制,优先级 service:去中心化端口>service:Mesh端口>Gateway,由集中式网关进行兜底保证业务不失败。

最后

写了这么多,也到了本次分享的尾声。随着双十一落地和验证,后续我们会加快推进 Mesh 网关在蚂蚁金服落地节奏。期待 Service Mesh 在蚂蚁金服云化战略中发挥重要的作用。Mesh 网关也会持续迭代演进,融合云原生技术,支持南北和东西向流量。

艰难困苦,玉汝于成。

作者介绍

陆鑫,花名悟尘,蚂蚁金服 Mesh 网关负责人,专注领域:无线网关、服务高可用。

蚂蚁金服 Service Mesh 大规模落地系列文章

???? 奖励支持 SOFAStack 的你~

* 点下右下角“在看”

* 到公众号对话框发送“U型枕”,试试手气~

* 本期互动奖品“蚂蚁 U 型枕”

【异常】Claude Code CLI工具 模型加载异常 /init报错排查与完整解决方案 There‘s an issue with the selected model (glm-5). It 此类跨厂商模型配置报错,核心诱因是API生态的兼容性不匹配。优先使用工具原生支持的模型体系,可快速解决90%以上的同类报错;若需跨厂商使用目标模型,需完成API端点、鉴权密钥、模型ID的全链路适配,确保全流程配置合规,即可完成异常修复。 阅读详情

相关推荐

OneOS远程升级能力实操演示 | OTA升级

OneOS远程升级能力实操演示,差分算法提升效率,OTA升级,OTA差分算法,全量升级、压缩升级、差分升级,有线网络连接,bootloader,升级平台,在线差分包制作,触摸屏以及GUI图形操作

OneOS是中国移动针对物联网领域推出的轻量级操作系统 2011

2021-05-26

  高德 Serverless 平台建设及实践   高德从 FY21 财年开始启动 Serverless 建设,至今一年了,高德 Serverless 业务的峰值超过十万 qps 量级,平台从 0 到 1,qps 从零到十万,成为阿里集团内 Serverless 应用落地规模最大的 BU,这中间的过程是怎么样的?遇到过哪些问题?高德为什么要搞 Serverless/Faas?是如何做 Serverless/Faas 的?技术方案是什么样的?目前进展怎么样?后续又有哪些计划?本文将和大家做一个简单的分享。

qq_16392495的博客 1537

VMware共享磁盘配置实战:从零搭建多机共享存储环境

本文详细介绍了在VMware环境中从零开始配置共享磁盘的完整实战流程。通过创建共享磁盘、挂载至多台虚拟机并修改.vmx配置文件等关键步骤,帮助用户搭建可用于数据库集群(如Oracle RAC)测试的多机共享存储环境,并提供了核心参数设置与常见问题排查指南。

weixin_29284201的博客 492

SOFAGW 网关:安全可信的跨域 RPC/消息 互通解决方案

本文将介绍 SOFAGW 互通网关,首先切入在跨站点通信时碰到的核心痛点,引入 SOFAGW 互通网关的解决方案,会重点说明如何解决在安全、互通、接入成本、高效等几方面问题,介绍 SOFA...

金融级分布式架构 2516

主流算力卡性能对比分析

超大规模AI训练/HPC:优先选择NVIDIA H100或AMD MI300X,需关注显存带宽和多卡互联能力。企业级AI训练:NVIDIA A100性价比更高,生态成熟。国内自主可控需求:华为昇腾910B是首选,支持液冷和低功耗设计。本地AI推理/游戏:NVIDIA RTX 4090或RTX 5090性价比突出,但需注意显存容量限制。边缘计算/低功耗场景:华为昇腾310或清微智能TX536(能效比6.3TOPS/W@INT8)更合适。

m0_69867914的博客 7803

告别两个电源模块!用UCD3138+四开关Buck-Boost,一个电路搞定电池充放电(附原理图分析)

本文详细介绍了采用UCD3138数字控制器和四开关Buck-Boost拓扑的双向DC/DC变换器设计,实现单一电路完成电池智能充放电管理。该方案显著降低BOM成本和PCB面积,提升系统效率至96.2%,适用于UPS、通信基站和储能系统,具有高效、紧凑和成本优势。

weixin_30256901的博客 397

探秘Dubbo Mesh:下一代微服务通信框架

探秘Dubbo Mesh:下一代微服务通信框架 项目简介 是一款由著名开发者 LexBurner 设计和维护的开源项目,它基于阿里巴巴的 Dubbo 框架,并引入了 Service Mesh 的理念,旨在提供更高效、更灵活的微服务间通信解决方案。该项目的目标是帮助开发者更好地管理和监控微服务,提升系统的可扩展性和稳定性。 技术解析 1. Service Mesh 架构 Dubbo Mesh 在传统...

gitblog_00034的博客 632

歪枣网股票数据下载接口汇总一

歪枣网上下载接口动态信息如下: 接口名称:A股列表,接口描述:沪深京A股基本信息,接口地址:/doc/getStockHSABaseInfo?code=all&fields=code,name,stype,hsgt,bk,roe,zgb,ltgb&export=0&token= 请求参数描述: 参数名:code,参数描述:股票代码,支持批量查询,用逗号分隔,每次最多30个;若为all,则表示全部,即可获取任意一天内的所有数据。 请求参数描述: 参数名:fields,参数描述:数据字段

waizaowang的博客 2731

Dubbo、RPC、SOA

RPC(框架Framework)==== Distributed Service (架构 Architecture)用JAVA语言来说,SOA是接口,RPC是父类,Dubbo是子类。因此可以说Dubbo是SOA的一种实现。实际上Dubbo是一个RPC下的概念。但是Dubbo经常被用在SOA中。首先这两个概念的区别是什么呢。RPC是SOA的一种实现。

Scorpio289的博客 307

Dify工作流自动化:如何用Trae AI助手10倍提升你的开发效率(含避坑指南)

本文详细介绍了如何利用Trae AI助手自动化生成Dify工作流,实现开发效率的10倍提升。通过构建DSL示例库、精准需求描述和四步实战法,开发者可将重复的配置工作交给AI,快速生成可运行的工作流,并提供了关键的避坑指南。

weixin_29062865的博客 370

31、工程中不确定性量化与优化的全面解析

本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。

php55的博客 121

云原生内容分享(八):云原生网关调研

Istio是不是可以替换掉Ingress-controller?开题还是从一个问题入手吧,相信在容器化、Mesh化过程中,我们想替换掉的不仅仅是ingress-controller吧,例如各种ServiceProxy、Api Gateway等,因为云原生架构下有更好的扩展支持,但是请大家先不要急着说答案。下面我们先来看下Tyk博客上的一篇文章节选。标题:“ServiceProxy,ServiceMesh,API gateway 我们怎么选?服务代理、服务网格还是API网关?

之乎者也·的博客 1371

python乘法运算 信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析

本文解析了全国青少年信息素养大赛Python编程挑战赛的乘法运算题目。题目要求通过递归算法实现两个自然数的乘法运算,并输出算式。算法分析指出可将乘法转化为累加,使用递归函数实现。程序代码展示了一个自定义函数add(),通过递归调用完成累加运算。文章还分析了考点,包括递归函数、输入处理、分支语句等编程基础知识的应用。最后强调解题方法的多样性,重点在于理解递归原理和实现题目要求。该题目难度适中,主要考查选手对递归算法的理解和编程基础能力。

青少年编程学习指导 789

getaway网关转发去前缀_蚂蚁金服 Service Mesh 大规模落地系列 - 网关篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第五篇 - 网关篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。引言本文结合无线网关的发展历程,解读进行 Service Mesh 改造的缘由和价值,同时介绍在双十一落地过程中如何保障业务流量平滑迁移至新架构下的 Mesh 网...

weixin_39827775的博客 246

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

getaway网关转发去前缀_蚂蚁金服 Service Mesh 大规模落地系列 网关篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第五篇 - 网关篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。引言本文结合无线网关的发展历程,解读进行 Service Mesh 改造的缘由和价值,同时介绍蚂蚁金服在双十一落地过程中如何保障业务流量平滑迁移至新架构...

weixin_39874366的博客 236

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

蚂蚁金服 Service Mesh 大规模落地系列 – 运维篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第三篇 – 运维篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。 引言 Service Mesh 是蚂蚁金服下一代架构的核心,也是蚂蚁金服内部向云原生演进的重要一环。本文为 Service Mesh 系列文章的运维...

weixin_40253011的博客 1131

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

蚂蚁金服 Service Mesh 大规模落地系列 - 质量篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》最后 一篇 - 质量篇,该系列从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十...

金融级分布式架构 3775

蚂蚁金服 Service Mesh 大规模落地系列 - 消息篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第二篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析。文末包含往期系列文章。引言Service Mesh 作为蚂蚁金服向下一代云原生架构演进的核心基础设施,在2019年得到了大规模的应用与落地,截止目前,蚂蚁金服的 Service Mesh 数据平面...

金融级分布式架构 951

蚂蚁金服 Service Mesh 大规模落地系列 - 运维篇

《蚂蚁金服 Service Mesh 大规模落地系列》将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双十一大规模落地实践...

ServiceMesher 790

蚂蚁金服 Service Mesh 大规模落地系列 - 核心篇

揭秘 2019Service Mesh 双十一大考蚂蚁金服很早开始关注 Service Mesh,并在 2018 年发起 ServiceMesher 社区,目前已有 4000+ 开发者在社区活跃。在技术应用层面,Service Mesh 的场景已经渡过探索期,今年已经全面进入深水区探索。2019 年的双十一是我们的重要时刻,我们进行了大规模的落地。作为技术人能面对世界级的流量挑战,是非常紧张和兴...

ServiceMesher 1106

蚂蚁金服 Service Mesh 大规模落地系列 - Operator 篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第六篇 - Operator 篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service ...

金融级分布式架构 556

蚂蚁金服 Service Mesh 大规模落地质量管控

作者张伟(花名:柑橘) 蚂蚁金服中间件质量团队负责人,关注领域:中间件测试开发技术。王斌(花名:西经)蚂蚁金服 Service Mesh 质量主要负责人,主要 Focus 领域:MOSN...

weixin_45727359的博客 799

蚂蚁金服 Service Mesh 大规模落地系列 - 控制面篇

本文为《蚂蚁金服 Service Mesh 大规模落地系列》第七篇 - 控制面篇,该系列将会从核心、RPC、消息、无线网关、控制面、安全、运维、测试等模块对 Service Mesh 双...

金融级分布式架构 726
上一篇: SOFA Weekly | 每周精选【12/2 - 12/6】
下一篇: 蚂蚁金服 DB Mesh 的探索与实践
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值