如何通过 Serverless 技术降低微服务应用资源成本?

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月15万CU 3个月
简介: 世上没有免费的午餐,微服务技术让 IT 系统变得更敏捷、更健壮、更高性能的同时,也带来了架构复杂度的提升。对于开发者而言,要想更好的驾驭微服务架构,需要解决持续集成、服务发现、应用通信、配置管理、流量防护等一系列难题。

头图.jpg

前言

在大型分布式 IT 架构领域,微服务是一项必不可少的技术。从本质上来讲,微服务是一种架构风格,将一个大型的系统拆分为多个拥有独立生命周期的应用,应用之间采用轻量级的通信机制进行通信。这些应用都是围绕具体业务进行构建,可以独立部署、独立迭代,也可能根据业务负载独立进行水平扩展。

微服务思想以及相关的技术为 IT 架构的发展带来了一系列深刻的变革:

易于开发和维护:一个应用只会关注一组特定的业务功能,通过服务拆分,能减少应用之间的耦合度,让开发和维护更加简单。

技术栈不受限制:在微服务架构中,可以结合项目业务及团队的特点,合理的选择技术栈。

加快系统演进速度:每一个应用都可以独立的进行版本更新,通过灰度发布等技术手段能确保发布过程中整个系统稳定运行。

突破性能瓶颈:每个应用都能独立的水平伸缩,使系统性能可以根据计算资源的增加而得到线性的扩展。

微服务的挑战

世上没有免费的午餐,微服务技术让 IT 系统变得更敏捷、更健壮、更高性能的同时,也带来了架构复杂度的提升。对于开发者而言,要想更好的驾驭微服务架构,需要解决持续集成、服务发现、应用通信、配置管理、流量防护等一系列难题。幸运的是,针对这些普遍存在的难题,业界涌现了一系列优秀的开源技术组件和工具,让开发者可以更轻松的构建微服务应用。像 Spring Cloud 和 Dubbo 这样的技术框架,经过多年的发展,已经演化为微服务领域的通用标准,极大地降低了微服务的门槛,但这些技术框架依然没有办法解决其中两个最大的挑战,这两个挑战成为摆在开发者面前的两座大山。

挑战一:亟需完善的生命周期管理与服务治理方案

在一个频繁迭代的系统中,每个应用会经常性面临新版本发布需求,需要对应用的上线、下线、更新、回滚等流程进行集中性的管理,并配合精细粒度的灰度发布手段,减少版本迭代对业务造成的影响。

1.png

在一个简单的微服务架构中,如果某应用处于整个链路的入口位置,它的前端一般会挂上负载均衡组件(上图中的应用 A),以承接来自于最终用户的业务请求。这类应用在进行生命周期管理的时候,复杂度会更高,为了确保应用在新版本发布过程中的平衡稳定,会经过如下的步骤:

2.png

在这个流程中,还没有涉及到对于流量精细粒度控制的高级灰度方案,但已经足够体现出其复杂性和操作难度了。如果仅仅依赖于简单的发布脚本进行管理,不但效率很低,还很容易导致顾此失彼,对系统稳定性造成巨大的风险。

挑战二:亟需完善的水平扩容与缩容方案

当某一个应用的性能出现瓶颈,需要通过增加实例数量来提升性能的时候,就需要引入新的计算资源。

新的计算资源从何而来呢?

对于线下 IDC 而言,计算资源是需要预先规划的,扩容并不是一件简单的事情,可能会因为各种条件的制约而导致扩容无法实现。当然这种困扰在云计算时代不复存在了,为一个应用扩充计算资源是信手拈来的事情,但光有计算资源是不够的,还得在上面部署应用,并将应用容纳到微服务体系中。

3.png

根据这个流程,如果需要扩容一个应用实例,保守估计也需要 20 分钟以上,其中购买、系统初始化、应用部署都需要占用大量的时间。假设系统流量突增,需要在 2 分钟之内紧急扩容,这个方案就无用武之地了。 

一剂良药:容器化技术

为了解决这两个难题,开发者们尝试了各种各样的方案,新的理念以及技术框架在过去的这五年层出不穷。在一轮轮的优胜劣汰下,以 Docker 为代表的容器技术,在 Kubernetes 生态的支撑下,在业界成为了主流,是构建云原生(Cloud Native)应用的必备要素。容器化相关技术能够更大程序的挖掘云计算的价值,在一定程度上帮助开发者解决这两个难题。

在应用生命周期管理以及服务治理方面, Kubernetes 提供了比较完善的实现机制,通过构建 Deployment 资源,配合 proStop 和 postStart 脚本,能比较方便的实现滚动发布以及应用的优雅上下线。虽然在灰度发布的过程中,依然没有办法直接对流量进行精细粒度控制(引入 Service Mesh 技术能增强流量控制力,不在本文讨论范围),但相比简单的发布脚本,已经有了飞跃性的提升。

在应用的水平扩容与缩容方面,通过容器化技术可以极大程度的减少操作系统安装以及系统级初始化的时间,但购买虚拟机的操作是无法避免的,所以在系统遇到流量增突的时候,依然没有办法实现快速水平扩容。我们可以预留一部分计算资源,放在资源池中,当应用有扩容需求的时候,就向资源池申请资源,当业务负载下降的时候,再把多余的计算资源归还到资源池中。

4.png

这其实并不是一个好主意,每一个计算资源都是需要成本的,资源池虽然能够解决计算资源快速投入使用的问题,却造成了巨大的浪费。另外,到底规划多大的资源池,也是一件很伤脑筋的事情,池子越大,造成的浪费就越大,但池子太小,又可能满足不了扩容的需求。 

资源成本更深层次的分析

可能有的开发者会认为,目前的业务运行非常的稳定,在用户流量上并不存在明显的突增,所以扩容和缩容是一个伪需求,在将来也不会有这样的需求。这可能是对互联网业务的一种误解,因为完全没有扩容需求的情况是不存在的。

首先,只要一个系统是为人服务的,就必然存在波峰和波谷。对于一个 7*24 小时运行的系统,不可能永远保持同样的用户流量,二八原则对于很多业务系统依然适用( 80% 的用户流量集中在 20% 的时间段)。即便是用户流量相对平衡的系统,在凌晨也存在流量的低谷,如果能更进一步的释放闲置计算资源,提升资源利用率,就能显著的降低资源使用成本。

5.png

另外,相比生产环境,开发和测试环境对于扩容和缩容的需求会更加迫切。一套微服务应用由不同的团队进行开发,在理想的情况下,多个团队会共享一套测试环境:

6.png

然而,每个团队对于应用的迭代都会有自己的节奏,与此同时,他们又想拥有独立的端到端测试环境,从而实现环境之间的隔离,以避免团队之间的相互影响。这样的话,很有可能会形成多套测试环境:

7.png

随着应用、团队、业务功能点数量的增加,所需要的开发测试环境数量还会成倍的增长,造成巨大的资源浪费。对于测试环境的计算资源而言,资源利用率要远低于生产环境。有的时候仅仅是一个简单功能点的验证,为了端对端的跑通业务功能,又避免团队之间的相互影响,就会开启一套包括全部微服务应用的新环境。这样的资源浪费,对于很多企业,都是一个多年都未曾得到解决的难题。 

因此,微服务架构在本质上就是对弹性伸缩有着强烈诉求的,在弹性伸缩的过程中,不管是单应用的水平弹性伸缩,还是整套环境的启停,资源利用率都对最终的资源成本起着决定性的作用。如果能想办法提升资源利用率,就能为企业节省大量资源成本。值得我们重视的是,绝大多数的微服务应用的资源利用率都是非常低的。

我们可以做一个简单的统计:把所有服务器的 CPU 利用率每 5 分钟导出一次,按照天的维度求平均值,就能从整体上了解系统的资源利用率数据。如果把开发测试环境的服务器资源也纳入统计的范围,资源利用率很有可能会更低。 

Serverless 化探索

资源利用率低的根本原因,在于以服务器为载体的应用架构中,开发者需要将构建好的程序包部署到服务器上,从而对多个用户事件进行响应。为了确保事件响应的及时性,需要让程序长驻于服务器上,而且尽可能保守的规划资源,以避免出现负载过重而导致服务崩溃的情况。在这个过程中,实际的负载在时间上分配并不均衡,从而导致整体的资源利用率偏低。

Serverless 技术的出现,为提升资源利用率提供了新的思路。Serverless 是一种构建和管理基于微服务架构的完整流程,允许开发者脱离服务器资源而直接部署应用。它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态(Stateless)的计算容器内。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作服务器资源,真正做到了部署应用无需涉及基础设施的建设。

8.png

Serverless 技术存在多种形态,最典型的一种是 FaaS(Function as a Service,函数即服务),比如阿里云的函数计算(Function Compute,FC)产品。在函数计算领域,一切计算资源的申请和调度都由具体的业务事件触发,当业务事件所对应的任务完成之后,计算资源会被立即释放。这样的方式真做到了计算资源的按需分配,能显著提升资源利用率,是 Serverless 技术的终极形态。

另外一种是 Serverless 化的容器技术,Serverless 化的容器实例运行在案例隔离的环境中,每个计算节点通过轻量级虚拟化安全沙箱技术完全强隔离。对于使用者而言,无需购买服务器资源即可直接部署容器应用,也无需对集群进行节点维护和容量规划,可以根据应用配置的 CPU 和内存资源量进行按需付费。当微服务应用需要扩容的时候,就可以快速获得计算资源,不需要再经过购买服务器这个步骤了,可以帮助开发者降低计算成本,减少闲置资源浪费,平滑应对突发流量高峰。阿里云的 Serverless Kubernetes (ASK)就是 Serverless 化容器技术的代表产品。 

更进一步发掘开发者的诉求

Serverless 技术无缝是云计算和云原生应用架构的发展方向,但对于微服务应用的开发者而言,不管是 FaaS 形态,还是 Serverless Kubernetes ,都存在一定的局限性。

不是每一种业务都适合通过 FaaS 的方式进行构建,特别是对于链路长,上下游依赖特别明显的应用,根本没有办法进行 FaaS 化改造。即便某些业务系统的 FaaS 化改造被证明可行,把现有的微服务架构改造成 FaaS 架构也需要一定的工作量,并不能做到无缝移植。

Serverless Kubernetes 架构虽然能适配所有的业务场景,但对于开发者而言,构建一整套 Kubernetes 体系,需要掌握一系列跟 Kubernetes 相关复杂的概念,有着非常陡的学习曲线。而且 Kubernetes 生态中各种组件的搭建,再加上网络层与存储层的适配,都涉及非常复杂的工作。

造成这种局限性的原因很简单,在以 Spring Cloud 为代表的微服务技术阵营中,系统的构建都是围绕着应用(也可以理解为单个的服务)而展开,不管是版本更新还是水平扩展,都是针对应用本身。Serverless Kubernetes 架构的核心在于 Pod ,比应用更偏向系统底层,所以使用者需要投入更多的精力用于应用下层资源的管理。而 FaaS 架构的核心在于函数,比应用更偏向系统上层,因此灵活度会降低,不能适配所有的业务场景。

对于使用主流 Spring Cloud 体系或 Dubbo 体系构建微服务应用的开发者而言,如果需要引入一种方案降低资源成本,他的最终诉求一定包含两个方面:

(1)能否零改造成本,或者接近零改造成本;
(2)能否适配所有的业务场景。

应用层 Serverless 技术

是否有一种介于 FaaS 和 Serverless 化容器之间的技术,可以实现上述重要诉求呢?当然有,这就是以阿里云 Serverless 应用引擎(SAE)为代表的应用层 Serverless 技术。

9.png
(图:不同层级的 Serverless 技术 )

SAE 实现了 Serverless 架构 + 微服务架构的完美融合,对于 Spring Cloud 和 Dubbo 等主流的微服务架构,可以实现无缝兼容,基本上没有改造成本,并真正按需使用、按量计费,节省闲置计算资源,同时免去 IaaS 层运维方面的工作,有效提升开发运维效率。

以 Spring Cloud 应用为例,如果需要部署一个新的应用,只需要 2 个步骤:

(1)告诉 SAE 这个应用需要多少个实例,并指定每个实例需要的 CPU / 内存规格。
(2)上传应用的 JAR 包 / WAR 包,并启动应用。

我们发现,这两个步骤中并不涉及容量评估、服务器购买、操作系统安装、资源初始化等工作,就能让包含多个对等实例的微服务应用运行起来。这是因为在 Serverless 的世界中,不再具有服务器资源这样的概念,应用的载体是 SAE 调度出来的沙箱容器,每个实例只有在真正投入使用后,才会按使用时长进行计费。

对于开发者而言,他们不用关心应用到底部署在物理机里面,还是虚拟机里面,或是容器里面,也不需要知道底层的操作系统是什么版本的,只需要关注每个应用实例占据多少运算资源就可以了。如果应用需要从 4 个实例扩容到 6 个实例,或者缩容到 2 个实例,只需要一个指令就可以完成,甚至与 SLB 的绑定关系,都可以自动的建立或解除,这是 Serverless 技术为开发者带来的巨大价值。

使用 SAE 部署微服务应用,因为只是变更了应用运行的载体,所以可以 100% 的兼容现有的技术架构和业务功能,迁移成本可以忽略不计。 

SAE 的极致弹性能力

除了手动的扩缩容指令,SAE 还支持 2 种自动弹性机制,可以对微服务应用进行灵活的水平扩展,更进一步的发挥云计算的弹性能力。

定时弹性机制:对于会预期发生的周期性行为,可以设置定时弹性策略。举例:如果每天的上午 9 点是业务高峰,可以定时每天 8 点半增加实例数量,并在 9 点半减少实例数量。

基于指标阈值的弹性机制:对于超出预期的业务流量突增,可以设置基于指标阈值的弹性策略,根据 CPU 、内存等资源指标,以有 QPS 等业务指标让应用实现自动的弹性缩。

通过多种弹性机制,能够对系统容量进行精细粒度的管理,使资源的使用量能随着业务流量的变化而调整,从而极大程度的增加资源利用率,大幅降低资源成本。

10.png

在计算资源的调度和启动上, SAE 做了多项优化,对于扩容出来的新实例,只需要几秒钟的时间就能拉起,这项能力对于一些需要紧急快速扩容的突发场景,是具有重大意义的。

对于开发测试环境而言,SAE 的机制弹性能力能体现得更加淋漓尽致,得益于 SAE 出色的资源调度能力,可以一键启停一整套微服务应用。即便仅对一项简单的新功能进行冒烟测试,也完全可以新启一套完整而隔离的测试环境来进行。新的环境可以在秒级搭建完成,快速投入使用,而测试完毕后,又可以立即释放。从成本上来讲,一套新环境实际投入使用的时间很短,因此只会消耗极少的费用。这对于微服务应用开发过程中的多团队协作,是一个巨大的变革。

11.png

成本分析

SAE 通过资源的实际使用量来付费,费用由两部分组成,每部分根据统计结果和计算方式进行费用结算,按小时出账单扣款。每个应用使用的资源计量方式如下所示:

应用 CPU 资源使用量=∑实例 CPU 规格×本月运行时长(以分钟计),即应用中所有实例的 CPU 规格乘以本月运行时长的总和。

应用内存资源使用量=∑实例内存规格×本月运行时长(以分钟计),即应用中所有实例的内存规格乘以本月运行时长的总和。

其中 CPU 部分的价格为 0.0021605 元/分钟/Core,内存部分的价格为 0.0005401 元/分钟/GiB。SAE 还提供预付费资源包,相当于批发的方式预购计算资源,只要能要有效期内消耗完,就能更进一步的节省使用成本,当资源包扣完以后,系统会自动变更为按量付费的模式。

让我们通过一个实际案例来进一步体会 SAE 如何帮助微服务应用降低资源成本。假设一个微服务系统包含 87 个应用实例,每个时间每天的平均运行时长为 8 小时,实例的配置为 2 Core + 4 GiB + 20 G 磁盘。

  • 使用包年包月的 ECS 部署应用:需要购买 87 台计算型 c5 ,单台的月成本为 186 元,每月总成本 16146 元。
  • 使用按量付费的 ECS 部署应用:单台价格为 0.63 元/小时,每月累计使用 20880 小时,总成本 13154 元。
  • 使用 SAE 部署应用:购买 1 个 75000 元的包年资源包,87 个实例每天运行 8 个小时,刚好把资源包额度用完,折合每月总成本 6250 元。

从这个对比我们可以得出,只要能够合理的运行 SAE 的弹性能力,就可以为微服务应用大幅度降低资源成本。  

附加能力

SAE 除了可以简化运维工作量,降低资源成本以外,还为微服务应用提升了一系列附加的功能,这是应用层 Serverless 技术为开发者带来的额外价值,我们可以尽可能的利用这些开箱即用的功能,让建设微服务应用变成更加简单。

完整的应用生命周期管理:应用托管至 SAE 后,可以对应用执行更新、扩缩容、启停、删除、监控启停等应用生命周期管理操作。

开箱即用的注册中心:SAE 自带商业版 Nacos 注册中心,可以免费使用,不需要自行搭建。如果有特殊的需求,比如让部署在 SAE 的应用和其他应用相互发现,也可以使用微服务引擎(MSE)产品提供的注册中心,或者自建的注册中心。

开箱即用的配置管理中心:SAE 集成了 ACM(Application Configuration Management,应用配置管理)中的配置管理功能,可以在 SAE 中使用 ACM 对应用配置进行集中管理。

应用级流量防护: SAE 集成 AHAS 实现应用级别的流控与降级能力,全面保障应用的高可用性。

监控能力:应用托管到 SAE 以后,可以免费获得基础资源(包括 CPU、内存、负载和网络)以及应用层(包括 JVM 分析、接口调用分析等方面)的监控能力。如果需要更高级的 SQL 分析、异常分析、链路上下游和接口快照,可以集成阿里云应用时间监控产品(ARMS)。

CI/CD 集成能力:SAE 与云效、云效 2020、 Jenkins 等产品进行了深入集成,可以方便开发者将构建好的应用快速部署。

12.png

多语言支持

对于非 Java 语言编写的应用,或者没有使用 Spring Cloud 等微服务框架的 Java 应用, SAE 能不能完美支持,并帮助企业降低资源成本呢?

当然是可以的。SAE 提供容器镜像部署方式,这就代表着不管采用哪种编程语言,只要最终的应用能够发布成容器镜像,就可以部署在 SAE 上。

对于 Java 系的微服务应用, Java 系统的普通应用,以及非 Java 系应用而言,SAE 的极致弹性能力并没有本质的区别,都能通过 Serverless 技术提供系统的资源利用率。只不过 SAE 提供的一些附加价值,比如免费的微服务注册中心,就只能为 Spring Cloud 或 Dubbo 应用服务罢了。 

总结

让我们用这张图回顾 Serverless 技术的巨大价值:

13.png

常见问题

1.问:应用实例没有固定的机器资源,连固定的 IP 地址都没有,如何 SSH 到一台服务器排查问题?

答:并不需要有固定的机器资源和固定的IP地址才能排查问题,在云计算时代,通过 SSH 登录到一台机器排查问题的方式并不是一个好的实践。相反, SAE 提供了完善的监控能力,还可以方便的与云监控、 ARMS 等新一代监控诊断类产品进行了集成,为排查故障提供了更大的便利。当然,如果一定要登录到某一台机器,SSH 依然是可以支持的,也可以利用 SAE 提供的 Webshell 工具简化这个流程。

2.问:磁盘不是计费的维度吗?应用需要大容量磁盘怎么办?应用重启后碰盘中的数据还保留吗?

答:在微服务领域,应用一般是无状态(Stateless)的,不需要保存大量的本地数据。如果在特殊的场景下离不开这个需求,可以集成 NAS ,使用集中式的存储实现。

3.问:应用的日志怎么查看?

答:SAE 控制台界面提供了对于文件日志的实时查阅能力,相当于免费提供了一个分布式日志采集平台。当然强烈建议接入阿里云日志服务(SLS)产品,更进一步的发挥应用日志的价值。

课程推荐

为了更多开发者能够享受到 Serverless 带来的红利,这一次,我们集结了 10+ 位阿里巴巴 Serverless 领域技术专家,打造出最适合开发者入门的 Serverless 公开课,让你即学即用,轻松拥抱云计算的新范式——Serverless。点击链接即可免费学习课程:https://developer.aliyun.com/learning/roadmap/serverless

Serverless 公众号,发布 Serverless 技术最新资讯,汇集 Serverless 技术最全内容,关注 Serverless 趋势,更关注你落地实践中的遇到的困惑和问题。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
运维 Serverless 测试技术
函数计算产品使用问题之支持10个并发任务需要多少资源
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
15天前
|
弹性计算 关系型数据库 Serverless
告别资源瓶颈,函数计算驱动多媒体文件处理方案:https://www.aliyun.com/solution/tech-solution/fc-drive-file
本文介绍了一种基于阿里云的一键部署解决方案,利用云服务器ECS、RDS MySQL、OSS、函数计算FC及MNS等服务,实现高效的多媒体文件处理。方案通过事件驱动机制,将文件处理任务解耦,并自动弹性扩展,按需付费,简化部署流程,提高处理效率。本文还提供了详细的部署步骤与体验反馈,展示了从配置到文件处理的全过程。
|
2月前
|
运维 Cloud Native 开发者
云原生技术演进:从微服务到无服务器的旅程
【8月更文挑战第20天】在数字化时代的浪潮中,云原生技术如同一艘航船,承载着企业转型的梦想与挑战。本文将深入探讨云原生技术的发展路径,从微服务的兴起到无服务器架构的革新,揭示这一技术演进背后的逻辑与动力。通过分析云原生技术的优势、面临的挑战以及未来的发展趋势,我们将描绘出一幅云原生技术演进的宏伟蓝图。
|
2月前
|
存储 Serverless 数据库
告别资源瓶颈,函数计算驱动多媒体文件处理
在数字化浪潮中,体验了《告别资源瓶颈,函数计算驱动多媒体文件处理》解决方案。详尽的文档和清晰的引导让上手变得容易,尽管高级功能的文档仍有提升空间。部署时,代码示例提升了效率,虽遇少许配置难题,但最终解决。性能表现卓越,稳定性强,按需付费有效控制成本,极力推荐企业采用此方案加速云端转型。同时,配套的云产品如存储、计算及数据库服务等表现出色,操作简单易懂,适合各水平用户。
|
2月前
|
运维 Kubernetes 大数据
Kubernetes 的架构问题之在Serverless Container场景下尚不支持资源超售如何解决
Kubernetes 的架构问题之在Serverless Container场景下尚不支持资源超售如何解决
58 0
|
2月前
|
运维 Kubernetes Docker
微服务的成本效益分析
【8月更文第29天】随着微服务架构的流行,越来越多的企业开始考虑采用这一架构模式来构建他们的应用程序和服务。然而,迁移到微服务并非没有代价。本文旨在评估采用微服务架构所带来的成本增加与收益,并探讨如何优化资源使用,以最大化成本效益比。
145 0
|
2月前
|
机器学习/深度学习 监控 Serverless
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
|
2月前
|
Cloud Native 安全 云计算
云原生技术的未来:探索服务网格和无服务器架构
随着企业数字化转型的深入,云计算已成为推动业务创新的核心力量。本文将深入探讨云原生技术的最新发展趋势,重点分析服务网格和无服务器架构如何重塑云计算的未来。通过实际案例和技术解析,揭示这些前沿技术如何解决现代应用部署的复杂性,提高系统的可伸缩性和弹性。文章旨在为读者提供云原生领域的深度见解,并激发对云技术未来发展的思考。
85 0
|
15天前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
15天前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1

相关产品

  • 函数计算