一种服务管理方法和装置的制造方法

文档序号:10626921阅读:257来源:国知局
一种服务管理方法和装置的制造方法
【专利摘要】本发明提供一种服务管理方法和装置,其中方法包括:检测应用使用远程的目标服务的热度;在所述热度达到预设第一阈值时,将所述目标服务加载到应用本地。本发明提高了分布式系统的响应效率以及自适应能力。
【专利说明】
_种服务管理方法和装置
技术领域
[0001] 本发明涉及网络技术,特别涉及一种服务管理方法和装置。
【背景技术】
[0002] 分布式系统是由多个互相连接的处理资源组成的计算机系统,它们在整个系统的 控制下协同执行同一个任务。任务的执行可能涉及到多个应用系统中不同服务单元,这些 小的服务单元之间大部分通过远程调用来完成信息的交互,而远程调用将产生很大的时间 消耗,在分布式系统发展到一定规模,这部分消耗将严重降低系统响应效率。在相关技术 中,为了节省远程调用消耗的时间,可以通过应用分析将具有服务依赖关系的几个应用系 统进行物理集中部署,但是这种方式的灵活性和适应力较差,应用变更时还要重新分析和 重新部署,既耗费成本又影响业务进行。

【发明内容】

[0003] 有鉴于此,本发明提供一种服务管理方法和装置,以提高分布式系统的响应效率 以及自适应能力。
[0004] 具体地,本发明是通过如下技术方案实现的:
[0005] 第一方面,提供一种服务管理方法,包括:
[0006] 检测应用使用远程的目标服务的热度;
[0007] 在所述热度达到预设第一阈值时,将所述目标服务加载到应用本地。
[0008] 第二方面,提供一种服务管理装置,包括:
[0009] 热度检测模块,用于检测应用使用远程的目标服务的热度;
[0010] 迀移控制模块,用于在所述热度检测模块检测到所述热度达到预设第一阈值时, 将所述目标服务加载到应用本地。
[0011] 本申请的服务管理方法和装置,通过在服务的热度达到预设阈值时,将服务下载 到应用本地,相对于远程调用,提高了分布式系统的响应效率以及自适应能力。
【附图说明】
[0012] 图1是本发明实施例提供的分布式系统架构图;
[0013] 图2是本发明实施例提供的服务管理方法的流程图;
[0014] 图3是本发明实施例提供的一种服务管理装置的结构图;
[0015] 图4是本发明实施例提供的另一种服务管理装置的结构图。
【具体实施方式】
[0016] 图1示例了一种可选的分布式系统架构,在该系统中,包括多个处理资源,该处理 资源例如是数据存储服务器、JAVA虚拟机等。各种应用系统服务和数据分布于上述的各个 处理资源中。如下简单说明本申请实施例的服务管理方法涉及到的几个概念:
[0017] 服务和应用:以用户在银行开户为例(需要说明的是,该应用仅是示例),假设整 个开户过程需要三个步骤:1、核对用户身份证信息;2、核对是否存在不良信用记录;3、"设 置新开账户信息",那么,可以将"核对身份证信息"、"核对信用记录"、"设置新账户信息"分 别称为一个"服务";"核对身份证信息"服务可能由公安的"应用"系统提供,"核对信用记 录"和"设置新账户信息"服务由银行的"应用"系统提供,那么用户开户请求可以简单认为 是由银行的应用系统负责接入后远程调用公安应用系统提供的服务进行第一步验证,然后 本地调用第二步以及第三步来最终完成整个开户过程。在本方案中,我们可以简单理解"应 用"是作为"服务"的一个业务和部署的划分方式,"应用"可给用户或者其他"应用"提供一 个或者多个"服务",在用户请求的执行过程中,应用系统间的服务依赖在本实施例中称为 "应用使用服务"或者"应用调用服务"。
[0018] 服务访问数据源:服务的逻辑执行过程中,一般会涉及到数据的访问;比如,在上 述例子中查验身份证信息,假设会使用到一个身份证信息库,查看该库中是否存储有待核 实的身份证信息,这就涉及到"核对身份证信息"服务要访问数据源"身份证信息库",数据 正常访问,该服务才能正常执行。如图1所示,数据源可以来自数据库Data Source、文件系 统 File System、高速缓存 Cache。
[0019] 本地服务和远程服务:本地和远程我们可以理解为物理上的,即应用调用的服务 不在该应用部署的资源上面,我们认为该服务为远程服务,否则为本地服务;假设上述例子 中的银行的应用系统是部署在处理资源A上,而公安的应用系统部署在处理资源B上,那么 "核对身份证信息"服务对于银行应用系统将是一个远程服务,而另外两个服务由于属于银 行应用系统,所以属于本地服务。也就是说,银行应用系统在调用"设置新账户信息"服务 时,该服务的逻辑部署在处理资源A上,直接在该资源A调用执行即可,这就是本地服务。而 调用的"核对身份证信息"服务所属的公安应用系统部署在另一个处理资源B上,那么银行 应用系统要通过网络向处理资源B上的应用发送服务调用请求,并等待"核对身份证信息" 服务执行结果返回,这就是远程服务调用。
[0020] 很显然,远程服务调用将带来网络传输及等待的时间消耗,尤其在应用频繁的调 用远程服务时,将严重影响该应用的执行效率;本申请实施例的服务管理方法将用于提高 分布式系统的响应效率,降低服务调用的时间消耗。并且,传统方式中,需要人工分析关键 业务路径上的服务以及依赖的服务,将这些服务所在应用系统物理就近部署,这个对业务 分析人员要求较高,并且提高了整个系统的部署、运维复杂度;当关键业务路径变更或者依 赖关系变更时需要重新部署,将影响业务稳定性,也非常不灵活,适应力较差。而本实施例 的服务管理方法还将提高分布式系统的自适应能力,灵活适应应用对服务的调用,此外,相 较于物理就近部署,本实施例将迀移的粒度降低到了"服务",这将有利于设备成本的降低。
[0021] 如图1所示,本申请实施例在分布式系统中增加了服务管理装置,该装置包括:热 度检测模块和迀移控制模块。其中,该服务管理装置可以执行图2所示的服务管理方法的 流程,包括:
[0022] 201、检测应用使用远程的目标服务的热度;
[0023] 例如,本步骤中可以是由热度检测模块检测应用使用远程的目标服务的热度。需 要说明的是,服务管理装置相当于一个全局的管理装置,实际实施中,其可以统计并记录很 多信息,如下的表1示例性的示出一些可选的记录信息:
[0024] 表1应用调用服务信息
[0025]
[0027] 表2服务信息
[0028]
[0029] 对于上述表1中的信息解释如下:应用和服务在前面已经说明过,不再详述,一个 业务的执行可能会依赖多个服务提供协助。而本实施例的服务管理方法涉及到服务的迀 移,并不是任何一个服务都可以迀移的。
[0030] 服务的迀移:结合图1的示例,处理资源A上的应用Y1要使用到服务S3,而服务S3 的逻辑是存储在处理资源B,如果应用Y1调用处理资源B上的服务S3,则属于服务的远程 调用。可以将服务S3从处理资源B迀移到处理资源A,这里的迀移指的是服务的逻辑的迀 移,如上面提到过的,服务的执行可能涉及到访问数据源,那么可以认为一个完整服务的执 行包括"逻辑"和"数据"两部分,而本实施例的服务迀移指的是逻辑的迀移,迀移的是目标 服务的一段逻辑副本,即将服务S3的逻辑也同时存储在处理资源A上,使得处理资源A上 也存储有一份服务S3的逻辑,这样就可以在处理资源A本地执行服务S3的逻辑流程。此 外,需要说明的是,服务S3归属于Y2,只是Y1在使用,即使产生迀移(迀移是一次服务逻 辑的拷贝过程,迀移过来的是服务的逻辑副本),服务S3的归属是不变的,仍然属于Y2。
[0031] 可迀移服务:正是由于如上述提到的,服务的迀移指的仅仅是逻辑的迀移,即该服 务限定的处理流程的逻辑,因此,如果服务迀移到某个应用(迀移到该应用对应的处理资 源上),需要该应用能够访问服务正常执行所依赖的资源。例如,服务S5正常执行需要访问 某个数据源(MySQL和Memcache),但是如果应用Y1是不能访问该数据源,那么服务S5迀移 到该应用Y1后,将导致服务S5不能正常执行,则该服务S5对于应用Y1来说就是不可迀移 的。
[0032] 当然,如果一个服务对于应用来说,是可迀移服务,不仅需要应用能够访问服务需 要的数据源,还可以限制其他条件。比如,该服务是有清晰的逻辑界限的独立服务,与其他 服务不存在复杂的相互依赖关系,而且该服务完整和小巧,便于迀移。还可以要求该服务是 无状态服务,不存在相互依赖的状态,这些都是为了使得服务是一个方便迀移的服务。此 外,还可以考虑,当将服务迀移到应用后,服务的访问性能是否会受到影响,比如,在迀移前 服务在访问数据源时效率很快,而迀移后由于各种原因导致服务执行效率变慢不符合应用 的业务要求,则可以认为该服务是不适合迀移的。此外,需要说明的是,可迀移服务通常对 于应用来说都是远程服务,本地服务是不需要迀移的。
[0033] 分布式系统可以包括很多应用,在本步骤中,服务管理装置可以从全局上管理哪 些服务对于哪些应用是可迀移的,管理各个应用能够访问的数据源,并且将数据源名称统 一,以方便确定应用是否包含服务需要的数据源。此外,该服务管理装置还可以统计应用对 可迀移服务的使用热度、应用是否已经加载该服务、以及服务是否已经更新等信息。
[0034] 应用对可迀移服务的使用热度:该"热度"主要用于表示应用对服务的使用频率, 比如,在一小时内应用调用了该服务50次;当然,具体采用何种度量方式表示该热度,可 以根据实际情况灵活设定。本实施例对于热度可以设定第一阈值和第二阈值,第一阈值高 于第二阈值,第一阈值主要用于当热度值达到或高于该阈值时表示应用使用服务已经很频 繁,达到了影响应用执行效率的容忍界限,可以执行服务迀移,即应用加载该服务;第二阈 值主要用于当热度值达到或低于该阈值时表示应用当前很少使用该服务,可以执行服务卸 载,以节省处理资源。
[0035] 进一步的,为了避免频繁的加载和卸载,上述的第一阈值和第二阈值之间可以设 定一个间隙值,比如,第一阈值是1〇〇次,第二阈值是20次,那么这两个阈值之间就间隔了 80次的间隙值。这样做可以不会使得过于频繁的加载或者卸载服务,造成系统的不稳定。
[0036] 应用加载服务:应用加载服务指的是已经将远程的服务迀移到了应用本地,比如 图1中示例的,将处理资源B中的服务S3迀移到应用Y1所在的处理资源A,则表示应用Y1 已经加载该服务S3。
[0037] 服务更新:分布式系统中的服务的逻辑可能会产生,比如可能会有不同版本的服 务;本实施例的服务管理装置可以监测服务是否更新;进一步的,为了减少服务管理装置 的资源消耗,可以仅仅监测已经被应用加载的远程服务,因为,监测服务更新的目的是,如 果应用加载的服务已经更新,那么应用当前的服务就已经是旧的服务,不能使用了,需要及 时卸载旧服务重新加载新服务,所以,服务管理装置可以只监测应用已加载的服务的状态。
[0038] 具体实施中,可以在服务管理装置中增加一个状态监控模块,来监测应用加载的 目标服务是否发生更新。参见图3所示,此时的服务管理装置可以包括:热度检测模块31、 迀移控制模块32和状态监控模块33。
[0039] 本步骤中,服务管理装置的热度检测模块将检测应用使用远程的目标服务的热 度,具体可以是监测各个应用分别使用某个远程服务的热度,并根据检测的热度继续执行 202〇
[0040] 202、在所述热度达到预设第一阈值时,将所述目标服务加载到应用本地。
[0041] 例如,本步骤中,在热度检测模块检测到应用使用目标服务的热度达到预设第一 阈值时,可以由迀移控制模块将目标服务加载到应用本地。可选的,假设处理资源A上的应 用Y1使用处理资源B上的服务S3的热度已经达到第一阈值,则可以由迀移控制模块将服 务S3由处理资源B迀移到处理资源A,并且,该迀移控制模块可以是位于处理资源A上,可 以是一个专用于加载或卸载远程服务的模块,也就是说,在处理资源A上可以设置两个模 块,一个是专用于管理本地服务的模块,另一个即专用于加载或卸载远程服务的模块(比 如是JAVA虚拟机JVM上的远程class loader),这样更方便于对远程服务的管理。当需要 加载或卸载远程服务时,只需要由热度检测模块通知迀移控制模块即可。
[0042] 另外,本实施例的服务的加载与卸载,可以是与应用异步进行的,比如,当前应用 正在远程调用某个服务的过程中,但是已经检测到应用使用服务的热度达到了第一阈值, 则迀移控制模块执行对服务的迀移,而该迀移不对本次应用的执行造成影响,本次应用仍 然进行远程服务调用模式,等下次应用再执行时才使用加载到本地的服务。
[0043] 进一步的,如上面已经提到的,在将目标服务加载到应用本地之后,热度检测模块 仍然会继续检测应用对目标服务的热度,如果检测到热度达到第二阈值,即应用后续对目 标服务使用频率较低,则迀移控制模块可以将目标服务从应用本地卸载,以节省处理资源。
[0044] 进一步的,在将目标服务加载到应用本地之后,服务管理装置的状态监控模块在 监测到目标服务发生更新后,可以通知迀移控制模块,由迀移控制模块卸载应用本地的目 标服务,并可以加载更新后的目标服务。
[0045] 而当将远程的服务加载到应用本地之后,该服务管理装置还可以包括服务调用模 块34,如图4所示,服务调用模块34用于执行应用时,判断应用本地是否存储有已加载的目 标服务;若判断结果为本地存储有目标服务,则优先使用本地的目标服务执行应用,减少远 程调用带来的时间消耗;如果判断结果为本地未存储目标服务,则采用普通的远程调用。
[0046] 由上述的本实施例可以看到,通过在分布式系统中增加了服务管理装置,该装置 可以执行上述实施例中的服务管理方法,当应用使用远程的目标服务的热度达到一定的频 繁阈值时,就将该远程服务迀移到应用本地,这种方式相对于传统方式来说,是由服务管理 装置自动判断某个服务的使用频率,并进行自动的服务迀移,节省了人工分析部署的成本, 还提高了服务部署的效率,该自动服务判断和迀移的方式,灵活性更好,快速适应实际应用 执行情况。通过将远程服务迀移到应用本地,也省去了远程服务调用的时间消耗,提高了分 布式系统的响应效率。此外,本实施例的方法是将服务作为分析的粒度,相对于传统的应用 粒度的集中部署,迀移的粒度更加精准,也进一步提高了处理效率。
[0047] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1. 一种服务管理方法,其特征在于,包括: 检测应用使用远程的目标服务的热度; 在所述热度达到预设第一阈值时,将所述目标服务加载到应用本地。2. 根据权利要求1所述的方法,其特征在于,在所述将目标服务加载到应用本地之前, 还包括: 确定所述目标服务符合可迀移条件,所述可迀移条件包括:所述应用包括所述目标服 务需要的数据源,且所述目标服务为独立服务。3. 根据权利要求1所述的方法,其特征在于,在将所述目标服务加载到应用本地之后, 还包括: 在所述热度达到预设第二阈值时,将所述目标服务从应用本地卸载。4. 根据权利要求1所述的方法,其特征在于,在将所述目标服务加载到应用本地之后, 还包括: 在确定所述目标服务发生更新时,卸载应用本地的所述目标服务。5. 根据权利要求1所述的方法,其特征在于,在将所述目标服务加载到应用本地之后, 还包括: 执行应用时,判断本地是否存储有已加载的所述目标服务; 若判断结果为本地存储有目标服务,则使用所述目标服务执行应用。6. -种服务管理装置,其特征在于,包括: 热度检测模块,用于检测应用使用远程的目标服务的热度; 迀移控制模块,用于在所述热度检测模块检测到所述热度达到预设第一阈值时,将所 述目标服务加载到应用本地。7. 根据权利要求6所述的装置,其特征在于, 所述热度检测模块,还用于确定所述目标服务符合可迀移条件,所述可迀移条件包括: 所述应用包括目标服务需要的数据源,且目标服务为独立服务。8. 根据权利要求6所述的装置,其特征在于, 所述迀移控制模块,还用于在所述热度检测模块检测到所述热度达到预设第二阈值 时,将所述目标服务从应用本地卸载。9. 根据权利要求6所述的装置,其特征在于,还包括:状态监控模块; 所述状态监控模块,还用于监测到所述目标服务发生更新; 所述迀移控制模块,还用于在所述状态监控模块确定所述目标服务发生更新时,卸载 应用本地的所述目标服务。10. 根据权利要求6所述的装置,其特征在于,还包括: 服务调用模块,用于执行应用时,判断本地是否存储有已加载的所述目标服务;若判断 结果为本地存储有目标服务,则使用所述目标服务执行应用。
【文档编号】H04L29/08GK105991687SQ201510055949
【公开日】2016年10月5日
【申请日】2015年2月3日
【发明人】蔡明
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1