CN108206852B - 一种微服务框架下的基于会话的服务实例管理方法及设备 - Google Patents

一种微服务框架下的基于会话的服务实例管理方法及设备 Download PDF

Info

Publication number
CN108206852B
CN108206852B CN201611184959.0A CN201611184959A CN108206852B CN 108206852 B CN108206852 B CN 108206852B CN 201611184959 A CN201611184959 A CN 201611184959A CN 108206852 B CN108206852 B CN 108206852B
Authority
CN
China
Prior art keywords
service
target
service instance
session
parameters
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.)
Active
Application number
CN201611184959.0A
Other languages
English (en)
Other versions
CN108206852A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201611184959.0A priority Critical patent/CN108206852B/zh
Publication of CN108206852A publication Critical patent/CN108206852A/zh
Application granted granted Critical
Publication of CN108206852B publication Critical patent/CN108206852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种微服务框架下的服务实例管理方法及设备,该方法包括:设备获取调用请求,该调用请求为客户端请求调用预设应用的微服务的请求且该调用请求包含目标参数;该设备根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例;该设备将该调用请求路由到负载均衡器,以使该负载均衡器为该微服务分配目标服务实例,该目标服务实例为该目标参数对应的服务实例。采用本发明,能够在会话需要特定的服务实例的场景下进行服务实例管理。

Description

一种微服务框架下的基于会话的服务实例管理方法及设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种微服务框架下的基于会话的服务实例管理方法及设备。
背景技术
“单体应用(monolithic application)”是将应用程序的所有功能都打包成一个独立的单元的应用程序架构,单体应用可以是JAR、WAR、EAR或其它归档格式。单体应用主要有如下不足:不够灵活、妨碍持续交付、受技术栈限制等等。随着业务需求的快速发展变化,敏捷性、灵活性和可扩展性需求不断增长,单体应用的架构已经越来越难以满足业务需求。
微服务是业界新兴的不同于单体应用的架构,是以一系列独立的自治理的组件来开发支撑一个应用的方法论。微服务独立在自己的进程中,通过轻量级通信机制交互(REST/RPC等)。这些微服务是围绕着业务上的组织结构来构建的,全自动的、独立部署。微服务可以满足业务需求快速变化需求的软件架构风格,在敏捷性、灵活性和扩展性方面具有优势。在微服务架构中,单体应用被分解成多个更小的微服务,每个微服务有自己的归档文件,单独部署,然后共同组成一个应用程序。每个微服务可以由至少一个服务实例来提供。
应用程序包含的多个微服务通信需要多个服务实例来支撑,服务实例的数量通常采用弹性伸缩策略,目前主要是基于资源的使用情况来触发弹性伸缩动作,常见的资源使用监控指标有CPU使用率、内存使用率等。图1是现有技术中服务实例弹性伸缩的场景示意图,在图1中,当CPU平均值大于80%时,表明服务实例不够用,因此可以新增两台服务实例;当CPU平均值小于30%时,表明服务实例比较充足,因此可以适当减少两台服务实例。
然而,某些场景下服务实例的生命周期管理和用户会话有关,而和资源使用无关。例如,一个服务实例只能服务一个用户的会话。这种情况下,即使服务实例的资源使用率很低,当有新的用户请求进来时,仍需启动一个新的服务实例;再如,多个用户共享一个会话,常见于计算机教学场景,比如多个学员共享教员的计算机会话来查看教员的操作。以上两种场景,都需要一个会话模块来管理会话和服务实例之间的关系。然而,现有的弹性伸缩策略维护服务实例的方式无法适应上述这些场景。
发明内容
本发明实施例公开了一种微服务框架下的基于会话的服务实例管理方法及设备,能够在会话需要特定的服务实例的场景下进行服务实例管理。
第一方面,本发明实施例提供了一种微服务框架下的服务实例管理方法,该方法包括:设备获取调用请求,该调用请求为客户端请求调用预设应用的微服务的请求且该调用请求包含目标参数;该设备根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例,该目标参数为该多组参数中的一组,该目标参数包含描述该客户端的信息和描述该微服务的信息中至少一项;该设备将该调用请求路由到负载均衡器,以使该负载均衡器为该微服务分配目标服务实例,该目标服务实例为该目标参数对应的服务实例。
通过执行上述步骤,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
结合第一方面,在第一方面的第一种可能的实现方式中,该设备根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之后,该设备将该调用请求路由到负载均衡器之前,还包括:该设备触发创建该目标服务实例,以使该目标服务实例为该客户端提供该微服务。
结合第一方面,或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该设备根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,还包括:该设备判断该目标参数是否满足预设条件;若满足,则执行该设备根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例的步骤。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该设备根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,还包括:该设备配置多组参数与多个服务实例之间的对应关系,以使该多组参数中的每组参数至少对应一个服务实例。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:设备监控目标会话的会话状态以供后续使用,该目标会话为该客户端访调用该微服务时与该目标服务实例之间的会话,该会话状态包括已登陆、已断开、已连接、已注销和活跃中至少一项。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该方法还包括:该设备根据该目标会话的会话状态确定该目标会话闲置的时间;该设备在该目标会话闲置时间超过预设阈值时注销该目标服务实例。
第二方面,本发明实施例提供一种微服务框架下的服务实例管理设备,包括获取单元、确定单元和协调单元,其中,获取单元,用于获取调用请求,该调用请求为客户端请求调用预设应用的微服务的请求且该调用请求包含目标参数;确定单元,用于根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例,该目标参数为该多组参数中的一组,该目标参数包含描述该客户端的信息和描述该微服务的信息中至少一项;协调单元,用于将该调用请求路由到负载均衡器,以使该负载均衡器为该微服务分配目标服务实例,该目标服务实例为该目标参数对应的服务实例。
通过运行上述单元,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
结合第二方面,在第二方面的第一种可能的实现方式中,还包括:创建单元,用于在该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之后,该协调单元将该调用请求路由到负载均衡器之前,触发创建该目标服务实例,以使该目标服务实例为该客户端提供该微服务。
结合第二方面,或者第二方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:判断单元,用于在该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,判断该目标参数是否满足预设条件;若满足,则触发该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例。
结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,还包括:配置单元,用于在该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,配置多组参数与多个服务实例之间的对应关系,以使该多组参数中的每组参数至少对应一个服务实例。
结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,或者第二方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,还包括:
监控单元,用于监控目标会话的会话状态以供后续使用,该目标会话为该客户端访调用该微服务时与该目标服务实例之间的会话,该会话状态包括已登陆、已断开、已连接、已注销和活跃中至少一项。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,还包括:确认单元,用于根据该目标会话的会话状态确定该目标会话闲置的时间;注销单元,用于在该目标会话闲置时间超过预设阈值时注销该目标服务实例。
第三方面,本发明实施例提供了一种微服务框架下的服务实例管理设备,该设备包括处理和存储器,该存储器用于存储程序和数据,该处理调用该存储器中的程序,用于执行如下操作:获取调用请求,该调用请求为客户端请求调用预设应用的微服务的请求且该调用请求包含目标参数;根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例,该目标参数为该多组参数中的一组,该目标参数包含描述该客户端的信息和描述该微服务的信息中至少一项;将该调用请求路由到负载均衡器,以使该负载均衡器为该微服务分配目标服务实例,该目标服务实例为该目标参数对应的服务实例。
通过执行上述步骤,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
结合第三方面,在第三方面的第一种可能的实现方式中,该处理器根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之后,该处理器将该调用请求路由到负载均衡器之前,该处理器还用于:触发创建该目标服务实例,以使该目标服务实例为该客户端提供该微服务。
结合第三方面,或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该处理器根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,还用于:判断该目标参数是否满足预设条件;若满足,则执行根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例的操作。
结合第三方面,或者第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,该处理器根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,还用于:配置多组参数与多个服务实例之间的对应关系,以使该多组参数中的每组参数至少对应一个服务实例。
结合第三方面,或者第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,或者第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,该处理器还用于:监控目标会话的会话状态以供后续使用,该目标会话为该客户端访调用该微服务时与该目标服务实例之间的会话,该会话状态包括已登陆、已断开、已连接、已注销和活跃中至少一项。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,该处理器还用于:根据该目标会话的会话状态确定该目标会话闲置的时间;该设备在该目标会话闲置时间超过预设阈值时注销该目标服务实例。
通过实施本发明实施例,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是现有技术中的一种基于弹性伸缩策略管理服务实例的场景示意图;
图2是本发明实施例提供的一种模块部署示意图;
图3是本发明实施例提供的又一种模块部署示意图;
图4是本发明实施例提供的一种微服务框架下的服务实例管理方法的流程示意图;
图5是本发明实施例提供的一种服务实例访问的场景示意图;
图6是本发明实施例提供的一种微服务框架下的服务实例管理设备的结构示意图;
图7是本发明实施例提供的又一种微服务框架下的服务实例管理设备的结构示意图。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行清楚地描述。
微服务框架中包括需要访问微服务的客户端(也称消费者consumer)、负载均衡器Load Balancer、服务器集群等,该服务器集群中包含服务注册中心service registry、微服务提供者producer等,其中,服务提供者上所有新建的微服务都会注册到服务注册中心,客户端向服务注册中心订阅自己感兴趣的微服务,服务注册中心会将相应的微服务信息下发到客户端,以便客户端可以对微服务发起调用。另外,该服务提供者上的每个微服务由各自对应的服务实例来执行,任何微服务与该微服务对应的服务实例之间的对应关系都会存储到该负载均衡器中,负载均衡器按照预先定义的算法从可用的服务实例中选择一个来处理客户端的请求(一个微服务对应的服务实例的数量可以为一个也可以为多个,但是客户端在每次访问时通常访问该微服务对应的服务实例中的某一个服务实例)。负载均衡器可以配置在服务器集群中也可以配置在客户端中。
微服务治理框架包括基于服务器侧(英文:server side based)和基于客户端侧(英文:client side based)这两种方式,若微服务治理框架的一些与客户端相关的功能(例如,服务发现、健康检查、负载均衡、流控等)配置在该服务器集群中,那么该微服务框架为基于服务器侧的微服务框架;若微服务治理框架的一些与客户端相关的功能配置在该客户端中,那么该微服务框架为基于客户端侧的微服务框架。
若该微服务框架为基于服务器侧的微服务框架,则此处描述的设备可以为部署在该服务器集群中的某个服务器,该设备获取调用请求具体为该某个服务器接收客户端发送的调用请求,该某个服务器可以独立于该负载均衡器也可以集成在该负载均衡器中。若微服务框架为基于客户端侧的微服务框架,则此处描述的设备为该客户端,该设备获取调用请求具体为该客户端生成该调用请求。
以下先对本发明可能涉及到的功能模块做简单的介绍,在实际应用中这里的部分功能模块还可能集成在一个模块上,这里的一个功能模块还可能被细分为多个模块,各个模块的描述如下。
策略管理模块:用于根据预先配置的会话代理策略来决定给定的微服务是否需要启用会话代理功能,是否需要共享会话,是否需要会话保持等。该会话代理功能可以为后续描述的步骤S404和S405所实现的功能,还可以包括S406和S407所实现的功能。
透明会话代理模块:用于根据目标参数和会话代理策略决定是否启动新的服务实例、将路由请求到微服务治理框架的负载均衡、输出会话信息到会话监控等。
服务实例生命周期控制模块:用于根据透明会话代理的决策调用应用调度和资源管理模块完成对服务实例的生命周期控制。
会话监控模块:用于对客户端与服务实例之间的会话状态相关的信息进行记录。例如:用户名、客户端、时间戳、会话状态等;会话状态有:登录、活跃、断开、已连接、注销等。监控得到的信息可以用于计费、审计、监控、数据挖掘等。
当微服务治理框架为基于客户端侧时,各个模块的部署方式如图2所示,当微服务治理框架为基于服务器侧时,各个模块的部署方式如图3所示。
请参见图4,图4是本发明实施例提供的一种微服务框架下的服务实例管理方法的流程示意图,该方法包括但不限于如下步骤。
步骤S401:管理员预先通过策略配置模块配置会话代理策略。
具体地,该会话代理策略定义了如何根据描述该客户端的信息、描述微服务的信息等来确定哪些微服务需要启用透明会话代理功能、会话共享、会话保持,以及描述了多组参数与多个服务实例的对应关系等。例如,定义了各组参数是否对应了该多个服务实例中的服务实例,若对应了,还可具体定义跟该多个服务实例中的哪个服务实例对应,另外,还可定义哪些微服务需要启用会话代理、会话保持等。需要说明的是,这里的多组参数中的每个参数可以包括描述该客户端的信息和描述该微服务的信息中至少一项,对于两组不同的参数来说,这两组参数的不同点可能是因为描述客户端的信息不同,也可能是因为描述微服务的信息不同。通常情况下,若两组参数来源于不同的客户端则这两组参数中用于描述客户端的信息不同,若两组参数用于请求不同的微服务则这两组参数中用于描述微服务的信息不同。该策略配置模块为预先配置的用来配置会话代理策略的工具。图4中的服务实例1到服务实例N+1用于表示多个不同的服务实例。
步骤S402:设备获取调用请求。
具体地,该调用请求为客户端生成的用于请求调用预设应用的微服务的请求,该预设应用为预先配置的由一系列独立的自治理的微服务来支撑的某个应用,该预设应用的各个微服务由上述服务器集群中的部署的一系列服务实例来执行。该调用请求调用的微服务往往为该一系列微服务中的一个微服务。另外,该调用请求中包含目标参数,该目标参数属于上述多组参数中的一项,当然也可以包含其他信息;描述该客户端的信息可以为客户端的网络协议(英文:Internet Protocol,简称:IP)地址,用户代理(英文:UserAgent,该用户代理可以为浏览器),时间戳等,描述微服务的信息可以为请求调用的那个或那些微服务的名称、标识等信息。
步骤S403:该设备根据该会话代理策略确定目标参数对应的服务实例。
具体地,该设备可以通过透明会话代理模块来根据调用请求中的目标参数,确定该调用请求所请求的微服务是否需要会话代理功能,若不需要则可按照现有技术中的微服务框架的执行流程来操作(如后续描述的场景一),若需要则执行后续操作。可以称从该多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例为目标服务实例,以方便后续描述。进一步地,该透明会话代理模块还可以判断是否要对目标服务实例执行生命周期管理,例如,若调用请求所请求的微服务属于新会话且该微服务要求一个实例服务处理一个用户会话,则需要启动一个新的微服务实例作为该目标服务实例;如果调用请求所请求的微服务属于已有会话且已绑定有服务实例,则不需要再启动新的服务实例。
步骤S404:该设备触发对目标服务实例的生命周期控制。
具体地,如果会话代理模块确定需要对目标服务实例进行生命周期管理,则通过服务实例生命周期控制模块触发调用应用调度与资源管理系统完成对目标服务实例的生命周期控制,并进一步调用微服务治理框架完成服务的注册、解注册,并把目标服务实例的路由信息刷新到负载均衡上,以便调用请求路由到负载均衡器上时该负载服务器可以获取该目标服务实例的路由信息。举例来说,若该服务器中未部署该目标服务实例,则通过调用相应接口来触发该服务器集群中维护服务实例的生命周期的服务器创建新的服务实例作为该目标服务实例,该维护服务实例的生命周期的服务器还会将建立的目标服务实例的路由注册到负载均衡器,该设备可以从负载均衡器中找到该目标服务实例的地址。需要说明的是,应用调度和资源管理系统用于通过多个不同层次的控制器在PaaS平台管理的集群上创建、调度应用实例,并且根据管理计划来维护应用实例在整个生命周期内的正确状态。同时通过异构IaaS层接口对接不同的IaaS层,采用自动化的方式创建和配置集群,这些集群组成了租户的资源池,供租户来托管其应用和服务。调度和资源管理系统作为PaaS平台中的底层插座,既负责PaaS平台本身子系统的生命周期管理,也可为应用开发者提供一个简单易用、高效稳定的资源调度管理平台。
步骤S405:该设备将该调用请求路由到负载均衡器,以使该负载均衡器根据该调用请求为该微服务分配该目标服务实例。
具体地,由于该负载均衡器中存储了目标服务实例的地址,因此当调用请求路由到负载均衡器时该负载均衡器会根据该目标服务实例的地址触发启动该目标服务实例,以使该目标服务实例为该客户端提供该客户端所请求的微服务。负载均衡器一般都支持会话保持功能,使得来自同一个客户端的请求总是被同一个服务实例处理。
可选的,还可以包括步骤S406和S407,S406和S407的相关描述如下:
步骤S406:透明会话代理模块将该微服务所属的会话的相关信息发送给该会话监控模块。
步骤S407:该会话监控模块根据该会话的相关信息确定该会话的会话状态,可能的会话状态有已登录、已断开、已连接、已注销、活跃等。监控到的会话状态可以用于计费、审计、监控、数据挖掘等。该监控模块可以为其他设备开发接口,以便该其他设备可以通过该接口调用该会话状态的相关信息。
按照以上分配服务实例的方式,如果有多个客户端之间进行了会话共享,那么这多个客户端调用同一个微服务时各自生成的调用请求中包含的描述客户端的信息、描述微服务的信息等所对应的服务实例相同,也即是说,如果多个客户端进行了会话共享且调用同一个微服务,则可以由同一个服务实例为这多个客户端提供该微服务的访问。可选的,该多个客户端调用该微服务的权限可以相同也可以不同。
当前的微服务框架中,在第一种场景下,是否增加和减少服务实例取决于已有的服务实例运行时CPU的使用率、内存的使用率等;在第二种场景下,一个服务实例只能服务一个用户会话,如图5所示,一个门户站点上面放置了一系列的工具类应用(包括应用1、应用2、……、应用N)供用户(包括用户1和用户2)在线使用。一个业务管理流程(英文:BPM-Business Process Management,简称:BPM)引擎预置了多个应用流程,这些应用流程可以简化为对一系列微服务的调用。不同的用户调用相同的微服务时需要用到的服务实例不同,例如,用户1调用微服务1时用到的服务实例为服务实例11,用户2调用微服务1时用到的服务实例为服务实例12,用户1调用微服务2时用到的服务实例为服务实例21,用户2调用微服务2时用到的服务实例为服务实例22等等。因此当有新的用户会话时微服务框架需要建立新的服务实例。在这种场景下,是否增加和减少服务实例取决于客户端当前访问的微服务时的会话是否需要特定的服务实例,如果需要特定的服务实例并且目前还不存在该特定的服务实例则新建该特定的服务实例,如果某个特定的服务实例闲置的时间较长则删掉该服务实例。
该设备在获取到调用请求时可以先根据会话代理策略确定该调用请求所请求的微服务适用于哪种场景,若确定适用于第一种场景,则不需要启用会话代理功能,像现有技术那样按照CPU的使用率、内存的使用率等信息来决定是否增加或减少服务实例即可;若确定适用于第二种场景,则需要启用会话代理功能,执行上述步骤S404到S405即可(还可能执行步骤S406和S407)。
在图4所描述的方法中,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
上述详细阐述了本发明实施例的方法,为了便于更好地实施本发明实施例的上述方案,相应地,下面提供了本发明实施例的装置。
请参见图6,图6是本发明实施例提供的一种微服务框架下的服务实例管理设备60的结构示意图,该设备60包括获取单元601、确定单元602和协调单元603,其中,各个单元的详细描述如下。
获取单元601用于获取调用请求,该调用请求为客户端请求调用预设应用的微服务的请求且该调用请求包含目标参数;
确定单元602用于根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例,该目标参数为该多组参数中的一组,该目标参数包含描述该客户端的信息和描述该微服务的信息中至少一项;
协调单元603用于将该调用请求路由到负载均衡器,以使该负载均衡器为该微服务分配目标服务实例,该目标服务实例为该目标参数对应的服务实例。
通过运行上述单元,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
在一种可选的方案中,该设备60还包括创建单元,创建单元用于在该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之后,该协调单元将该调用请求路由到负载均衡器之前,触发创建该目标服务实例,以使该目标服务实例为该客户端提供该微服务。
在又一种可选的方案中,该设备60还包括判断单元,判断单元用于在该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,判断该目标参数是否满足预设条件;若满足,则触发该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例。
在又一种可选的方案中,该设备60还包括配置单元,配置单元用于在该确定单元根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,配置多组参数与多个服务实例之间的对应关系,以使该多组参数中的每组参数至少对应一个服务实例。
在又一种可选的方案中,该设备60还包括监控单元,监控单元用于监控目标会话的会话状态以供后续使用,该目标会话为该客户端访调用该微服务时与该目标服务实例之间的会话,该会话状态包括已登陆、已断开、已连接、已注销和活跃中至少一项。
在又一种可选的方案中,该设备60还包括确认单元和注销单元,其中,确认单元用于根据该目标会话的会话状态确定该目标会话闲置的时间;注销单元用于在该目标会话闲置时间超过预设阈值时注销该目标服务实例。
需要说明的是,各个单元的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图6所描述的设备60中,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
请参见图7,图7是本发明实施例提供的又一种微服务框架下的服务实例管理设备70的结构示意图,该设备70包括处理器701和存储器702,该处理器701和存储器702通过总线相互连接。
存储器702包括但不限于是随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、或便携式只读存储器(CD-ROM),该存储器702用于相关指令及数据。
处理器701可以是一个或多个中央处理器(英文:Central Processing Unit,简称:CPU),在处理器701是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该设备70中的处理器701用于读取该存储器702中存储的程序代码,执行以下操作:
获取调用请求,该调用请求为客户端请求调用预设应用的微服务的请求且该调用请求包含目标参数;根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例,该目标参数为该多组参数中的一组,该目标参数包含描述该客户端的信息和描述该微服务的信息中至少一项;将该调用请求路由到负载均衡器,以使该负载均衡器为该微服务分配目标服务实例,该目标服务实例为该目标参数对应的服务实例。
在一种可选的方案中,该处理器701根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之后,该处理器701将该调用请求路由到负载均衡器之前,该处理器701还用于:触发创建该目标服务实例,以使该目标服务实例为该客户端提供该微服务。
在又一种可选的方案中,该处理器701根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,还用于:判断该目标参数是否满足预设条件;若满足,则执行根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例的操作。
在又一种可选的方案中,该处理器701根据预先配置的多组参数与多个服务实例的对应关系确定该目标参数对应的服务实例之前,还用于:配置多组参数与多个服务实例之间的对应关系,以使该多组参数中的每组参数至少对应一个服务实例。
在又一种可选的方案中,该处理器701还用于:监控目标会话的会话状态以供后续使用,该目标会话为该客户端访调用该微服务时与该目标服务实例之间的会话,该会话状态包括已登陆、已断开、已连接、已注销和活跃中至少一项。
在又一种可选的方案中,该处理器701还用于:根据该目标会话的会话状态确定该目标会话闲置的时间;该设备在该目标会话闲置时间超过预设阈值时注销该目标服务实例。
需要说明的是,各个操作的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图7所描述的设备70中,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
综上所述,通过实施本发明实施例,设备根据调用请求中的目标参数为会话选择对应的服务实例,从而决定是否新增服务实例,而不单纯根据当前CPU的使用率、内存使用率等信息来确定是否新增服务实例,满足了某些会话需要特定的服务实例的场景。另外,根据调用请求中的目标信息还能够监控该调用请求对应会话的会话状态,提升了用户体验。除此之外,本发明实施例还可以在分配服务实例之前根据预先配置的策略确定,是根据CPU的使用率等信息选择是否新增服务实例还是根据目标信息选择是否服务实例,能够兼顾两种不同的场景。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅揭露了本发明中较佳实施例,不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (12)

1.一种微服务框架下的服务实例管理方法,其特征在于,包括:
设备获取调用请求,所述调用请求为客户端请求调用预设应用的微服务的请求且所述调用请求包含目标参数;
所述设备根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例,所述目标参数为所述多组参数中的一组,所述目标参数包含描述所述客户端的信息和描述所述微服务的信息中至少一项;
所述设备将所述调用请求路由到负载均衡器,以使所述负载均衡器为所述微服务分配目标服务实例,所述目标服务实例为所述目标参数对应的服务实例。
2.根据权利要求1所述的方法,其特征在于,所述设备根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例之后,所述设备将所述调用请求路由到负载均衡器之前,还包括:
所述设备触发创建所述目标服务实例,以使所述目标服务实例为所述客户端提供所述微服务。
3.根据权利要求1或2所述的方法,其特征在于,所述设备根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例之前,还包括:
所述设备判断所述目标参数是否满足预设条件;
若满足,则执行所述设备根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例的步骤。
4.根据权利要求1或2所述的方法,其特征在于,所述设备根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例之前,还包括:
所述设备配置多组参数与多个服务实例之间的对应关系,以使所述多组参数中的每组参数至少对应一个服务实例。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述设备监控目标会话的会话状态以供后续使用,所述目标会话为所述客户端调用所述微服务时与所述目标服务实例之间的会话,所述会话状态包括已登陆、已断开、已连接、已注销和活跃中至少一项。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述设备根据所述目标会话的会话状态确定所述目标会话闲置的时间;
所述设备在所述目标会话闲置时间超过预设阈值时注销所述目标服务实例。
7.一种微服务框架下的服务实例管理设备,其特征在于,包括:
获取单元,用于获取调用请求,所述调用请求为客户端请求调用预设应用的微服务的请求且所述调用请求包含目标参数;
确定单元,用于根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例,所述目标参数为所述多组参数中的一组,所述目标参数包含描述所述客户端的信息和描述所述微服务的信息中至少一项;
协调单元,用于将所述调用请求路由到负载均衡器,以使所述负载均衡器为所述微服务分配目标服务实例,所述目标服务实例为所述目标参数对应的服务实例。
8.根据权利要求7所述的设备,其特征在于,还包括:
创建单元,用于在所述确定单元根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例之后,所述协调单元将所述调用请求路由到负载均衡器之前,触发创建所述目标服务实例,以使所述目标服务实例为所述客户端提供所述微服务。
9.根据权利要求7或8所述的设备,其特征在于,还包括:
判断单元,用于在所述确定单元根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例之前,判断所述目标参数是否满足预设条件;若满足,则触发所述确定单元根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例。
10.根据权利要求7或8所述的设备,其特征在于,还包括:
配置单元,用于在所述确定单元根据预先配置的多组参数与多个服务实例的对应关系确定所述目标参数对应的服务实例之前,配置多组参数与多个服务实例之间的对应关系,以使所述多组参数中的每组参数至少对应一个服务实例。
11.根据权利要求7或8所述的设备,其特征在于,还包括:
监控单元,用于监控目标会话的会话状态以供后续使用,所述目标会话为所述客户端调用所述微服务时与所述目标服务实例之间的会话,所述会话状态包括已登陆、已断开、已连接、已注销和活跃中至少一项。
12.根据权利要求11所述的设备,其特征在于,还包括:
确认单元,用于根据所述目标会话的会话状态确定所述目标会话闲置的时间;
注销单元,用于在所述目标会话闲置时间超过预设阈值时注销所述目标服务实例。
CN201611184959.0A 2016-12-20 2016-12-20 一种微服务框架下的基于会话的服务实例管理方法及设备 Active CN108206852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611184959.0A CN108206852B (zh) 2016-12-20 2016-12-20 一种微服务框架下的基于会话的服务实例管理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611184959.0A CN108206852B (zh) 2016-12-20 2016-12-20 一种微服务框架下的基于会话的服务实例管理方法及设备

Publications (2)

Publication Number Publication Date
CN108206852A CN108206852A (zh) 2018-06-26
CN108206852B true CN108206852B (zh) 2020-12-22

Family

ID=62603977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611184959.0A Active CN108206852B (zh) 2016-12-20 2016-12-20 一种微服务框架下的基于会话的服务实例管理方法及设备

Country Status (1)

Country Link
CN (1) CN108206852B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661827B (zh) * 2018-06-28 2021-10-08 中兴通讯股份有限公司 弹性伸缩方法、装置、设备以及计算机可读存储介质
CN110955501B (zh) * 2018-09-27 2024-06-14 北京京东尚科信息技术有限公司 服务请求处理方法、装置、电子设备及可读介质
CN110971623B (zh) * 2018-09-28 2023-02-17 中兴通讯股份有限公司 微服务实例弹性伸缩方法、装置以及存储介质
CN111062797A (zh) * 2018-10-16 2020-04-24 重庆小雨点小额贷款有限公司 微服务生成方法、装置、服务器及存储介质
CN111147534B (zh) * 2018-11-05 2022-12-16 中兴通讯股份有限公司 一种微服务架构下的通信方法及系统
CN109683988B (zh) * 2018-12-25 2019-10-18 南方电网数字电网研究院有限公司 微服务启动方法、装置、计算机设备和存储介质
CN109756372B (zh) * 2018-12-29 2022-03-04 亚信科技(中国)有限公司 一种电信计费系统的弹性伸缩方法及装置
CN111510393B (zh) * 2019-01-30 2023-10-31 阿里巴巴集团控股有限公司 流量调度方法、装置及系统
CN109948356A (zh) * 2019-03-25 2019-06-28 江苏电力信息技术有限公司 一种基于微服务架构下服务调用权限控制方法
CN110062043B (zh) * 2019-04-16 2021-10-29 杭州朗和科技有限公司 服务治理方法、服务治理装置、存储介质及电子设备
CN110401696B (zh) 2019-06-18 2020-11-06 华为技术有限公司 一种去中心化处理的方法、通信代理、主机以及存储介质
CN110381058B (zh) * 2019-07-18 2023-05-16 深圳前海微众银行股份有限公司 基于全双工通信协议WebSocket的请求传输方法及装置
CN110351146A (zh) * 2019-07-19 2019-10-18 深圳市网心科技有限公司 一种服务端实例确定方法、系统、客户端及存储介质
CN110324209B (zh) * 2019-08-02 2020-10-09 泰康保险集团股份有限公司 微服务系统监控方法、装置、电子设备及计算机可读介质
CN110753082B (zh) * 2019-09-06 2022-12-16 深圳平安通信科技有限公司 服务调用方法及终端设备
CN110837424A (zh) * 2019-10-15 2020-02-25 东软集团股份有限公司 服务实例确定方法、装置、存储介质及电子设备
CN110968409A (zh) * 2019-11-28 2020-04-07 广州欢聊网络科技有限公司 一种数据处理方法及装置
CN111176761B (zh) * 2019-12-23 2023-07-18 中国联合网络通信集团有限公司 微服务调用方法和装置
CN111092954B (zh) * 2019-12-24 2022-05-17 北京首信科技股份有限公司 一种生成微服务的方法和装置及电子设备
CN111245925B (zh) * 2020-01-09 2021-08-24 北京理工大学 一种用于现代分布式微服务架构的通信方法与系统
CN111371684B (zh) * 2020-03-02 2022-08-09 中国邮政储蓄银行股份有限公司 路由处理方法及装置、双活数据中心系统
CN113747506A (zh) * 2020-05-28 2021-12-03 华为技术有限公司 一种资源调度方法、装置和网络系统
CN111770171B (zh) * 2020-06-29 2023-05-02 浪潮通用软件有限公司 一种微服务模式下多页面功能会话周期状态管理方法
CN112035254A (zh) * 2020-08-28 2020-12-04 北京达佳互联信息技术有限公司 负载均衡方法及装置
CN112235364A (zh) * 2020-09-29 2021-01-15 石家庄市善理通益科技有限公司 一种对讲服务集群的业务级联拓展方法及其执行单元
CN112256351B (zh) * 2020-10-26 2023-11-17 卫宁健康科技集团股份有限公司 Feign组件的实现方法、微服务调用方法及装置
CN112738339B (zh) * 2020-12-29 2022-09-23 杭州东信北邮信息技术有限公司 一种电信域微服务架构下的服务实例无损扩缩容方法
CN113285992A (zh) * 2021-05-14 2021-08-20 中国邮政储蓄银行股份有限公司 注册中心系统以及微服务系统
CN113037571B (zh) * 2021-05-20 2021-08-24 睿至科技集团有限公司 一种大规模微服务架构及其管理方法
CN114827274A (zh) * 2022-04-15 2022-07-29 支付宝(杭州)信息技术有限公司 请求处理方法以及装置
CN117768394A (zh) * 2022-09-16 2024-03-26 中兴通讯股份有限公司 一种负载均衡处理方法、装置、存储介质及电子装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267441A (zh) * 2008-04-23 2008-09-17 北京航空航天大学 一种c/s和b/s混合架构模式实现方法和平台
CN101453404A (zh) * 2007-11-30 2009-06-10 华为技术有限公司 一种实现负载均衡的方法及装置
CN105631196A (zh) * 2015-12-22 2016-06-01 中国科学院软件研究所 一种面向微服务架构的容器级弹性资源供给系统及方法
CN106230987A (zh) * 2016-09-21 2016-12-14 南方电网科学研究院有限责任公司 一种基于电力PaaS云平台的信息集成系统及方法
CN106227605A (zh) * 2016-07-26 2016-12-14 北京北森云计算股份有限公司 一种多语言云编译的动态微服务扩容方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363301B2 (en) * 2014-10-21 2016-06-07 Twilio, Inc. System and method for providing a micro-services communication platform

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453404A (zh) * 2007-11-30 2009-06-10 华为技术有限公司 一种实现负载均衡的方法及装置
CN101267441A (zh) * 2008-04-23 2008-09-17 北京航空航天大学 一种c/s和b/s混合架构模式实现方法和平台
CN105631196A (zh) * 2015-12-22 2016-06-01 中国科学院软件研究所 一种面向微服务架构的容器级弹性资源供给系统及方法
CN106227605A (zh) * 2016-07-26 2016-12-14 北京北森云计算股份有限公司 一种多语言云编译的动态微服务扩容方法及装置
CN106230987A (zh) * 2016-09-21 2016-12-14 南方电网科学研究院有限责任公司 一种基于电力PaaS云平台的信息集成系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《SOAP Processing Performance》;Joe M. Tekli,Ernesto Damiani,Senior;《IEEE TRANSACTIONS ON SERVICES COMPUTING》;20110224;第5卷(第3期);全文 *
《面向服务的工作流访问控制模型研究》;徐伟,魏峻,李京;《计算机研究与发展》;20050816;第42卷(第8期);全文 *

Also Published As

Publication number Publication date
CN108206852A (zh) 2018-06-26

Similar Documents

Publication Publication Date Title
CN108206852B (zh) 一种微服务框架下的基于会话的服务实例管理方法及设备
US11706154B2 (en) Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
KR101507919B1 (ko) 가상 데스크탑 서비스를 위한 방법 및 장치
US8904005B2 (en) Indentifying service dependencies in a cloud deployment
US8612566B2 (en) Systems and methods for management of virtual appliances in cloud-based network
CN105207798B (zh) 软件定义网络中的业务编排方法及装置
US20130254261A1 (en) System and Method of Managing Servers for Streaming Desktop Applications
US10924542B2 (en) Content delivery system
CN110990047A (zh) 用于多个微服务架构的融合方法及装置
CN111858054A (zh) 一种异构环境下基于边缘计算的资源调度系统及方法
CN105764097A (zh) 资源分配方法及装置
CN110515728B (zh) 服务器调度方法、装置、电子设备及机器可读存储介质
CN116800825A (zh) 一种基于微服务拆分的调用方法、装置、设备及介质
KR20110133409A (ko) 개인 가상 인스턴스를 이용한 적응형 모바일 클라우드 시스템 및 그 구성 방법
JP5735899B2 (ja) サービス提供システム、ファイル更新方法、および分散管理装置
CN108540546B (zh) 网络节点入网控制方法、电子设备、网络系统和存储介质
JP2012022555A (ja) サーバ構成管理システム
CN108696550B (zh) 快速构建和复制云的系统和方法
US11010823B2 (en) Connector leasing for long-running software operations
CN110365720B (zh) 一种资源请求处理的方法、装置及系统
EP2553577A1 (en) Distributed system
CN112565158B (zh) 数据访问方法、装置、系统、电子设备及计算机可读介质
CN114217917A (zh) 一种主机调度方法、装置、设备及存储介质
US10225135B2 (en) Provision of management information and requests among management servers within a computing network
CN115562775A (zh) 桌面管理方法、装置、平台、计算机设备和存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20200417

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou

Applicant before: Huawei Technologies Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant