CN117850898A - 超大规模的微服务程序在云平台上的运行方法及相关设备 - Google Patents

超大规模的微服务程序在云平台上的运行方法及相关设备 Download PDF

Info

Publication number
CN117850898A
CN117850898A CN202311560290.0A CN202311560290A CN117850898A CN 117850898 A CN117850898 A CN 117850898A CN 202311560290 A CN202311560290 A CN 202311560290A CN 117850898 A CN117850898 A CN 117850898A
Authority
CN
China
Prior art keywords
micro
service
cloud platform
program
instances
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311560290.0A
Other languages
English (en)
Inventor
张兴富
郭立福
王慧
王奕
冯青峰
杨洁
张永蕙
李洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing China Power Information Technology Co Ltd
Original Assignee
Beijing China Power Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing China Power Information Technology Co Ltd filed Critical Beijing China Power Information Technology Co Ltd
Priority to CN202311560290.0A priority Critical patent/CN117850898A/zh
Publication of CN117850898A publication Critical patent/CN117850898A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种超大规模的微服务程序在云平台上的运行方法及相关设备,所述方法包括接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值;响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组;基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台;利用所述目标云平台运行所述程序,解决了现有技术中云平台对于超大规模的程序的处理受到微服务引擎的处理能力的限制的技术问题,达到了利用云平台能够对超大规模的程序进行运行的目的。

Description

超大规模的微服务程序在云平台上的运行方法及相关设备
技术领域
本申请涉及数据处理技术领域,尤其涉及一种超大规模的微服务程序在云平台上的运行方法及相关设备。
背景技术
随着云计算的发展,越来越多的业务系统依靠于云平台运行。云平台已支撑电力交易、电网资源业务中台等多套业务系统正常运行。新建业务系统通常采用微服务技术开发,在基于云平台部署时,微服务将信息注册到微服务引擎(Cloud Service Engine,CSE)实例上,实现服务注册、服务治理、配置管理等功能,是业务上云依赖的重要核心组件。但是,微服务引擎处理微服务实例数量存在限制,当微服务实例数量超过微服务引擎的处理阈值时,微服务存在不能正常注册的问题,严重影响程序正常运行。
发明内容
有鉴于此,本申请的目的在于提出一种超大规模的微服务程序在云平台上的运行方法及相关设备,以克服现有技术中全部或部分不足。
基于上述目的,本申请提供了一种超大规模的微服务程序在云平台上的运行方法,包括:接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值;响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组;基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台;利用所述目标云平台运行所述程序。
可选地,所述组件包括微服务引擎,所述基于所述多个实例组对应的组数量,对所述初始云平台进行组件设置,得到目标云平台,包括:在所述初始云平台中创建与所述组数量相同数量的微服务引擎,并将全部微服务引擎安装到同一共享容器集群,为每个微服务引擎创建关联的组件集合,得到所述目标云平台,其中,每个组件集合均相同。
可选地,在为每个微服务引擎创建关联的组件集合,得到所述目标云平台之后,所述方法包括:对所述目标云平台进行验证。
可选地,所述对所述目标云平台进行验证,包括:获取样本程序的全部样本微服务实例,将所述全部样本微服务实例按照所述组数量进行分组,得到多个样本组;利用所述组件集合对所述样本组进行处理,得到第一处理结果,其中,所述组件集合与所述样本组一一对应;将所有第一处理结果进行汇总后渲染,并生成所述样本程序对应的展示页面,响应于确定所述样本程序对应的展示页面符合所述样本程序对应的预设展示页面,确定所述目标云平台通过验证。
可选地,还包括:响应于确定所述样本程序的展示页面不符合所述预设展示页面,确定所述目标云平台未通过验证,发出用于提示对所述目标云平台中的组件部署进行检查的提示信息。
可选地,所述利用所述目标云平台运行所述程序,包括:利用所述组件集合对所述程序对应的实例组进行处理,得到第二处理结果,其中,所述组件集合与所述实例组一一对应;将所有第二处理结果进行汇总后渲染,并生成经过渲染后的程序的展示页面。
可选地,所述基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,包括:计算所述实例数量与所述处理阈值的商值,响应于确定所述商值为正整数,将所述商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组;响应于确定所述商值不为正整数,对所述商值进行向上取整,将经过所述向上取整后的商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组。
基于同一发明构思,本申请还提供了一种超大规模的微服务程序在云平台上的运行装置,包括:获取模块,被配置为接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值;分组模块,被配置为响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组;组件设置模块,被配置为基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台;运行模块,被配置为利用所述目标云平台运行所述程序。
基于同一发明构思,本申请还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如上所述的方法。
基于同一发明构思,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上所述的方法。
从上面所述可以看出,本申请提供的超大规模的微服务程序在云平台上的运行方法及相关设备,所述方法包括接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值。响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组,达到了对全部微服务实例的处理压力进行分摊的目的。基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台,以使目标云平台能够对程序对应的多个实例组进行处理。利用所述目标云平台运行所述程序,消除了初始云平台对于该程序的处理限制,达到了通过目标云平台对超大规模的程序进行运行的目的。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的超大规模的微服务程序在云平台上的运行方法的流程示意图;
图2为本申请实施例的超大规模的微服务程序在云平台上的运行装置的结构示意图;
图3为本申请实施例电子设备硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,随着云计算的发展,越来越多的业务系统依靠于云平台运行。云平台已支撑电力交易、电网资源业务中台等多套业务系统正常运行。新建业务系统通常采用微服务技术开发,在基于云平台部署时,微服务将信息注册到微服务引擎实例上,实现服务注册、服务治理、配置管理等功能,是业务上云依赖的重要核心组件。但是,微服务引擎处理微服务实例数量存在限制,示例性的,CSE组件专享版目前最大支持2000个微服务实例规格注册,当业务微服务实例数量超过2000个后,即当微服务实例数量超过微服务引擎的处理阈值时,微服务存在不能正常注册的问题,严重影响程序正常运行。此外,电网公司的新一代能源互联网营销服务系统,其微服务实例数量相对多,超过微服务引擎的处理阈值,导致程序无法在云平台上运行。
有鉴于此,本申请实施例提出了一种超大规模的微服务程序在云平台上的运行方法,参考图1,包括以下步骤:
步骤101,接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值。
在该步骤中,随着电网服务系统的发展,电网服务系统对应的程序的规模越来越大,为了不影响本地的其他程序运行,通常利用初始云平台运行该程序。初始云平台包括一个微服务引擎,能够提供服务注册、服务治理、配置管理等全场景能力,帮助用户实现微服务应用的快速开发和高可用运维。同时,支持双栈模式,统一接入和管理Spring Cloud、Apache ServiceComb(Java Chassis/Go Chassis)、Dubbo侵入式框架和非侵入式服务网格。例如,在8.1.0环境下,微服务引擎专享版能够支撑100/500/2000这三种数量的微服务实例规格。为了加快对程序的处理速度,可以将程序划分为多个微服务实例,其中,上述程序为微服务程序,微服务是面向服务的体系结构(SOA)的一种变体,将单一程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。每个服务都围绕着具体业务进行构建,并且能够独立地部署到测试环境、生产环境等。
接收程序对应的全部微服务实例,由于初始云平台中的微服务引擎对于微服务实例的处理存在数量限制,为了确定初始云平台能否对程序中的全部微服务实例进行处理,还需获取初始云平台中的微服务引擎的处理阈值。
步骤102,响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组。
在该步骤中,在全部微服务实例的实例数量大于处理阈值的情况下,说明初始云平台中的微服务引擎并不能对全部微服务实例进行处理。因此,可以对全部微服务实例进行分组,得到多个实例组。示例性的,在实例数量为3000,处理阈值为2000的情况下,微服务引擎并不能对全部微服务实例进行处理,因此,将全部微服务实例进行分组,得到两个实例组,例如,两个实例组中的实例数量相等,每个实例组中的实例数量为1500。每个实例组中的微服务实例的数量小于等于处理阈值。通过对全部微服务实例进行分组,使得实例组中的微服务实例的数量能够被微服务引擎处理,达到了对全部微服务实例的处理压力进行分摊的目的。
步骤103,基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台。
在该步骤中,由于初始云平台中的组件并不能满足对于全部微服务实例的处理需求。因此,基于多个实例组的组数量,对初始云平台进行组件设置,得到目标云平台,以使目标云平台能够对程序对应的多个实例组进行处理。
步骤104,利用所述目标云平台运行所述程序。
在该步骤中,利用目标云平台运行程序,其中,目标云平台为初始云平台经过组件设置后得到的,消除了初始云平台对于该程序的处理限制,达到了利用目标云平台对超大规模的程序进行运行的目的。
通过上述方案,接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值。响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组,达到了对全部微服务实例的处理压力进行分摊的目的。基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台,以使目标云平台能够对程序对应的多个实例组进行处理。利用所述目标云平台运行所述程序,消除了初始云平台对于该程序的处理限制,达到了通过目标云平台对超大规模的程序进行运行的目的。
在一些实施例中,所述组件包括微服务引擎,所述基于所述多个实例组对应的组数量,对所述初始云平台进行组件设置,得到目标云平台,包括:在所述初始云平台中创建与所述组数量相同数量的微服务引擎,并将全部微服务引擎安装到同一共享容器集群,为每个微服务引擎创建关联的组件集合,得到所述目标云平台,其中,每个组件集合均相同。
在本实施例中,为了使得每个微服务实例组都能够被微服务引擎所处理,需创建与组数量相同数量的微服务引擎,并将全部微服务引擎安装到同一共享容器集群,以便对全部微服务引擎处理后的结果进行收集。为每个微服务引擎创建关联的组件集合,上述创建过程具体如下:通过初始云平台的控制台,创建与组数量相同数量的微服务引擎,例如,创建与组数量相同数量的微服务引擎CSE专享版实例,例如,CSE微服务引擎001、CSE微服务引擎002、...。此外,还需创建一个共享容器集群,例如,CCE(Cloud Container Engine,云容器引擎)容器集群,创建一个前端负载均衡ELB(Elastic Load Balance,弹性负载均衡)、创建与组数量相同数量的微服务负载均衡ELB,例如,微服务负载均衡ELB1、微服务负载均衡ELB2、...。还需创建与组数量相同数量的ServiceStage(应用管理与运维平台)应用,例如,yx20-app1、yx20-app2、...。创建和与组数量相同数量的环境,例如,yx20-env1、yx20-env2、...。使用ServiceStage组件环境管理能力,将已创建的资源实例组合为2个环境,每个环境下的组件实例仅供自己环境下的服务使用。示例性的,在组数量为2的情况下,yx20-env1环境包括CSE微服务引擎001、微服务负载均衡ELB1、CCE容器集群;yx20-env2环境包括CSE微服务引擎002、微服务负载均衡ELB2、CCE容器集群。
需要说明的是,上述云容器引擎能够提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,可以在云上轻松部署、管理和扩展容器化应用程序。上述应用管理与运维平台是面向企业的应用管理与运维平台,提供应用发布、部署、监控与运维等一站式解决方案,支持Java、Go、PHP、Node.js、Python、Docker、Tomcat等运行环境,支持Web应用以及Apache ServiceComb、SpringCloud、Dubbo、Mesher服务网格等微服务应用和通用应用,让企业应用上云更简单。应用管理与运维平台主要包括应用生命周期管理、环境管理、组件管理、微服务应用接入。上述弹性负载均衡可以通过流量分发扩展应用系统对外的服务能力,实现更高水平的应用程序容错性能。弹性负载均衡可以消除单点故障,提高整个系统的可用性。
通过ServiceStage部署,在部署过程中建立实例组与云平台组件的关系,建立实例组与环境的关系,建立实例组与CCE集群的关系,建立实例组与CCE集群命名空间的关系,实现将实例组部署到对应的CCE命名空间下面,将该命名空间下的微服务实例注册到该环境下配置的微服务引擎CSE实例上。示例性的,在组数量为2的情况下,通过ServiceStage创建yx20-app1应用,在创建部署业务微服务组件时,选择yx20-env1环境,选择CCE容器集群,选择default命名空间,在启动微服务实例时,微服务实例自动注册到CSE微服务引擎001实例上。通过ServiceStage创建yx20-app2应用,在创建部署业务微服务组件时,选择yx20-env2环境,选择CCE容器集群,选择default2命名空间,在启动微服务实例时,微服务实例自动注册到CSE微服务引擎002实例上。在弹性云服务器上部署2个前端应用,并通过初始云平台的控制台,在已创建的前端负载均衡ELB中配置前端应用轮询路由规则,平均将用户HTTP请求压力分摊到2个前端应用上。在已创建的2个微服务负载均衡ELB中配置路由规则,每1个微服务负载均衡ELB对应1个环境下的业务微服务实例,通过配置轮询路由规则,平均将用户HTTP请求压力分摊到2个环境下的微服务上。2个Namespace命名空间之间的微服务不存在调用关系,微服务与微服务之间的调用限制在同一个命名空间。如微服务负载均衡ELB1配置yx20-app1应用、yx20-env1环境下的微服务实例。微服务负载均衡ELB2配置yx20-app2应用、yx20-env2环境下的微服务实例。登录前端应用弹性云服务器,分别配置与组数量相同数量的前端应用访问后端微服务地址,1个前端应用配置1个微服务负载均衡ELB地址,实现某个前端应用只访问某个环境下微服务。当用户请求产生时,前端负载均衡ELB将请求轮询转发给某个前端应用,前端应用将请求转发到微服务负载均衡ELB,微服务负载均衡ELB根据路由规则,转发到某个环境下的微服务实例,当微服务实例业务逻辑处理完成后,将请求响应给前端界面。最终满足新一代能源互联网营销服务系统中的超大规模的微服务实例数量的使用需求,解决微服务引擎CSE实例超过2000个的无法注册的问题。
示例性的,在实例数量为3000,处理阈值为2000的情况下,需要创建1个CCE容器集群,创建2个CCE容器集群Namespace命名空间,创建2个CSE微服务引擎专享版实例,其中,CSE微服务引擎专享版实例的处理阈值为2000,创建1个前端负载均衡ELB,部署2套前端应用,创建2个微服务负载均衡ELB,创建2个ServiceStage应用和2个环境,使用ServiceStage组件环境管理能力,将已创建的资源实例,组合为2个环境,如:生产环境1,生产环境2,通过环境维度来管理资源、部署微服务,实现大型业务系统(微服务实例大于2000,小于4000)正常上云。当用户通过浏览器访问业务系统界面时,通过前端负载均衡ELB,将请求轮询转发给业务部署的2个前端应用,2个前端应用分别配置1个微服务负载均衡ELB地址及路由规则,每个微服务负载均衡ELB分别对应1个环境下的业务微服务实例。当用户请求产生时,将请求轮询转发给某个环境下的业务微服务实例,当某个环境下微服务实例处理完成业务逻辑后,将请求响应给前端界面。每个环境下均部署全量业务微服务,每个环境下的微服务之间互相调用,不存在跨环境微服务调用关系。
因此,本实施例中的组件集合包括微服务引擎、Namespace命名空间所处的组件、微服务负载均衡ELB所处的组件、ServiceStage应用所处的组件、前端应用和环境所处的组件。通过增加组件,调整初始云平台的常规部署方式,在容量上满足程序的使用量需求,得到目标云平台。基于目标云平台的负载均衡能力,能够满足超大规模程序的运行需求,不需要修改代码,进而不会引入代码bug,有效保证了目标云平台的的安全性和稳定性。
在一些实施例中,在为每个微服务引擎创建关联的组件集合,得到所述目标云平台之后,所述方法包括:对所述目标云平台进行验证。
在本实施例中,目标云平台设置完成后可能会存在设置错误。假设目标云平台不经过验证而直接投入使用,在目标云平台的设置存在错误的情况下,一方面,由于程序的规模相对大,将会导致计算资源的浪费,另一方面,经过相对长的时间才会知道程序的运行结果,进而再采取相关修改措施,将会使得目标云平台对于程序的总处理时间变长。因此,在目标云平台投入使用之前,需要对目标云平台进行验证,确保了目标云平台的设置具有准确性。
在一些实施例中,所述对所述目标云平台进行验证,包括:获取样本程序的全部样本微服务实例,将所述全部样本微服务实例按照所述组数量进行分组,得到多个样本组;利用所述组件集合对所述样本组进行处理,得到第一处理结果,其中,所述组件集合与所述样本组一一对应;将所有第一处理结果进行汇总后渲染,并生成所述样本程序对应的展示页面,响应于确定所述样本程序对应的展示页面符合所述样本程序对应的预设展示页面,确定所述目标云平台通过验证。
在本实施例中,获取样本程序的全部样本微服务实例,其中,全部样本微服务实例的数量可远远小于实例数量,以达到在满足对目标云平台的验证前提下,节约计算资源的目的。将全部样本微服务实例按照组数量进行分组,得到多个样本组,使得样本组的数量与程序对应的组数量相同,也与全部组件集合的数量相同。利用组件集合对样本组进行处理,得到第一处理结果,其中,组件集合与样本组一一对应,使得全部组件集合都参与对样本组进行处理的过程,确保了对全部组件集合验证的全面性。将所有第一处理结果进行汇总后渲染,生成样本程序对应的展示页面。在展示页面符合样本程序对应的预设展示页面的情况下,确定目标云平台通过验证,达到了对目标云平台进行准确验证的目的。
在一些实施例中,还包括:响应于确定所述样本程序的展示页面不符合所述预设展示页面,确定所述目标云平台未通过验证,发出用于提示对所述目标云平台中的组件部署进行检查的提示信息。
在本实施例中,在展示页面不符合样本程序对应的预设展示页面的情况下,说明样本程序的运行存在错误,即目标云平台的组件设置出现错误。此种状况下,确定目标云平台未通过验证,发出用于提示对目标云平台中的组件部署进行检查的提示信息,使得用户及时了解此时的目标云平台出现组件设置错误,进而进行相应修改。
在一些实施例中,所述利用所述目标云平台运行所述程序,包括:利用所述组件集合对所述程序对应的实例组进行处理,得到第二处理结果,其中,所述组件集合与所述实例组一一对应;将所有第二处理结果进行汇总后渲染,并生成经过渲染后的程序的展示页面。
在本实施例中,利用组件集合对程序对应的实例组进行处理,以全部微服务实例的数量为4000举例,上述处理具体过程如下:微服务引擎的处理阈值为2000,则将全部微服务实例分为两个实例组,组件集合对每个实例组的处理过程可以看作是请求轨迹。则用户请求轨迹1为:当用户通过浏览器访问目标云平台的URL地址时,触发HTTP请求事件。上述请求事件通过前端负载均衡ELB的IP和监听端口,进入前端负载均衡ELB,前端负载均衡ELB接收到请求事件时,将请求事件轮询转发给部署的前端应用副本A。需要说明的是,前端应用副本A的代码只有配置的微服务负载均衡ELB的ip和监听端口与其他前端应用副本不一致,其他代码都一致,在部署前端应用时,通过javascript全局配置文件配置微服务负载均衡ELB1的地址和端口。前端应用副本A根据前端业务功能地址定位到前端应用的编译后的功能代码,前端应用功能代码触发访问后端微服务URL地址。根据访问的微服务负载均衡ELB1的IP和监听端口,进入微服务负载均衡ELB1,微服务负载均衡ELB1根据路由规则,转发到注册成功的yx20-env1环境下的微服务实例,其中,该环境下微服务部署在CCE容器集群命名空间default下,该命名空间default下的微服务只能注册到CSE微服务引擎001。在微服务实例为无状态工作负载微服务实例0001的情况下,当无状态工作负载微服务实例0001需要调用无状态工作负载微服务实例1999对外的功能接口完成整个业务逻辑时,无状态工作负载微服务实例0001通过缓存的微服务列表中的微服务名称查找微服务具体的ip和端口,通过微服务IP和端口,建立请求连接,请求到无状态工作负载微服务实例1999的功能接口。当微服务实例1999功能接口处理完成逻辑后,将业务处理信息返回给无状态工作负载微服务实例0001。无状态工作负载微服务实例0001处理完成业务逻辑后,将请求响应给微服务负载均衡ELB1,微服务负载均衡ELB1将响应返回给前端应用副本A。前端应用副本A将响应返回给前端负载均衡ELB,前端负载均衡ELB将请求返回给浏览器用户,完成整个请求操作。
用户请求轨迹2:当用户通过浏览器访问目标云平台的URL地址时,触发HTTP请求事件。上述请求事件通过前端负载均衡ELB的IP和监听端口,进入前端负载均衡ELB,前端负载均衡ELB接收到请求事件时,将请求事件轮询转发给部署的前端应用副本B。需要说明的是,前端应用副本B的代码只有配置的微服务负载均衡ELB的ip和监听端口与其他前端应用副本不一致,其他代码都一致,在部署前端应用时,通过javascript全局配置文件配置微服务负载均衡ELB2的地址和端口。前端应用副本B根据前端业务功能地址定位到前端应用的编译后的功能代码,前端应用功能代码触发访问后端微服务URL地址。根据访问的微服务负载均衡ELB2的IP和监听端口,进入微服务负载均衡ELB2,微服务负载均衡ELB2根据路由规则,转发到注册成功的yx20-env2环境下的微服务实例,其中,该环境下微服务部署在CCE容器集群命名空间default2下,该命名空间default2下的微服务只能注册到CSE微服务引擎002实例。在微服务实例为无状态工作负载微服务实例0001的情况下,当无状态工作负载微服务实例0001需要调用无状态工作负载微服务实例2000对外的功能接口完成整个业务逻辑时,无状态工作负载微服务实例0001通过缓存的微服务列表中的微服务名称查找微服务具体的ip和端口,通过微服务IP和端口,建立请求连接,请求到无状态工作负载微服务实例2000的功能接口,当微服务实例2000功能接口处理完成逻辑后,将业务处理信息返回给无状态工作负载微服务实例0001。无状态工作负载微服务实例0001处理完成业务逻辑后,将请求响应给微服务负载均衡ELB2,微服务负载均衡ELB2将响应返回给前端应用副本B。前端应用副本B将响应返回给前端负载均衡ELB,前端负载均衡ELB将请求返回给浏览器用户,完成整个请求操作。
经过组件集合对程序对应的实例组进行处理后,得到第二处理结果,将多个第二处理结果进行汇总后渲染,并生成经过渲染后的程序的展示页面,以达到对大规模的程序进行处理的目的。
在一些实施例中,所述基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,包括:计算所述实例数量与所述处理阈值的商值,响应于确定所述商值为正整数,将所述商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组;响应于确定所述商值不为正整数,对所述商值进行向上取整,将经过所述向上取整后的商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组。
在本实施例中,微服务引擎对于微服务实例的处理存在数量限制,为了使得每个微服务引擎能够对微服务实例进行处理,需对全部微服务实例进行分组,使得每个分组的微服务实例的数量小于或等于微服务引擎的处理阈值。计算实例数量与处理阈值的商值,在商值为正整数的情况下,即可将商值确定为组数量,示例性的,在实例数量为4000,处理阈值为2000的情况下,则组数量为2。在商值不为正整数的情况下,对商值进行向上取整,将经过向上取整后的商值确定为组数量,示例性的,在实例数量为3000,处理阈值为2000的情况下,商值为1.5,则将1.5向上取整后得到的2确定为组数量。在确定组数量后,将全部微服务实例按照组数量进行分组,其中,每组中的微服务实例数量小于等于微服务引擎的处理阈值,例如,在实例数量为3000,处理阈值为2000的情况下,则其中一个实例组中的微服务实例数量为1500,另一个实例组中的微服务实例数量也为1500。通过对全部微服务实例进行分组,对全部微服务实例的处理压力进行分摊,使得后续过程中程序能够顺利运行。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种超大规模的微服务程序在云平台上的运行装置。
参考图2,所述超大规模的微服务程序在云平台上的运行装置,包括:
获取模块10,被配置为接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值。
分组模块20,被配置为响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组。
组件设置模块30,被配置为基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台。
运行模块40,被配置为利用所述目标云平台运行所述程序。
通过上述装置,接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值。响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组,达到了对全部微服务实例的处理压力进行分摊的目的。基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台,以使目标云平台能够对程序对应的多个实例组进行处理。利用所述目标云平台运行所述程序,消除了初始云平台对于该程序的处理限制,达到了通过目标云平台对超大规模的程序进行运行的目的。
在一些实施例中,所述组件设置模块20,还被配置为所述组件包括微服务引擎,在所述初始云平台中创建与所述组数量相同数量的微服务引擎,并将全部微服务引擎安装到同一共享容器集群,为每个微服务引擎创建关联的组件集合,得到所述目标云平台,其中,每个组件集合均相同。
在一些实施例中,还包括验证模块,所述验证模块被配置为在为每个微服务引擎创建关联的组件集合,得到所述目标云平台之后,对所述目标云平台进行验证。
在一些实施例中,所述验证模块,还被配置为获取样本程序的全部样本微服务实例,将所述全部样本微服务实例按照所述组数量进行分组,得到多个样本组;利用所述组件集合对所述样本组进行处理,得到第一处理结果,其中,所述组件集合与所述样本组一一对应;将所有第一处理结果进行汇总后渲染,并生成所述样本程序对应的展示页面,响应于确定所述样本程序对应的展示页面符合所述样本程序对应的预设展示页面,确定所述目标云平台通过验证。
在一些实施例中,还包括提示模块,所述提示模块被配置为响应于确定所述样本程序的展示页面不符合所述预设展示页面,确定所述目标云平台未通过验证,发出用于提示对所述目标云平台中的组件部署进行检查的提示信息。
在一些实施例中,所述运行模块40,还被配置为利用所述组件集合对所述程序对应的实例组进行处理,得到第二处理结果,其中,所述组件集合与所述实例组一一对应;将所有第二处理结果进行汇总后渲染,并生成经过渲染后的程序的展示页面。
在一些实施例中,所述分组模块20,还被配置为计算所述实例数量与所述处理阈值的商值,响应于确定所述商值为正整数,将所述商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组;响应于确定所述商值不为正整数,对所述商值进行向上取整,将经过所述向上取整后的商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的超大规模的微服务程序在云平台上的运行方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的超大规模的微服务程序在云平台上的运行方法。
图3示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的超大规模的微服务程序在云平台上的运行方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的超大规模的微服务程序在云平台上的运行方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的超大规模的微服务程序在云平台上的运行方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种超大规模的微服务程序在云平台上的运行方法,其特征在于,包括:
接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值;
响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组;
基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台;
利用所述目标云平台运行所述程序。
2.根据权利要求1所述的方法,其特征在于,所述组件包括微服务引擎,
所述基于所述多个实例组对应的组数量,对所述初始云平台进行组件设置,得到目标云平台,包括:
在所述初始云平台中创建与所述组数量相同数量的微服务引擎,并将全部微服务引擎安装到同一共享容器集群,为每个微服务引擎创建关联的组件集合,得到所述目标云平台,其中,每个组件集合均相同。
3.根据权利要求2所述的方法,其特征在于,在为每个微服务引擎创建关联的组件集合,得到所述目标云平台之后,所述方法包括:
对所述目标云平台进行验证。
4.根据权利要求3所述的方法,其特征在于,所述对所述目标云平台进行验证,包括:
获取样本程序的全部样本微服务实例,将所述全部样本微服务实例按照所述组数量进行分组,得到多个样本组;
利用所述组件集合对所述样本组进行处理,得到第一处理结果,其中,所述组件集合与所述样本组一一对应;
将所有第一处理结果进行汇总后渲染,并生成所述样本程序对应的展示页面,响应于确定所述样本程序对应的展示页面符合所述样本程序对应的预设展示页面,确定所述目标云平台通过验证。
5.根据权利要求4所述的方法,其特征在于,还包括:
响应于确定所述样本程序的展示页面不符合所述预设展示页面,确定所述目标云平台未通过验证,发出用于提示对所述目标云平台中的组件部署进行检查的提示信息。
6.根据权利要求2所述的方法,其特征在于,所述利用所述目标云平台运行所述程序,包括:
利用所述组件集合对所述程序对应的实例组进行处理,得到第二处理结果,其中,所述组件集合与所述实例组一一对应;
将所有第二处理结果进行汇总后渲染,并生成经过渲染后的程序的展示页面。
7.根据权利要求1所述的方法,其特征在于,所述基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,包括:
计算所述实例数量与所述处理阈值的商值,响应于确定所述商值为正整数,将所述商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组;
响应于确定所述商值不为正整数,对所述商值进行向上取整,将经过所述向上取整后的商值确定为所述组数量,并将所述全部微服务实例按照所述组数量进行分组。
8.一种超大规模的微服务程序在云平台上的运行装置,其特征在于,包括:
获取模块,被配置为接收程序对应的全部微服务实例,以及获取预先构建的初始云平台中的微服务引擎的处理阈值;
分组模块,被配置为响应于确定所述全部微服务实例的实例数量大于所述处理阈值,基于所述实例数量和所述处理阈值,对所述全部微服务实例进行分组,得到多个实例组;
组件设置模块,被配置为基于所述多个实例组的组数量,对所述初始云平台进行组件设置,得到目标云平台;
运行模块,被配置为利用所述目标云平台运行所述程序。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
CN202311560290.0A 2023-11-21 2023-11-21 超大规模的微服务程序在云平台上的运行方法及相关设备 Pending CN117850898A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311560290.0A CN117850898A (zh) 2023-11-21 2023-11-21 超大规模的微服务程序在云平台上的运行方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311560290.0A CN117850898A (zh) 2023-11-21 2023-11-21 超大规模的微服务程序在云平台上的运行方法及相关设备

Publications (1)

Publication Number Publication Date
CN117850898A true CN117850898A (zh) 2024-04-09

Family

ID=90536720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311560290.0A Pending CN117850898A (zh) 2023-11-21 2023-11-21 超大规模的微服务程序在云平台上的运行方法及相关设备

Country Status (1)

Country Link
CN (1) CN117850898A (zh)

Similar Documents

Publication Publication Date Title
TWI743458B (zh) 一種並行化執行區塊鏈交易的方法、裝置及系統
US11132278B2 (en) Application programming interface security validation for system integration testing
JP2019032903A (ja) エッジ位置でのカスタマイズ可能なイベントトリガ型計算のためのシステム、方法、及びコンピュータ可読記憶媒体
CN108696381B (zh) 一种协议配置方法及装置
WO2018063803A1 (en) Generating an application programming interface
JP6424823B2 (ja) 情報処理装置、及び、システム設計支援方法
US10592399B2 (en) Testing web applications using clusters
US20130227232A1 (en) Partition aware quality of service feature
CN103580937A (zh) 一种Web 服务模拟的方法及其系统和服务代理系统
US10382313B2 (en) Test building for testing server operation
CN108683668A (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
CN111510330B (zh) 接口管理装置、方法及存储介质
CN113965543B (zh) 一种应用服务器的访问方法、装置及存储介质
US11290541B2 (en) Synchronous client-side log service
Mittal et al. Cloud testing-the future of contemporary software testing
CN106502707B (zh) 代码生成方法及装置
CN115269198B (zh) 基于服务器集群的访问请求处理方法及相关设备
CN117850898A (zh) 超大规模的微服务程序在云平台上的运行方法及相关设备
CN114466000A (zh) 一种cdn网关回源方法及装置
CN114610732A (zh) 兜底数据处理方法及装置
CN108809687B (zh) 用于提供跨网络事件归因的系统和方法
CN111258873B (zh) 测试方法及装置
US20150121351A1 (en) Generating configuration data based on application definitions
CN117555533B (zh) 代码生成方法、电子设备及存储介质
Xiaojiang et al. The design and implementation of resource monitoring for cloud computing service platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination