面向多租户的弹性多进程服务处理方法

文档序号:6386487阅读:214来源:国知局
专利名称:面向多租户的弹性多进程服务处理方法
技术领域
本发明涉及一种进程管理方法,尤其涉及一种面向多租户的弹性多进程服务处理方法,属于计算机管理技术领域。
背景技术
计算机运算是以进程为单位运行的。进程是程序在计算机上的一次执行活动,每个进程按照已编写好的程序顺序一步一步向下执行。原则上,一个CPU只能分配给一个进程,即同一时刻只能有一个进程运行在一个CPU上。如果程序逻辑过于复杂,则运算时间需要很久,并且服务器资源长久不能释放,程序效率很低。用户发出任务请求后,需要等待很久才能收到响应,因此用户的体验很差。随着计算机技术的突飞猛进,服务器集群的出现,CPU运算能力的提高,多核CPU、服务器内存等硬件资源已经不再是瓶颈。于是,多进程并发处理的实现变成了可能。如果某业务逻辑程序可以分为多个进程并发执行的话,则原来的程序运行时间就可以分成多份并行处理,可以更快地执行完毕以及更充分地利用服务器资源。利用多进程并发处理技术,将大规模复杂业务分成多份子业务,交由不同的进程处理,则原来需要等整个服务任务全部完成才可以结束,现在只需要最大的子任务结束即整个任务完成。这样就可以使用户可以很快得到系统响应,优化用户的体验。例如需要处理100万份名单,如果是单进程处理则假设需要执行M秒的时间,如果使用多进程处理的话,例如10个进程平均处理,则只需执行M/10秒的时间就可以处理完成。另外,如果单纯从服务器角度去提高性能的话,高级服务器价格极高,并且达到数倍甚至数十倍的效率是很难的。而利用多进程并发处理技术则可以使用普通的服务器,在效率上根据业务不同,使用不同的并发方案,有时甚至可以使性能提高上百倍。但是,现有的多进程并发处理技术在进程管理方面仍然存在不足之处,例如在多租户,即在多用户的环境下共用相同的系统或程序组件,很难确保各用户之间数据的隔离性。

发明内容
本发明所要解决的技术问题在于提供一种面向多租户的弹性多进程服务处理方法。为实现上述的发明目的,本发明采用下述的技术方案一种面向多租户的弹性多进程服务处理方法,包括如下步骤将计算机系统的内部进程分为系统进程和任务执行进程;所述系统进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,其中所述宿主进程负责对所述任务执行进程的管理,所述宿主检测进程负责定时检测所述宿主进程是否存活,如若发现所述宿主进程死掉则重新启动一个宿主进程;所述任务执行进程检测进程负责检测所述任务执行进程是否存活,如若发现有任务执行进程死掉则重新启动一个该类型的任务执行进程。其中较优地,所述宿主检测进程和所述任务执行检测进程互相执行心跳检测机制。其中较优地,针对多租户的需求,同时运行多种任务执行进程。其中较优地,实际服务任务处理代码在执行前,将代码文件注册入计算机系统的XML配置文件中,管理页面启动进程,计算机系统根据管理页面传递参数,读取配置信息,找到对应的代码文件,将所述代码文件加载入内存中并按规则运行程序,创建所述任务执行进程。其中较优地,服务请求先提交到按照任务执行进程分类的任务缓存队列中,再由相应的任务执行进程从任务缓存队列中取出处理。其中较优地,根据服务请求数量及当前处理服务请求的能力,弹性增减任务执行进程的数量。其中较优地,实时监控内存、CPU、网络的使用情况,进行综合分析;如果分析结论是服务器资源闲置,则启动其它任务执行进程,并将这个任务执行进程调度至内存;如果分析结论是服务器资源超过负载,则将部分任务执行进程迁移到另外一台服务器。其中较优地,前台页面对所述任务执行进程进行状态监控;用户提交服务任务时,生成唯一的任务标识号,并以所述任务标识号作为键值,将用户提交的任务参数存入数据库中,再将所述任务标识号放入任务执行进程;所述任务执行进程从所述数据库中读取数据,进而执行服务任务。本发明所提供的弹性多进程服务处理方法可以在多租户环境下,有效确保各用户之间数据的隔离性。租户之间不会互相看到对方的数据。通过数据隔离,保证了多租户数据的安全性,使多租户功能得以实现。另一方面,本发明可以弹性增减任务执行进程的数量,合理控制各种服务处理中对资源的使用情况,大大节省了任务的执行时间。


图1是应用本发明所提供的弹性多进程服务处理方法的多租户环境示意图。
具体实施例方式如图1所示,本发明所提供的弹性多进程服务处理方法应用在多租户环境中。为了在多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性,本发明将任务执行进程与系统进程分离,同一套应用本弹性多进程服务处理方法的计算机系统(简称多进程服务处理系统)可以同时运行多种任务执行进程,并使其各司其职,互不干扰,保证数据隔离性。在本发明中,将计算机系统的内部进程分为系统进程和任务执行进程。系统进程包括宿主进程、宿主检测进程、任务执行进程检测进程二个进程,其中宿主进程负责对任务执行进程的管理,例如添加、删除、休眠、唤醒等功能。宿主检测进程负责定时检测宿主进程是否存活,如若发现宿主进程死掉则重新启动一个宿主进程,保证宿主进程在系统执行过程中一直保持存活状态。任务执行进程检测进程负责检测任务执行进程是否存活,如若发现有任务执行进程死掉则重新启动一个该类型的任务执行进程。其中宿主检测进程和任务执行检测进程互相执行心跳检测机制,进而确保三个系统进程互相监督,不会出现某进程死掉的情况。上述心跳检测机制是这样的系统进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,相互检测,当发现某一系统进程异常,则杀死原来的系统进程,重新启动一个相同类型的系统进程,并交由计算机系统接管,进而保证计算机系统中三个系统进程是存活的。心跳检测机制的实现方法是定时Ping,采用定时Pi ng某服务器来检测服务器是否正常运行。Ping是向远程主机发送一个I CMP包,如果给定时间内没有接收到回应就认为是超时,即服务器死机;如果收到回应则分析接收到的ICMP包,得到TTL、类型以及用时,进而判断服务器的健康状态。为了保证各个任务执行进程之间的独立性,本发明采用注册式进程管理方式,SP·实际服务任务处理代码与多进程服务处理系统分离,代码执行前将其代码文件注册入计算机系统的XML配置文件中,管理页面启动进程,计算机系统根据管理页面传递参数,自动读取配置信息,找到对应代码文件,将其加载入内存中并按规则运行程序,创建任务执行进程。任务执行进程可以循环重复使用,以便减小创建进程的开销。在上述注册式进程管理方式中,一套计算机系统可以根据配置运行多种不同的服务处理程序,进而可以充分利用服务器资源,使不同程序共用一台服务器。在本发明的一个实施例中,该注册式进程管理方式是通过在线管理系统实现的。该在线管理系统是一个中心服务器,可以管理不同服务器的资源,包括资源分配、进程调度等,按照服务器负载分配服务器任务,负载低的服务器多分配任务,达到不同服务器可以由多程序共同使用。下面显示了用于实现注册式进程管理方式的部分程序伪码。
I/注册式进程管理方式 $ server id= pcntl_fork (); if (!serverid== -1) { echo "在服务器{server}上创建进程失败"; exit ( I );
}
if (! Iserverid) {
Isubid= pcntl—fork (); if (! $subid) {
$uid = posix_getpid ();echo 〃subid :〃 . $uid;
权利要求
1.一种面向多租户的弹性多进程服务处理方法,其特征在于将计算机系统的内部进程分为系统进程和任务执行进程;所述系统进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,其中所述宿主进程负责对所述任务执行进程的管理,所述宿主检测进程负责定时检测所述宿主进程是否存活,如若发现所述宿主进程死掉则重新启动一个宿主进程;所述任务执行进程检测进程负责检测所述任务执行进程是否存活,如若发现有任务执行进程死掉则重新启动一个该类型的任务执行进程。
2.如权利要求1所述的弹性多进程服务处理方法,其特征在于所述宿主检测进程和所述任务执行检测进程互相执行心跳检测机制。
3.如权利要求1所述的弹性多进程服务处理方法,其特征在于针对多租户的需求,同时运行多种任务执行进程。
4.如权利要求3所述的弹性多进程服务处理方法,其特征在于实际服务任务处理代码在执行前,将代码文件注册入计算机系统的XML配置文件中, 管理页面启动进程,计算机系统根据管理页面传递参数,读取配置信息,找到对应的代码文件,将所述代码文件加载入内存中并按规则运行程序,创建所述任务执行进程。
5.如权利要求3所述的弹性多进程服务处理方法,其特征在于服务请求先提交到按照任务执行进程分类的任务缓存队列中,再由相应的任务执行进程从任务缓存队列中取出处理。
6.如权利要求3所述的弹性多进程服务处理方法,其特征在于根据服务请求数量及当前处理服务请求的能力,弹性增减任务执行进程的数量。
7.如权利要求6所述的弹性多进程服务处理方法,其特征在于实时监控内存、CPU、网络的使用情况,进行综合分析;如果分析结论是服务器资源闲置,则启动其它任务执行进程,并将这个任务执行进程调度至内存;如果分析结论是服务器资源超过负载,则将部分任务执行进程迁移到另外一台服务器。
8.如权利要求1所述的弹性多进程服务处理方法,其特征在于前台页面对所述任务执行进程进行状态监控;用户提交服务任务时,生成唯一的任务标识号,并以所述任务标识号作为键值,将用户提交的任务参数存入数据库中,再将所述任务标识号放入任务执行进程;所述任务执行进程从所述数据库中读取数据,进而执行服务任务。
全文摘要
本发明公开了一种面向多租户的弹性多进程服务处理方法,包括如下步骤将计算机系统的内部进程分为系统进程和任务执行进程;系统进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,其中宿主进程负责对任务执行进程的管理,宿主检测进程负责定时检测宿主进程是否存活;任务执行进程检测进程负责检测任务执行进程是否存活。本发明可以在多租户环境下,有效确保各用户之间数据的隔离性。另一方面,本发明可以弹性增减任务执行进程的数量,合理控制各种服务处理中对资源的使用情况,大大节省了任务的执行时间。
文档编号G06F9/38GK102999317SQ201210592900
公开日2013年3月27日 申请日期2012年12月30日 优先权日2012年12月30日
发明者吴为民, 尹立庆, 董高志, 肖士良 申请人:北京讯鸟软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1