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

产业园区如何高效对接企业技术需求与高校科研成果?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

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

引言

Service Mesh 是蚂蚁金服下一代技术架构的核心,也是蚂蚁金服内部双十一应用云化的重要一环,本文主要分享在蚂蚁金服当前的体量下,如何支撑应用从现有微服务体系大规模演进到 Service Mesh 架构并平稳落地。

本文作者:杜宏伟(花名:应明),蚂蚁金服技术专家,关注 API 网关,Service Mesh 和容器网络,蚂蚁金服 Service Mesh 核心成员。

为什么需要 Service Mesh

在此之前,SOFAStack 作为蚂蚁金服微服务体系下服务治理的核心技术栈,通过提供 Cloud Engine 应用容器、SOFABoot 编程框架(已开源)、SOFARPC(已开源) 等中间件,来实现服务发现和流量管控等能力。经过若干年的严苛金融场景的锤炼,SOFAStack 已经具备极高的可靠性和可扩展性,通过开源共建,也已形成了良好的社区生态,能够与其他开源组件相互替换和集成。在研发迭代上,中间件类库已经与业务解耦,不过避免不了的是,运行时两者在同一个进程内,意味着基础库的升级需要推动业务方升级对应的中间件版本。

我们一直在探索更好的技术实现方式。我们发现,Service Mesh 通过将原先通过类库形式提供的服务治理能力进行提炼和优化后,下沉到与业务进程协同,但独立运行的 Sidecar Proxy 进程中,大量的 Sidecar Proxy 构成了一张规模庞大的服务网络,为业务提供一致的,高质量的用户体验的同时,也实现了服务治理能力在业务无感的条件下独立进行版本迭代的目标。

应用 Service Mesh 的挑战

Service Mesh 带给我们的能力很美好,但现实为我们带来的挑战同样很多。比方说数据面技术选型和私有协议支持,控制面与蚂蚁金服内部现有系统对接,配套监控运维体系建设,以及在调用链路增加两跳的情况下如何优化请求延迟和资源使用率等等。

本文着重从 MOSN(Sidecar Proxy)的运维和风险管控方面,分享我们的实践经验,其他方面的挑战及应对方案,请参考文末系列文章。

MOSN:

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

Sidecar 注入

创建注入

已经完成容器化改造,运行在 Kubernetes 中的应用,如何接入到 Service Mesh 体系中?最简单的方式,也是以 Istio 为代表的 Service Mesh 社区方案所采用的方式,即是在应用发布阶段,通过 mutating webhook 拦截 Pod 创建请求,在原始 Pod Spec 的基础上,为 Pod 注入一个新的 MOSN 容器。

值得注意的是,在资源分配上,起初我们依据经验值,在应用 8G 内存的场景下,为 Sidecar 分配 512M 内存,即

App: req=8G, limit=8G Sidecar: req=512M, limit=512M

很快我们就发现了这种分配方案带来的问题,一方面部分流量比较高的应用的 MOSN 容器,出现了严重的内存不足甚至 OOM;另一方面注入进去的 Sidecar 容器额外向调度器申请了一部分内存资源,这部分资源脱离了业务的 quota 管控。

因此,为了消除内存 OOM 风险和避免业务资源容量规划上的偏差,我们制定了新的“共享内存”策略。在这个策略下,Sidecar 的内存 request 被置为0,不再向调度器额外申请资源;同时 limit 被设置为应用的 1/4,保障 Sidecar 在正常运行的情况下,有充足的内存可用。为了确实达到“共享”的效果,蚂蚁金服 sigma 团队针对 kubelet 做了调整,使之在设置 Sidecar 容器 cgroups limit 为应用 1/4 的同时,保证整个 Pod 的 limit 没有额外增加(细节这里不展开)。

当然,Sidecar 与应用“共享”分配到的内存资源,也导致了在异常情况(比如内存泄露)下,sidecar 跟应用抢内存资源的风险。如何应对这个风险?我们的做法是,通过扩展 Pod Spec(及相应的 apiserver, kubelet 链路),我们为 Sidecar 容器额外设置了 Linux oom_score_adj 这个属性,以保障在内存耗尽的情况下,Sidecar 容器会被 OOM Killer 更优先选中,以发挥 sidecar 比应用能够更快速重启,从而更快恢复到正常服务的优势。

此外,在 CPU 资源的分配上,我们也遇到过在一些场景下,MOSN 抢占不到 CPU 资源从而导致请求延迟大幅抖动,解决方案是确保在注入 Sidecar 时,根据 Pod 内的容器数量,为每个 Sidecar 容器计算出相应的 cpushare 权重,并通过工具扫描并修复全站所有未正确设置的 Pod。

原地注入

在创建 Pod 的时候注入 Sidecar,是一件相对比较“舒服“的接入方式,因为这种做法,操作起来相对比较简单,应用只需先扩容,再缩容,就可以逐步用带有 Sidecar 的 Pod,替换掉旧的没有 Sidecar 的 Pod。可问题是,在大量应用,大规模接入的时候,需要集群有较大的资源 buffer 来供应用实例进行滚动替换,否则替换过程将变得十分艰难且漫长。而蚂蚁金服走向云原生的目标之一则是,双十一大促不加机器,提高机器使用率。如果说我们要花更多的钱购买更多的机器来支持云原生,就多少有点事与愿违了。

为了解决这个问题,我们提出了“原地注入”的概念,也就是说在 Pod 不销毁,不重建的情况下,原地把 Sidecar 注入进去。

如图所示,原地注入由以下步骤构成:

  • 在 PaaS 提交工单,选择一批需要原地注入的 Pod;

  • PaaS 调用中间件接口,关闭业务流量并停止应用容器;

  • PaaS 以 annotation 的形式打开 Pod 上的原地注入开关;

  • Operator 观察到 Pod 原地注入开关打开,渲染 sidecar 模版,注入到 Pod 中并调整 cpu/memory 等参数;

  • Operator 将 Pod 内容器期望状态置为运行;

  • kubelet 将 Pod 内容器重新拉起;

  • PaaS 调用中间件接口,打开业务流量;

Sidecar 升级

我们将 RPC 等能力从基础库下沉到 Sidecar 之后,基础库升级与业务绑定的问题虽然消除了,但是这部分能力的迭代需求依然存在,只是从升级基础库变成了如何升级 Sidecar。

最简单的升级就是替换,即销毁 Pod 重新创建出一个新的,这样新建出来的 Pod 所注入的 Sidecar 自然就是新版本了。但通过替换的升级方式,与创建注入存在相似的问题,就是需要大量的资源 buffer,并且,这种升级方式对业务的影响最大,也最慢。

非平滑升级

为了避免销毁重建 Pod,我们通过 Operator 实现了“非平滑升级”能力。

如图所示,非平滑升级需要:

  • PaaS 关流量,停容器;

  • Operator 替换 MOSN 容器为新版本,重新拉起容器;

  • PaaS 重新打开流量;

可以想到,原地升级 Pod 打破了 Kubernetes immutable infrastructure 的设计,为了能够实现我们的目标,sigma 团队修改了 apiserver validation 和 admission 相关的逻辑以允许修改运行中的 Pod Spec,也修改了 kubelet 的执行逻辑以实现容器的增删启停操作。

平滑升级

为了进一步降低 Sidecar 升级对应用带来的影响,我们针对 MOSN Sidecar 开发了“平滑升级”能力,以做到在 Pod 不重建,流量不关停,应用无感知的条件下对 MOSN 进行版本升级。

从上图可见,Operator 通过注入新 MOSN,等待 MOSN 自身进行连接和 Metrics 数据的迁移完成,再停止并移除旧 MOSN,来达到应用无感,流量无损的效果。整个过程看似没有很复杂,实则在各个环节上充斥着各种细节上的配合,目前为止,在平滑升级能力上,我们仍需在成功率方面努力,也需要改进 Operator 的状态机来提升性能。关于 MOSN 自身的连接迁移过程,读者如有兴趣,可参阅系列分享中的对应篇章。

Sidecar 回滚

为了确保大促活动万无一失,我们还提供了 Sidecar 回滚的保底方案,以备在识别到 Service Mesh 出现严重问题的情况下,迅速将应用回滚到未接入 Sidecar 的状态,使用应用原先的能力继续提供业务服务。

风险管控

从技术风险角度来看,关于 Sidecar 的所有运维操作,都要具备三板斧能力。在灰度能力上,Operator 为升级等运维动作增加了显式的开关,确保每个执行动作符合用户(SRE)的期望,避免不受控制地,“偷偷地“自动执行变更操作。

监控方面,在基本的操作成功率统计、操作耗时统计、资源消耗等指标之外,仍需以快速发现问题、快速止血为目标,继续完善精细化监控。

Operator 目前对外提供的几个运维能力,细节上都比较复杂,一旦出错,影响面又很大,因此单元测试覆盖率和集成测试场景覆盖率,也会是后续 Service Mesh 稳定性建设的一个重要的点去努力完善。

未来的思考

演进到 Service Mesh 架构后,保障 Sidecar 自身能够快速,稳定的迭代十分重要。相信在未来,除了继续增强 Operator 的能力,也需要通过以下几个可能的优化手段,来做到更好的风险控制:

  • 对 Sidecar 模版做版本控制,由 Service Mesh 控制面,而非用户来决定某个集群下某个应用的某个 Pod 应该使用哪个版本的 Sidecar。这样既可以统一管控全站的 Sidecar 运行版本,又可以将 Sidecar 二进制和其 container 模版相绑定,避免出现意外的,不兼容的升级。

  • 提供更加丰富的模版函数,在保持灵活性的同时,简化 Sidecar 模版的编写复杂度,降低出错率。

  • 设计更完善的灰度机制,在 Operator 出现异常后,快速熔断,避免故障范围扩大。

  • 持续思考,整个 Sidecar 的运维方式能否更加“云原生”?

最后

双十一的考验强化了我们在云原生道路上探索的信心,未来还有很长的路要走,任重而道远。期望我们能够与更多感兴趣的同学交流,一起建设 Service Mesh 技术体系,继续用技术帮助业务更好发展。

SOFAStack 部分开源项目地址:

SOFABoot:

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

SOFARPC:

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

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

Service Mesh 相关活动报名中

Service Mesh Meetup 第9期来啦,本期与滴滴联合举办,将深入 Service Mesh 的落地实践,并带领大家探索 Service Mesh 在更广阔领域的应用。欢迎参加~

主题:Service Mesh Meetup#9 杭州站:To Infinity and Beyond

时间:2019年12月28日13:00-17:30

地点:杭州西湖区紫霞路西溪谷G座8楼

报名方式:点击“阅读原文”,即可报名

本文归档在 sofastack.tech。

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

* 点下右下角“在看”

* 到公众号对话框发送“T恤”,试试手气~

* 本期互动奖品“SOFAStack 定制T恤”

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

Maya ACES工作流程配置(Arnold 及 RedShift 贴图配置规范-还原出SP-Aces流程下贴图正确的效果) PS还原Aces流程下渲染的图

*如果使用SP,项目工程如果新建的时候设置的就是Aces的流程的话,按规范正常导出即可,贴图会带上相对应的后缀,然后贴图导入材质球的时候会根据后缀自动设置相对应的色彩空间;**万一不是,就自己手动设置一下对应的色彩空间即可;然后点击选择当前的或者选择全部导入的贴图,点击右下角后,开始转换;我复制了一下,一个默认没有LUT的效果,然后另外一个是加载2个LUT后的还原效果,和渲染的效果应该是没有区别的,至少我没有看出明显的区别;把需要转换的贴图拖拽到左侧,然后右面选择需要转换到的相对应的色彩空间;...

Yuulily 7994

sofa 动态bundle打包

基于assembly打包 正确方式:安装sofa插件后,创建sofa动态模块project,使用命令:mvn clean package -Dskip=test 工具:intelij idea pom中指定assembly <plugin> <groupId>org.apache.maven.plugins</groupId...

qq_21319187的博客 715

OctoMag: An Electromagnetic System for 5-DOF Wireless Micromanipulation

电磁线圈组驱动经典系统,可以作为参考。 OctoMag: 用于5自由度无线微操作的一个电磁铁系统 OctoMag: An Electromagnetic System for 5-DOF Wireless Micromanipulation [1] Paper Link Authors: J. J. Abbott, etc. 2010, TRO IEEE Transactions on Robot...

XU Yangxin的博客 1665

java中sofa并发访问_SOFA 源码分析 — 调用方式

前言SOFARPC 提供了多种调用方式满足不同的场景。例如,同步阻塞调用;异步 future 调用,Callback 回调调用,Oneway 调用。每种调用模式都有对应的场景。类似于单进程中的调用模式。在单进程中,我们可以使用 JDK 的 Future 实现异步,可以通过观察者实现回调。那么,在 RPC 框架中,这些功能如何实现呢?我们一个个开始看。同步调用 Sync每个 ConsumerConf...

weixin_39602967的博客 633

传感器校准与标定:传感器的灵敏度校准_(11).常见传感器的灵敏度校准方法

线性校准:适用于传感器输出与输入之间存在线性关系的情况。通过收集数据并使用最小二乘法拟合线性方程,可以确定斜率和截距,从而实现校准。非线性校准:适用于传感器输出与输入之间存在非线性关系的情况。通过收集数据并使用非线性拟合方法(如最小二乘法),可以确定多项式或其他非线性方程的参数,从而实现校准。温度补偿校准:适用于传感器在不同温度下输出特性变化的情况。通过收集不同温度下的数据并使用温度补偿方程,可以提高传感器在不同温度下的测量精度。其他校准方法。

2401_87715305的博客 917

YOLOv5改进有效涨点目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

Hello,各位读者们好本专栏自开设两个月以来已经更新改进教程60余篇其中包含C2f、主干、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLOv8文档并不能在优快云上传(所有的创新点都经过我的测试是可用的,得到该文件之后大家可以随意组合使用),所以会建立群的形式在内上传我的文件和视频我也会在群内不定期和大家交流回答大家问题,同时定期会更新一些文章的创新点(经过我融合测试后的,先到先得)。本专栏持续更新网络上的所有前沿文章。

Snu77的博客 3万+

sofa server端处理client端请求流程

背景:以sofa-rpc-master:5.6.0-SNAPSHOT版本为例,下载 代码,以 com.alipay.sofa.rpc.quickstart.QuickStartClient 和 com.alipay.sofa.rpc.quickstart.QuickStartServer 2个类运行作为举例说明 先debug运行QuickStartServer类的main方法,再运行QuickS...

酸衡子的博客 1776

【AI编程】Claude Code 最强AI 编程利器项目实战详解

Claude Code 最强AI 编程利器项目实战详解

congge 7397

Soul网关源码解析(四)接入Sofa服务

目标 体验 sofa 插件 分析 sofa 接口如何注册到网关 分析 sofa 插件 如何代理 sofa 服务 总结 关于 SOFARPC 简介 SOFARPC 是一个高可扩展性、高性能、生产级的 Java RPC 框架。在蚂蚁金服 SOFARPC 已经经历了十多年及五代版本的发展。SOFARPC 致力于简化应用之间的 RPC 调用,为应用提供方便透明、稳定高效的点对点远程服务调用方案。为了用户和开发者方便的进行功能扩展,SOFARPC 提供了丰富的模型抽象和可扩展接口,包括过滤器、路由

眼映星辰的博客 741

GEE聚类分析:基于sentinel-2 影像进行 K-Means 聚类分析

这篇博客介绍了如何使用 Google Earth Engine (GEE) 进行 K-Means 聚类分析,以识别感兴趣区域(ROI)内的不同地表覆盖类型。文章详细说明了从定义用户参数、准备参考区域、加载和预处理 Sentinel-2 图像,到训练 K-Means 聚类器并对图像进行聚类的完整流程。代码示例展示了如何设置参数、采样像素数据、训练聚类器,并将结果可视化。最后,还提供了将聚类结果导出到 Google Drive 的选项。通过该教程,用户可以掌握在 GEE 平台上进行地理数据聚类分析的基本方法。

此星光明博客 263

【23】C++实战篇——C++报错:LNK2001:无法解析的外部符号 ,LNK2019: 无法解析的外部符号,原因分析及解决方法

该文分析了VS项目中出现的"无法解析的外部符号"LNK2001/LNK2019错误。问题表现为跨项目共享变量时,Projector项目无法解析Line项目中声明的外部变量ImgSavePath和ImgFormat。原因在于头文件声明了变量但未包含实现的源文件。解决方法是将getLine.cpp文件添加到Projector项目中。文章还总结了两种错误代码的区别:LNK2001通常对应变量缺失,LNK2019对应函数缺失。最后列出了具体的报错信息,包括无法解析的变量和函数符号。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2007

SOFA Weekly | MOSN配置文档、SOFABolt等组件发布、社区活动预告

SOFA WEEKLY | 每周精选,筛选每周精华问答同步开源进展,欢迎留言互动SOFAStack(ScalableOpenFinancialArchitecture Stack)...

金融级分布式架构 511

YOLOv8改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构)

本文给大家带来的改进机制是MobileNetV1,其是专为移动和嵌入式视觉应用设计的轻量化网络结构。这些模型基于简化的架构,并利用深度可分离卷积构建轻量级深度神经网络,其引入了两个简单的全局超参数,用于在延迟和准确性之间进行有效的权衡。实验表明,MobileNets在资源和准确性的权衡方面表现出色,并在多种应用(如对象检测、细粒度分类、面部属性识别和大规模地理定位)中展现了其有效性,这个模型非常适合轻量化的读者来使用。适用检测目标:轻量化网络结构适合轻量化的读者。

Snu77的博客 3966

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

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

金融级分布式架构 402

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

sofa-pbrpc 和 protobuf 组合使用

根据 sofa-pbrpc 的文档,实现了整合使用,下面是项目地址 c++ 客户端和服务端 https://github.com/pengjiawei/protobuf_sofa_rpc_demo java 客户端请求 https://github.com/pengjiawei/protobuf_sofa_rpc_demo 我把这个完全过了一遍,觉得主要注意的有几个地方 如果不想用...

qq91752728的博客 920

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【剖析 | SOFARPC 框架】系列之 SOFARPC 路由实现剖析

前言RPC 框架需要创造一种调用远程服务如同调用本地般的体验,因此在实现一个基于 RPC 框架的微服务架构的系统时,服务消费者(客户端)往往只需要知道服务端提供了哪些接口和方法,并不需要知道服务具体由哪些 IP 在提供。RPC 框架本身的服务发现和路由寻址功能解决了如何知道目标地址的问题,该过程对于 RPC 客户端调用方来说应该是完全透明的。在这个过程中,RPC 框架需要接入注册中心来完成服务...

weixin_33834679的博客 564

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

解决dubbo不能优雅停机

摘要: 从源码角度解读为啥2.5.3版本不支持优雅停机,通过修改源码达到优雅停机现状dubbo-2.5.4以下的版本不支持优雅停机,是因为服务端关闭时,客户端主动关闭长连接,导致服务端响应消息不能返回。在服务端和客户端配置参数:-Ddubbo.service.shutdown.wait=30000,该参数为停机等待时间,但是结果也不生效,还是马上停机了。期望结果正在读或者写的消息,需要继续处理;线...

m1993619的专栏 8585

sofa-rpc集群容错之Failfast实现

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34191845的博客 377

记一次SOFA内存泄漏排查过程

记一次内存泄漏排查过程 起因      某天中午大家还在安静的午休,睡得正香的时候突然被一阵手机滴…滴滴直响短信惊醒。一看是应用的服务器告警并且对应服务的所有机器都在告警“健康检查失败,自动拉下线”。这还得了,无意识的打开CAT,大盘红得直奔5000点的感觉。直接使用终极大招,赶紧联系运维小哥重启所有服务,留一台保留现场调查原因。服务恢复正常。 分析      通过分析发现一个现象:健康检查在多次检查失败后把

liangheyan的专栏 1177

蚂蚁金服通信框架SOFABolt解析|超时控制机制及心跳机制

SOFAScalableOpenFinancialArchitecture 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 本文为《蚂蚁金服通信框架 SOFABolt 解析》系列第五篇,作者胡萝卜、丞一。 《蚂蚁金服通信框架 SOFABolt 解析》系列由 SOFA 团队和源码...

weixin_34342207的博客 878

为什么SOFA RPC调用30s还不超时?

简介:为什么SOFA RPC调用30s还不超时?1. 背景最近帮客户处理了一个诡异的RPC调用问题,想跟大家分享一下。关于SOFA RPC,请参考官网[1]。2. 问题现象客户使用 REST 接口触发RPC的调用,发现每次RPC调用都需要30秒的时间,最终的RPC调用结果是成功的。从业务日志来看,开始处理业务和结束业务之间确实花了30秒。3. 问题分析RPC 调用花了30秒调用成功,这本身是一件诡异的事情。因为默认SOFA RPC的框架RPC超时时间是3秒。下面的代码显式的设置了超时时间,设置成了默认值。&

阿里云开发者 822

剖析 | SOFARPC 框架 合辑

SOFARPC 是蚂蚁金服开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁金服所有的业务的相互间的 RPC 调用都是...

金融级分布式架构 932

【剖析 | SOFARPC 框架】系列之 SOFARPC 优雅关闭剖析

SOFAScalable Open Financial Architecture是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。本文为《剖析 | SOFARPC 框架》第九篇,作者米麒麟,目前就职于陆金所。 前言 众所周知,在微服务架构下面,当应用需要进行新功能升级发布,或者异常关闭重启的时候,我们会对应用的进程进行关闭,而在关...

weixin_33901641的博客 563

JAVA优雅停机

JAVA优雅停机 项目需要对SpringCLoud做一些优雅停机的改造,所以研究了下linux和java的停机方法,以及业界其他框架的做法。 Kill 结束进程 在 Linux上,kill 命令发送指定的信号到相应进程,不指定信号则默认发送 SIGTERM(15) 终止指定进程。如果无法终止,可以发送 SIGKILL(9) 来强制结束进程。kill 命令信号共有64个信号值,其中常用的是: 2 (SIGINT:中断,Ctrl+C)。 15 (SIGTERM:终止,默认值)。 9 (SIGKILL

sj3913的博客 976

生产级高性能 Java RPC 框架 - SOFARPC 系列内容合辑

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁集团所有的业务的相互间的 RPC 调用都是...

金融级分布式架构 310
上一篇: 蚂蚁金服 DB Mesh 的探索与实践
下一篇: 蚂蚁金服 ZSearch 在向量检索上的探索
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值