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

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

Info

Publication number
CN102999317B
CN102999317B CN201210592900.0A CN201210592900A CN102999317B CN 102999317 B CN102999317 B CN 102999317B CN 201210592900 A CN201210592900 A CN 201210592900A CN 102999317 B CN102999317 B CN 102999317B
Authority
CN
China
Prior art keywords
tasks carrying
task
host
service processing
carrying process
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
CN201210592900.0A
Other languages
English (en)
Other versions
CN102999317A (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.)
Beijing Infobird Software Co Ltd
Original Assignee
Beijing Infobird Software 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 Infobird Software Co Ltd filed Critical Beijing Infobird Software Co Ltd
Priority to CN201210592900.0A priority Critical patent/CN102999317B/zh
Publication of CN102999317A publication Critical patent/CN102999317A/zh
Application granted granted Critical
Publication of CN102999317B publication Critical patent/CN102999317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种面向多租户的弹性多进程服务处理方法,包括如下步骤:将计算机***的内部进程分为***进程和任务执行进程;***进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,其中宿主进程负责对任务执行进程的管理,宿主检测进程负责定时检测宿主进程是否存活;任务执行进程检测进程负责检测任务执行进程是否存活。本发明可以在多租户环境下,有效确保各用户之间数据的隔离性。另一方面,本发明可以弹性增减任务执行进程的数量,合理控制各种服务处理中对资源的使用情况,大大节省了任务的执行时间。

Description

面向多租户的弹性多进程服务处理方法
技术领域
本发明涉及一种进程管理方法,尤其涉及一种面向多租户的弹性多进程服务处理方法,属于计算机管理技术领域。
背景技术
计算机运算是以进程为单位运行的。进程是程序在计算机上的一次执行活动,每个进程按照已编写好的程序顺序一步一步向下执行。原则上,一个CPU只能分配给一个进程,即同一时刻只能有一个进程运行在一个CPU上。如果程序逻辑过于复杂,则运算时间需要很久,并且服务器资源长久不能释放,程序效率很低。用户发出任务请求后,需要等待很久才能收到响应,因此用户的体验很差。
随着计算机技术的突飞猛进,服务器集群的出现,CPU运算能力的提高,多核CPU、服务器内存等硬件资源已经不再是瓶颈。于是,多进程并发处理的实现变成了可能。如果某业务逻辑程序可以分为多个进程并发执行的话,则原来的程序运行时间就可以分成多份并行处理,可以更快地执行完毕以及更充分地利用服务器资源。
利用多进程并发处理技术,将大规模复杂业务分成多份子业务,交由不同的进程处理,则原来需要等整个服务任务全部完成才可以结束,现在只需要最大的子任务结束即整个任务完成。这样就可以使用户可以很快得到***响应,优化用户的体验。例如需要处理100万份名单,如果是单进程处理则假设需要执行M秒的时间,如果使用多进程处理的话,例如10个进程平均处理,则只需执行M/10秒的时间就可以处理完成。
另外,如果单纯从服务器角度去提高性能的话,高级服务器价格极高,并且达到数倍甚至数十倍的效率是很难的。而利用多进程并发处理技术则可以使用普通的服务器,在效率上根据业务不同,使用不同的并发方案,有时甚至可以使性能提高上百倍。
但是,现有的多进程并发处理技术在进程管理方面仍然存在不足之处,例如在多租户,即在多用户的环境下共用相同的***或程序组件,很难确保各用户之间数据的隔离性。
发明内容
本发明所要解决的技术问题在于提供一种面向多租户的弹性多进程服务处理方法。
为实现上述的发明目的,本发明采用下述的技术方案:
一种面向多租户的弹性多进程服务处理方法,包括如下步骤:
将计算机***的内部进程分为***进程和任务执行进程;
所述***进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,其中所述宿主进程负责对所述任务执行进程的管理,所述宿主检测进程负责定时检测所述宿主进程是否存活,如若发现所述宿主进程死掉则重新启动一个宿主进程;所述任务执行进程检测进程负责检测所述任务执行进程是否存活,如若发现有任务执行进程死掉则重新启动一个该类型的任务执行进程。
其中较优地,所述宿主检测进程和所述任务执行检测进程互相执行心跳检测机制。
其中较优地,针对多租户的需求,同时运行多种任务执行进程。
其中较优地,实际服务任务处理代码在执行前,将代码文件注册入计算机***的XML配置文件中,管理页面启动进程,计算机***根据管理页面传递参数,读取配置信息,找到对应的代码文件,将所述代码文件加载入内存中并按规则运行程序,创建所述任务执行进程。
其中较优地,服务请求先提交到按照任务执行进程分类的任务缓存队列中,再由相应的任务执行进程从任务缓存队列中取出处理。
其中较优地,根据服务请求数量及当前处理服务请求的能力,弹性增减任务执行进程的数量。
其中较优地,实时监控内存、CPU、网络的使用情况,进行综合分析;如果分析结论是服务器资源闲置,则启动其它任务执行进程,并将这个任务执行进程调度至内存;如果分析结论是服务器资源超过负载,则将部分任务执行进程迁移到另外一台服务器。
其中较优地,前台页面对所述任务执行进程进行状态监控;用户提交服务任务时,生成唯一的任务标识号,并以所述任务标识号作为键值,将用户提交的任务参数存入数据库中,再将所述任务标识号放入任务执行进程;所述任务执行进程从所述数据库中读取数据,进而执行服务任务。
本发明所提供的弹性多进程服务处理方法可以在多租户环境下,有效确保各用户之间数据的隔离性。租户之间不会互相看到对方的数据。通过数据隔离,保证了多租户数据的安全性,使多租户功能得以实现。另一方面,本发明可以弹性增减任务执行进程的数量,合理控制各种服务处理中对资源的使用情况,大大节省了任务的执行时间。
附图说明
图1是应用本发明所提供的弹性多进程服务处理方法的多租户环境示意图。
具体实施方式
如图1所示,本发明所提供的弹性多进程服务处理方法应用在多租户环境中。为了在多用户的环境下共用相同的***或程序组件,并且仍可确保各用户间数据的隔离性,本发明将任务执行进程与***进程分离,同一套应用本弹性多进程服务处理方法的计算机***(简称多进程服务处理***)可以同时运行多种任务执行进程,并使其各司其职,互不干扰,保证数据隔离性。
在本发明中,将计算机***的内部进程分为***进程和任务执行进程。***进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,其中宿主进程负责对任务执行进程的管理,例如添加、删除、休眠、唤醒等功能。宿主检测进程负责定时检测宿主进程是否存活,如若发现宿主进程死掉则重新启动一个宿主进程,保证宿主进程在***执行过程中一直保持存活状态。任务执行进程检测进程负责检测任务执行进程是否存活,如若发现有任务执行进程死掉则重新启动一个该类型的任务执行进程。其中宿主进程、宿主检测进程和任务执行进程检测进程互相执行心跳检测机制,进而确保三个***进程互相监督,不会出现某进程死掉的情况。
上述心跳检测机制是这样的:***进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,相互检测,当发现某一***进程异常,则杀死原来的***进程,重新启动一个相同类型的***进程,并交由计算机***接管,进而保证计算机***中三个***进程是存活的。心跳检测机制的实现方法是定时Ping,采用定时Ping某服务器来检测服务器是否正常运行。Ping是向远程主机发送一个ICMP包,如果给定时间内没有接收到回应就认为是超时,即服务器死机;如果收到回应则分析接收到的ICMP包,得到TTL、类型以及用时,进而判断服务器的健康状态。
为了保证各个任务执行进程之间的独立性,本发明采用注册式进程管理方式,即实际服务任务处理代码与多进程服务处理***分离,代码执行前将其代码文件注册入计算机***的XML配置文件中,管理页面启动进程,计算机***根据管理页面传递参数,自动读取配置信息,找到对应代码文件,将其加载入内存中并按规则运行程序,创建任务执行进程。任务执行进程可以循环重复使用,以便减小创建进程的开销。
在上述注册式进程管理方式中,一套计算机***可以根据配置运行多种不同的服务处理程序,进而可以充分利用服务器资源,使不同程序共用一台服务器。在本发明的一个实施例中,该注册式进程管理方式是通过在线管理***实现的。该在线管理***是一个中心服务器,可以管理不同服务器的资源,包括资源分配、进程调度等,按照服务器负载分配服务器任务,负载低的服务器多分配任务,达到不同服务器可以由多程序共同使用。
下面显示了用于实现注册式进程管理方式的部分程序伪码。
在本发明所提供的弹性多进程服务处理方法中,使用任务缓存队列进行服务请求的调度。服务请求先提交到按照任务执行进程分类的任务缓存队列中,再由相应的任务执行进程从任务缓存队列中取出处理。使用任务缓存队列首先可以作为服务请求的缓冲区,减小对服务器的冲击作用,其次对服务请求任务按时间进行排序,保持先后顺序,最后可以根据任务缓存队列中的未处理的任务自动调整任务执行进程的数量,增加处理进程。
本发明所提供的弹性多进程服务处理方法根据任务缓存队列中未执行的任务数量来判断当前的任务执行进程是否够用。如果不够,则添加相同类型的任务执行进程数量,使其更快地处理服务任务。如果当前任务缓存队列中数量为空,则减少任务执行进程数量,减小服务器资源使用,节省资源,合理分配。
本弹性多进程服务处理方法的一个显著特点在于弹性使用多进程方式,即根据服务请求数量及当前处理服务请求的能力,弹性增减任务执行进程的数量,合理控制各种服务处理中对资源的使用情况。该弹性使用多进程方式可以通过一个单独的程序组件予以实现。该程序组件实时监控***内存、CPU、网络等使用情况,进行综合分析,如果分析结论是服务器资源大量闲置,这时这个组件会启动其它任务执行进程,将这个任务执行进程调度至内存,提升服务器的资源使用率;如果分析结论是服务器资源超过负载,该程序组件会在适当的时机,将某些任务执行进程迁移到另外一台服务器,实现进程的高效运转。
用于实现弹性使用多进程方式的部分程序伪码如下:
上述弹性使用多进程方式大大节省了任务的执行时间,然而服务器资源是有限的,所以对服务请求需要分开处理。如果是大任务、高复杂性运算的时候,则将该任务拆分为多个子任务,使用多进程处理,快速执行。而在普通情况下处理简单的服务任务时,依然使用传统的单进程处理。根据业务服务请求,自定义涉及服务请求的处理方式,使资源得到合理分配。
本弹性多进程服务处理方法的另一个显著特点在于无锁化多进程处理。具体说明如下:
多进程处理可以减少任务处理时间,将大任务分为多个小任务,由多个进程去处理,减少处理时间。在本发明中,数据使用NoSQL(非关系型数据库)服务来存储服务请求传递的参数,这样就可以实现多进程多服务器的参数共享。前台页面对任务执行进程进行状态监控等服务。用户提交服务任务时,会生成多进程服务处理***中唯一的任务标识号,并以此任务标识号作为键值,将用户提交的任务参数格式化存入非关系型数据库,例如NoSQL内存数据库中,再将该任务标识号放入任务执行进程。任务执行进程从NoSQL内存数据库中读取数据,进而执行服务任务。使用NoSQL服务可以横向添加宿主服务器,使多台服务器共享参数,无限添加宿主使用进程。
在本弹性多进程服务处理方法中,使用NoSQL内存数据库作为数据存储工具,并利用队列结构作为中间融合剂,使进程之间可以独立处理自己取到的任务,无需使用锁,能够很好地提高运行效率。
上面对本发明所提供的面向多租户的弹性多进程服务处理方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

Claims (7)

1.一种面向多租户的弹性多进程服务处理方法,其特征在于:
将计算机***的内部进程分为***进程和任务执行进程;
所述***进程包括宿主进程、宿主检测进程、任务执行进程检测进程三个进程,其中所述宿主进程负责对所述任务执行进程的管理,所述宿主检测进程负责定时检测所述宿主进程是否存活;所述任务执行进程检测进程负责检测所述任务执行进程是否存活,如若发现有任务执行进程死掉则重新启动一个相同类型的任务执行进程;
所述宿主进程、所述宿主检测进程和所述任务执行进程检测进程互相执行心跳检测机制,当发现某一***进程异常,则杀死原来的***进程,重新启动一个相同类型的***进程,并交由计算机***接管。
2.如权利要求1所述的弹性多进程服务处理方法,其特征在于:
针对多租户的需求,同时运行多种任务执行进程。
3.如权利要求2所述的弹性多进程服务处理方法,其特征在于对任务执行进程采用注册式进程管理方式,所述注册式进程管理方式为:
实际服务任务处理代码与多进程服务处理***分离,所述实际服务任务处理代码在执行前,将代码文件注册入计算机***的XML配置文件中,管理页面启动进程,计算机***根据管理页面传递参数,读取配置信息,找到对应的代码文件,将所述代码文件加载入内存中并按规则运行程序,创建所述任务执行进程。
4.如权利要求2所述的弹性多进程服务处理方法,其特征在于:
服务请求先提交到按照任务执行进程分类的任务缓存队列中,再由相应的任务执行进程从任务缓存队列中取出处理。
5.如权利要求2所述的弹性多进程服务处理方法,其特征在于:
根据服务请求数量及当前处理服务请求的能力,弹性增减任务执行进程的数量。
6.如权利要求5所述的弹性多进程服务处理方法,其特征在于:
实时监控内存、CPU、网络的使用情况,进行综合分析;如果分析结论是服务器资源闲置,则启动其它任务执行进程,并将这个任务执行进程调度至内存;如果分析结论是服务器资源超过负载,则将部分任务执行进程迁移到另外一台服务器。
7.如权利要求1所述的弹性多进程服务处理方法,其特征在于:
前台页面对所述任务执行进程进行状态监控;用户提交服务任务时,生成唯一的任务标识号,并以所述任务标识号作为键值,将用户提交的任务参数存入数据库中,再将所述任务标识号放入任务执行进程;所述任务执行进程从所述数据库中读取数据,进而执行服务任务。
CN201210592900.0A 2012-12-30 2012-12-30 面向多租户的弹性多进程服务处理方法 Active CN102999317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210592900.0A CN102999317B (zh) 2012-12-30 2012-12-30 面向多租户的弹性多进程服务处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210592900.0A CN102999317B (zh) 2012-12-30 2012-12-30 面向多租户的弹性多进程服务处理方法

Publications (2)

Publication Number Publication Date
CN102999317A CN102999317A (zh) 2013-03-27
CN102999317B true CN102999317B (zh) 2015-12-23

Family

ID=47927928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210592900.0A Active CN102999317B (zh) 2012-12-30 2012-12-30 面向多租户的弹性多进程服务处理方法

Country Status (1)

Country Link
CN (1) CN102999317B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598300A (zh) * 2014-12-24 2015-05-06 北京奇虎科技有限公司 分布式业务流程定制方法及***
CN106610869B (zh) * 2015-10-23 2020-04-21 大唐移动通信设备有限公司 进程管理方法及装置
CN105913344A (zh) * 2016-04-14 2016-08-31 北京思特奇信息技术股份有限公司 一种针对多租户***配置的方法及***
CN107704274B (zh) * 2017-08-24 2019-11-05 武汉斗鱼网络科技有限公司 用于安卓应用主进程唤醒的方法、存储介质、设备及***
CN110597631B (zh) * 2019-09-06 2022-06-21 广州华多网络科技有限公司 资源管理方法、监控服务器、代理服务器以及存储介质
CN112988378A (zh) * 2021-01-28 2021-06-18 网宿科技股份有限公司 业务处理方法及装置
CN114002488B (zh) * 2021-09-29 2024-01-16 苏州浪潮智能科技有限公司 一种自动化监测及调节方法、装置及***

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122869A (zh) * 2007-09-20 2008-02-13 中兴通讯股份有限公司 一种用于多核多线程处理器的单线程复位方法
CN102073537A (zh) * 2010-09-29 2011-05-25 深圳市蓝韵实业有限公司 一种高并发Web医学影像服务器的实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516483B2 (en) * 2005-05-13 2013-08-20 Intel Corporation Transparent support for operating system services for a sequestered sequencer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122869A (zh) * 2007-09-20 2008-02-13 中兴通讯股份有限公司 一种用于多核多线程处理器的单线程复位方法
CN102073537A (zh) * 2010-09-29 2011-05-25 深圳市蓝韵实业有限公司 一种高并发Web医学影像服务器的实现方法

Also Published As

Publication number Publication date
CN102999317A (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
CN102999317B (zh) 面向多租户的弹性多进程服务处理方法
Shu et al. Cloud-integrated cyber-physical systems for complex industrial applications
US10169709B2 (en) Avoiding incompatibility between data and computing processes to enhance computer performance
CN103078941B (zh) 一种分布式计算***的任务调度方法
CN103457775B (zh) 一种基于角色的高可用虚拟机池化管理***
Yan et al. Performance optimization for short MapReduce job execution in Hadoop
WO2019047441A1 (zh) 一种通信优化方法及***
US20210105317A1 (en) Real time multi-tenant workload tracking and auto throttling
CN111580990A (zh) 一种任务调度方法、调度节点、集中配置服务器及***
CN110727508A (zh) 一种任务调度***和调度方法
CN102209115A (zh) 一种虚拟桌面***中不同用户之间的协同方法
WO2021036451A1 (zh) 一种分布式***内实时通讯方法、装置及分布式***
CN107528871A (zh) 存储***中的数据分析
CN104468710A (zh) 一种混合大数据处理***及处理方法
Ali et al. Probabilistic normed load monitoring in large scale distributed systems using mobile agents
CN103338160B (zh) 基于缓存队列的轮询业务的优化***及优化方法
CN106407264A (zh) 一种高可用性和强一致性的数据库集群***及其命令处理方法
US9806956B1 (en) Managing computing resources by predicting resource usage
EP3701374A1 (en) A system and method for high-performance general-purpose parallel computing with fault tolerance and tail tolerance
Liang et al. A new pre-copy strategy for live migration of virtual machines
Wu et al. GA-based job scheduling strategies for fault tolerant grid systems
Rathore et al. Efficient checkpoint Algorithm for distributed system
CN106850283B (zh) 一种基于事件驱动的云ac告警处理***及方法
Bloch et al. Analysis and survey of issues in live virtual machine migration interferences
Fesl et al. Efficient virtual machine consolidation approach based on user inactivity detection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant