CN110442432A - 业务处理方法、系统、装置、设备及存储介质 - Google Patents
业务处理方法、系统、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110442432A CN110442432A CN201910777975.8A CN201910777975A CN110442432A CN 110442432 A CN110442432 A CN 110442432A CN 201910777975 A CN201910777975 A CN 201910777975A CN 110442432 A CN110442432 A CN 110442432A
- Authority
- CN
- China
- Prior art keywords
- service
- virtual machine
- server
- processing
- request
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Abstract
本申请公开了业务处理方法、系统、装置、设备及存储介质,属于互联网技术领域。方法包括:负载均衡服务器将目标业务的处理请求发送至第一业务服务器;第一业务服务器获取目标业务的处理请求,基于目标业务的处理请求,获取虚拟机的状态信息;响应于虚拟机的状态信息指示虚拟机暂停服务,第一业务服务器向负载均衡服务器发送拒绝请求;响应于获取到第一业务服务器发送的拒绝请求,负载均衡服务器将目标业务的处理请求发送至第二业务服务器。基于上述过程,能够避免已经进入业务服务器的业务的处理请求因虚拟机暂停服务而积压,有效解决业务的处理请求响应超时的问题,有利于提高业务服务器的稳定性,业务处理的性能和效率较高。
Description
技术领域
本申请实施例涉及互联网技术领域,特别涉及一种业务处理方法、系统、装置、设备及存储介质。
背景技术
随着互联网技术的发展,目前互联网业务的处理系统一般由负载均衡服务器和业务服务器组成。在业务处理系统处理业务的过程中,业务服务器的虚拟机(Java VirtualMachine,JVM)会由于某些原因出现暂停服务的现象,例如,由于垃圾收集(GarbageCollection,GC)而暂停服务或者由于释放偏向锁而暂停服务。当业务服务器的JVM暂停服务时,业务服务器会暂时停止响应业务的处理请求,从而使业务服务器接收的业务的处理请求因积压而导致响应超时。因此,如何在JVM暂停服务时进行业务处理,是解决业务的处理请求响应超时问题的关键。
相关技术在业务处理的过程中,业务服务器监控JVM内存使用情况,当JVM内存使用率达到一定阈值时提前触发GC,并通知负载均衡服务器本台业务服务器不可用,负载均服务器向其他业务服务器发送业务的处理请求,由其他业务服务器进行业务处理。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
当JVM内存使用率达到一定阈值时提前触发GC,并通知负载均衡服务器本台业务服务器不可用,负载均服务器向其他业务服务器发送业务的处理请求。此种业务处理过程,对于触发GC前未进入本台业务服务器的业务的处理请求而言,可以避免其因积压而响应超时;但是对于触发GC前已经进入本台业务服务器的业务的处理请求而言,在触发GC时,仍会由于业务服务器暂时停止响应而导致业务的处理请求积压,降低业务服务器的稳定性,不能有效解决业务的处理请求响应超时的问题,业务处理的效率较低,业务处理的性能较差。
发明内容
本申请实施例提供了一种业务处理方法、系统、装置、设备及存储介质,可用于解决相关技术中的问题。所述技术方案如下:
一方面,本申请实施例提供了一种业务处理方法,所述方法应用于业务处理系统,所述业务处理系统包括负载均衡服务器和多个业务服务器,所述方法包括:
将目标业务的处理请求发送至第一业务服务器,所述第一业务服务器用于获取目标业务的处理请求;基于所述目标业务的处理请求,获取虚拟机的状态信息;响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务;
响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
可选地,所述响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器,包括:
响应于获取到所述第一业务服务器发送的拒绝请求,将所述第一业务服务器记录在暂停列表中,所述暂停列表用于记录虚拟机暂停服务的业务服务器;
响应于满足发送要求,将所述目标业务的处理请求发送至第二业务服务器,所述第二业务服务器为未记录在所述暂停列表中的业务服务器。
可选地,所述响应于满足发送要求,将所述目标业务的处理请求发送至第二业务服务器,包括:
响应于所述目标业务的处理请求的发送次数不超过次数阈值,将所述目标业务的处理请求发送至第二业务服务器。
可选地,所述拒绝请求包括参考暂停时间,所述将所述第一业务服务器记录在暂停列表中之后,还包括:
响应于所述第一业务服务器在所述暂停列表中的记录时间超过参考暂停时间,将所述第一业务服务器从所述暂停列表中删除。
可选地,所述将所述第一业务服务器记录在暂停列表中之后,还包括:
响应于获取到所述第一业务服务器的心跳信息,将所述第一业务服务器从所述暂停列表中删除,所述第一业务服务器的心跳信息用于指示所述第一业务服务器的虚拟机恢复服务。
还提供了一种业务处理方法,所述方法应用于业务处理系统,所述业务处理系统包括负载均衡服务器和多个业务服务器,所述方法包括:
获取目标业务的处理请求;
基于所述目标业务的处理请求,获取虚拟机的状态信息;
响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务,所述负载均衡服务器用于响应于获取到第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
可选地,所述基于所述目标业务的处理请求,获取虚拟机的状态信息之前,还包括:
将虚拟机的状态信息存储到共享内存中;
所述基于所述目标业务的处理请求,获取虚拟机的状态信息,包括:
基于所述目标业务的处理请求,调用过滤器;
由所述过滤器在所述共享内存中获取虚拟机的状态信息。
可选地,所述将虚拟机的状态信息存储到共享内存中,包括:
每隔第一时间的间隔,将未暂停服务的虚拟机的更新后的状态信息存储到共享内存中,删除更新前的状态信息。
可选地,所述虚拟机的状态信息包括虚拟机的运行状态;
所述响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,包括:
响应于所述虚拟机的运行状态为暂停运行,向负载均衡服务器发送拒绝请求。
可选地,所述虚拟机的状态信息包括虚拟机的时间戳;所述响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,包括:
获取当前时间戳;
响应于所述当前时间戳与所述虚拟机的时间戳的差值超过第一阈值,向负载均衡服务器发送拒绝请求。
可选地,所述方法,还包括:
响应于虚拟机的新生代目标区域的内存使用率超过第二阈值,等待第二时间或者等待当前业务处理结束,触发虚拟机的新生代垃圾收集。
可选地,所述触发虚拟机的新生代垃圾收集,包括:
在所述虚拟机的新生代目标区域内新建临时对象,直至所述虚拟机的新生代目标区域的内存使用率超过第三阈值,自动触发虚拟机的新生代垃圾收集;或者,
提供触发虚拟机的新生代垃圾收集的接口,基于对所述接口的触发指令,触发虚拟机的新生代垃圾收集。
另一方面,提供了一种业务处理系统,所述业务处理系统包括负载均衡服务器和多个业务服务器,
所述负载均衡服务器用于将目标业务的处理请求发送至第一业务服务器;
所述第一业务服务器用于获取所述目标业务的处理请求;基于所述目标业务的处理请求,获取虚拟机的状态信息;响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向所述负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务;
所述负载均衡服务器还用于响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
另一方面,提供了一种业务处理装置,所述装置包括:
第一发送模块,用于将目标业务的处理请求发送至第一业务服务器,所述第一业务服务器用于获取目标业务的处理请求;基于所述目标业务的处理请求,获取虚拟机的状态信息;响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务;
第二发送模块,用于响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
可选地,所述装置还包括:
记录模块,用于响应于获取到所述第一业务服务器发送的拒绝请求,将所述第一业务服务器记录在暂停列表中,所述暂停列表用于记录虚拟机暂停服务的业务服务器;
所述第二发送模块,用于响应于满足发送要求,将所述目标业务的处理请求发送至第二业务服务器,所述第二业务服务器为未记录在所述暂停列表中的业务服务器。
可选地,所述第二发送模块,用于响应于所述目标业务的处理请求的发送次数不超过次数阈值,将所述目标业务的处理请求发送至第二业务服务器。
可选地,所述拒绝请求包括参考暂停时间,所述装置还包括:
删除模块,用于响应于所述第一业务服务器在所述暂停列表中的记录时间超过参考暂停时间,将所述第一业务服务器从所述暂停列表中删除。
所述删除模块,还用于响应于获取到所述第一业务服务器的心跳信息,将所述第一业务服务器从所述暂停列表中删除,所述第一业务服务器的心跳信息用于指示所述第一业务服务器的虚拟机恢复服务。
还提供了一种业务处理装置,所述装置包括:
第一获取模块,用于获取目标业务的处理请求;
第二获取模块,用于基于所述目标业务的处理请求,获取虚拟机的状态信息;
发送模块,用于响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务,所述负载均衡服务器用于响应于获取到第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
可选地,所述装置还包括:
存储模块,用于将虚拟机的状态信息存储到共享内存中;
调用模块,用于基于所述目标业务的处理请求,调用过滤器;
所述第二获取模块,用于由所述过滤器在所述共享内存中获取虚拟机的状态信息。
可选地,所述存储模块,用于每隔第一时间的间隔,将未暂停服务的虚拟机的更新后的状态信息存储到共享内存中,删除更新前的状态信息。
可选地,所述虚拟机的状态信息包括虚拟机的运行状态;
所述发送模块,用于响应于所述虚拟机的运行状态为暂停运行,向负载均衡服务器发送拒绝请求。
可选地,所述虚拟机的状态信息包括虚拟机的时间戳;所述装置还包括:
第三获取模块,用于获取当前时间戳;
所述发送模块,用于响应于所述当前时间戳与所述虚拟机的时间戳的差值超过第一阈值,向负载均衡服务器发送拒绝请求。
可选地,所述装置还包括:
触发模块,用于响应于虚拟机的新生代目标区域的内存使用率超过第二阈值,等待第二时间或者等待当前业务处理结束,触发虚拟机的新生代垃圾收集。
可选地,所述触发模块,用于在所述虚拟机的新生代目标区域内新建临时对象,直至所述虚拟机的新生代目标区域的内存使用率超过第三阈值,自动触发虚拟机的新生代垃圾收集;或者,提供触发虚拟机的新生代垃圾收集的接口,基于对所述接口的触发指令,触发虚拟机的新生代垃圾收集。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一所述的业务处理方法。
另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一所述的业务处理方法。
本申请实施例提供的技术方案至少带来如下有益效果:
当基于目标业务的处理请求获取的虚拟机的状态信息指示虚拟机暂停服务时,业务服务器会主动向负载均衡服务器发送拒绝处理目标业务的请求,由负载均衡服务器将该目标业务的处理请求发送至其他业务服务器。此过程能够避免已经进入业务服务器的业务的处理请求因虚拟机暂停服务而积压,有效解决业务的处理请求响应超时的问题,有利于提高业务服务器的稳定性,业务处理的性能和效率较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种业务处理方法的流程图;
图3是本申请实施例提供的一种业务处理过程的示意图;
图4是本申请实施例提供的一种第一业务服务器的业务处理过程的示意图;
图5是本申请实施例提供的一种业务处理过程的示意图;
图6是本申请实施例提供的一种业务处理装置的示意图;
图7是本申请实施例提供的一种业务处理装置的示意图;
图8是本申请实施例提供的一种业务处理装置的示意图;
图9是本申请实施例提供的一种业务处理装置的示意图;
图10是本申请实施例提供的一种业务处理装置的示意图;
图11是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着互联网技术的发展,目前互联网业务的处理系统一般由负载均衡服务器和业务服务器组成。在业务处理系统处理业务的过程中,业务服务器的虚拟机(Java VirtualMachine,JVM)会由于某些原因出现暂停服务的现象,例如,由于垃圾收集(GarbageCollection,GC)而暂停服务或者由于释放偏向锁而暂停服务。当业务服务器的JVM暂停服务时,业务服务器会暂时停止响应业务的处理请求,从而使业务服务器接收的业务的处理请求因积压而导致响应超时。因此,如何在JVM暂停服务时进行业务处理,是解决业务的处理请求响应超时问题的关键。
对此,本申请实施例提供了一种业务处理方法,请参考图1,其示出了本申请实施例提供的方法实施环境的示意图。该实施环境可以包括终端11和业务处理系统12,该业务处理系统12可以包括负载均衡服务器121和业务服务器122。
其中,终端11能够将业务的处理请求发送至业务处理系统12,业务处理系统12用于进行业务处理,然后将业务的处理结果返回至终端11。
在业务处理系统12中,负载均衡服务器121用于获取终端11发送的业务的处理请求,将业务的处理请求发送至业务服务器122上进行存储。业务服务器122能够基于业务的处理请求,对业务进行处理。业务服务器122还能够将业务的处理结果发送至负载均衡服务器121,由负载均衡服务器121将业务的处理结果返回至终端11。
可选地,终端11可以是诸如手机、平板电脑、个人计算机等的智能设备。业务处理系统12中的负载均衡服务器121可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心;业务处理系统12中的业务服务器122可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。终端11与业务处理系统12通过有线或无线网络建立通信连接,业务处理系统12中的负载均衡服务器121与业务服务器122通过有线或无线网络建立通信连接。
本领域技术人员应能理解上述终端11和业务处理系统12仅为举例,其他现有的或今后可能出现的终端或业务处理系统如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
基于上述图1所示的实施环境,本申请实施例提供一种业务处理方法,该方法应用于业务处理系统,该业务处理系统包括负载均衡服务器和多个业务服务器。如图2所示,本申请实施例提供的方法可以包括如下步骤:
在步骤201中,负载均衡服务器将目标业务的处理请求发送至第一业务服务器。
其中,目标业务是指需要由业务服务器的虚拟机进行处理的业务。第一业务服务器是指负载均衡服务器基于负载均衡原则选择的业务服务器。其中,负载均衡原则是指将业务的处理请求平均分配到每一台业务服务器。可选地,第一业务服务器可以是指负载均衡服务器所连接的业务服务器中负载值最小的一台业务服务器。其中,负载值可以是指将各台业务服务器的负载信息进行量化后的数值,负载值可以表示每一台业务服务器的负载情况。
在负载均衡服务器将目标业务的处理请求发送至第一业务服务器之前,负载均衡服务器需要先获取目标业务的处理请求。可选地,负载均衡服务器获取目标业务的处理请求的过程为:终端将业务的处理请求发送至业务处理系统,业务处理系统中的负载均衡服务器接收业务的处理请求,将需要由业务服务器的虚拟机进行处理的业务作为目标业务,由此,负载均衡服务器获取目标业务的处理请求。其中,业务的处理请求可以是指任何业务的处理请求,例如,支付业务的处理请求、验证业务的处理请求、登录业务的处理请求等。在终端发送的业务的处理请求中,可以携带终端的IP地址,该IP地址可以用于标识发送该业务的处理请求的终端。
可选地,判断业务是否为需要由虚拟机进行处理的目标业务的方式可以是:基于业务的处理请求,获取该业务绑定的端口,当该业务绑定的端口为虚拟机时,该业务为需要由虚拟机进行处理的目标业务;当该业务绑定的端口不为虚拟机时,该业务为需要由除虚拟机之外的其他进程进行处理的业务。在具体实现过程中,基于Linux系统的中的过滤系统(iptables)的端口过滤功能,对业务进行过滤,当业务绑定的端口为虚拟机时,将该业务作为需要由虚拟机进行处理的目标业务。
负载均衡服务器除了将需要由虚拟机进行处理的目标业务的处理请求发送至第一业务服务器外,还可以将其他业务的处理请求发送至第一业务服务器。其他业务是指需要由业务服务器中除虚拟机之外的其他进程进行处理的业务。
在步骤202中,第一业务服务器获取目标业务的处理请求。
负载均衡服务器将目标业务的处理请求发送至第一业务服务器后,第一业务服务器即可获取到目标业务的处理请求。
可选地,第一业务服务器除了获取目标业务的处理请求外,还可以获取其他业务的处理请求。目标业务是指需要由业务服务器的虚拟机进行处理的业务,其他业务是指需要由业务服务器中除虚拟机之外的其他进程进行处理的业务。
在步骤203中,第一业务服务器基于目标业务的处理请求,获取虚拟机的状态信息。
由于目标业务是需要由业务服务器的虚拟机进行处理的业务,而负载均衡服务器在根据负载均衡原则选择第一业务服务器时并没有考虑到该业务服务器的虚拟机的状态。所以第一业务服务器在获取到目标业务的处理请求后,需要获取虚拟机的状态信息,以判断第一业务服务器的虚拟机能否对目标业务进行正常处理。虚拟机的状态信息包括但不限于:虚拟机的运行状态、虚拟机的时间戳、虚拟机的新生代目标区域的内存占有率等。
可选地,在获取虚拟机的状态信息之前,第一业务服务器可以将虚拟机的状态信息存储到共享内存中。第一业务服务器基于目标业务的处理请求,获取虚拟机的状态信息的过程可以为:基于目标业务的处理请求,调用过滤器;由过滤器在共享内存中获取虚拟机的状态信息。其中,过滤器用于判断第一业务服务器的虚拟机是否处于暂停服务状态。过滤器可以为暂停服务(Stop the World,STW)过滤器。
共享内存的作用是搭起过滤器与虚拟机之间通信的桥梁。通常情况下,过滤器必须通过虚拟机执行指令才能获取虚拟机的状态信息,但是由于虚拟机暂停服务时无法执行任何指令,所以当虚拟机暂停服务时,过滤器无法获取虚拟机的状态信息。通过将虚拟机的状态信息存储到共享内存中,无论虚拟机是否暂停服务,过滤器均可以从共享内存中读取虚拟机的状态信息,进而能够基于读取的状态信息判断第一业务服务器的虚拟机是否暂停服务。
可选地,将虚拟机的状态信息存储到共享内存中的方式包括但不限于以下两种:
方式一:每隔第一时间的间隔,将未暂停服务的虚拟机的更新后的状态信息存储到共享内存中,删除更新前的状态信息。
其中,更新后的状态信息是指未暂停服务的虚拟机的当前状态信息,更新前的状态信息是指未暂停服务的虚拟机在第一时间间隔之前的状态信息。状态信息包括但不限于运行状态和时间戳。
具体而言,当虚拟机未暂停服务,也就是正常运行时,第一业务服务器每隔第一时间的间隔,将虚拟机的当前状态信息记录在共享内存中一次。对于未暂停服务的虚拟机而言,虽然运行状态仍然为正常运行,但是时间戳却发生了变化。第一时间可以根据经验设置,也可以根据服务器的延时要求进行设置。例如,第一时间设置为1ms,也就是当第一业务服务器的虚拟机未暂停服务时,每隔1ms将虚拟机当前的状态信息存储到共享内存中,用虚拟机当前的状态信息代替虚拟机在1ms之前的状态信息,删除虚拟机在1ms之前的状态信息。此过程可以及时更新共享内存中存储的虚拟机的状态信息,从而保证过滤器读取的虚拟机的状态信息是最新的状态信息,避免出现过滤器从共享内存中读取的虚拟机的状态信息与虚拟机的真实状态信息不一致的情况。
需要说明的是,在虚拟机暂停服务后,共享内存中存储的虚拟机的状态信息不再更新。但是根据造成虚拟机暂停服务的原因不同,共享内存中存储的暂停服务的虚拟机的运行状态不同。一般而言,当由于垃圾收集(Garbage Collection,GC)造成虚拟机暂停服务时,共享内存中存储的暂停服务的虚拟机的运行状态为暂停运行;当由除GC之外的其他原因(例如,释放偏向锁)造成虚拟机暂停服务时,共享内存中存储的暂停服务的虚拟机的运行状态为正常运行。其中,GC包括但不限于FGC(Full Garbage Collection,全局垃圾收集)和YGC(Young Garbage Collection,新生代垃圾收集)。
方式二:基于代码,将虚拟机的状态信息存储到共享内存中。
构建分别表示虚拟机暂停服务和正常服务的代码,基于对相应代码的执行将虚拟机的状态信息同步到共享内存中。此种方式可以减少虚拟机与共享内存之间的通信。
需要说明的是,如图3所示,业务服务器中除了包括过滤器、共享内存和虚拟机外,还可以包括操作系统内核和缓冲区。其中,操作系统内核用于接收目标业务的处理请求,将目标业务的处理请求发送至过滤器;缓冲区用于存储目标业务的处理请求,供虚拟机读取目标业务的处理请求并进行处理。缓冲区可以为TCP(Transmission Control Protocol,传输控制协议)缓冲区。
在步骤204中,响应于虚拟机的状态信息指示虚拟机暂停服务,第一业务服务器向负载均衡服务器发送拒绝请求,拒绝请求用于指示拒绝处理目标业务。
当虚拟机的状态信息指示虚拟机暂停服务时,第一业务服务器向负载均衡服务器发送拒绝请求,用于告知负载均衡服务器该第一业务服务器拒绝处理目标业务,以使负载均衡服务器及时将该目标业务的处理请求发送至其他业务服务器,避免该目标业务的处理请求因虚拟机暂停服务而积压。可选地,当虚拟机的状态指示虚拟机暂停服务时,第一业务服务器还可以将获取的目标业务的处理请求删除,以节省虚拟机的内存。
可选地,第一业务服务器向负载均衡服务器发送拒绝请求时,可以附带发送参考暂停时间,该参考暂停时间用于指示该第一业务服务器的虚拟机暂停的时间,也就是负载均衡服务器不能将需要由虚拟机进行处理的业务的处理请求发送至该第一业务服务器的时间。参考暂停时间可以根据经验设置,也可以根据引起暂停服务的原因进行自由调整,例如,参考暂停时间可以设置为3s等。
具体而言,响应于虚拟机的状态信息指示虚拟机暂停服务,第一业务服务器向负载均衡服务器发送拒绝请求的情况包括但不限于以下两种:
情况一:响应于虚拟机的运行状态为暂停运行,第一业务服务器向负载均衡服务器发送拒绝请求。
虚拟机的运行状态包括正常运行和暂停运行两种。当虚拟机的运行状态为正常运行时,说明虚拟机可以正常处理业务;当虚拟机的运行状态为暂停运行时,说明虚拟机暂停服务,也就是虚拟机不能进行业务处理,此时,第一业务服务器向负载均衡服务器发送拒绝请求,告知负载均衡服务器本台业务服务器因虚拟机暂停服务而拒绝处理目标业务。
需要说明的是,一般情况下,当造成虚拟机暂停服务的原因为GC时,虚拟机的运行状态为暂停运行,所以此种情况能够检测出由于GC造成的虚拟机暂停服务。
情况二:获取当前时间戳;响应于当前时间戳与虚拟机的时间戳的差值超过第一阈值,第一业务服务器向负载均衡服务器发送拒绝请求。
当由非GC原因造成虚拟机暂停服务时,虽然虚拟机暂停服务,但是虚拟机的状态信息中的运行状态为正常运行。在此种情况下,可以通过计算当前时间戳与虚拟机的状态信息中的时间戳的差值,来判断虚拟机的状态。若当前时间戳与虚拟机的状态信息中的时间戳的差值超过第一阈值,则说明虚拟机的状态信息已超过第一阈值的时间未更新,也就是说明虚拟机暂停服务,此时,第一业务服务器向负载均衡服务器发送拒绝请求。其中,第一阈值可以根据服务器的延时要求进行设置,例如,第一阈值可以设置为1ms等。
综合以上两种情况可以检测出任何原因造成的虚拟机暂停服务,通过调整第一阈值,不仅可以识别出分钟级、秒级的暂停服务,还可以识别出毫秒级的暂停服务。
进一步地,由于在造成虚拟机暂停服务的原因中,YGC发生的频率很高,所以本申请实施例提出了一种提前触发YGC的方法,以避免YGC影响已经进入虚拟机的目标业务的处理过程。具体而言,响应于虚拟机的新生代目标区域的内存使用率超过第二阈值,等待第二时间或者等待当前业务处理结束,触发虚拟机的新生代垃圾收集。其中,新生代目标区域是指新生代中存储新增对象的区域,例如,可以是指新生代的Eden区域。第二阈值可以根据YGC的触发阈值进行设置。YGC的触发阈值是指自动触发YGC的内存使用率的数值。第二阈值应小于YGC的触发阈值。例如,若YGC的触发阈值为98%,则第二阈值可以设置为95%。
当虚拟机的新生代目标区域的内存使用率超过第二阈值时,说明即将到达YGC的触发阈值,此时,为了避免在虚拟机处理业务的过程中发生YGC,可以等待第二时间或者等待当前业务处理结束,提前触发YGC。其中,第二时间可以根据处理业务的平均时长进行设置,例如,第二时间为2s等。需要说明的是,在触发虚拟机的YGC之前,可以将虚拟机的运行状态更改为暂停运行,以避免在YGC发生的过程中有业务的处理请求进入该虚拟机。
可选地,触发虚拟机的新生代垃圾收集的方式包括但不限于以下两种:
方式一:在虚拟机的新生代目标区域内新建临时对象,直至虚拟机的新生代目标区域的内存使用率超过第三阈值,自动触发虚拟机的新生代垃圾收集。
其中,第三阈值是指YGC的触发阈值。通过新建大量的临时对象,快速消耗虚拟机的新生代目标区域的内存,当虚拟机的新生代目标区域的内存使用率超过第三阈值时,即可自动触发YGC。
方式二:提供触发虚拟机的新生代垃圾收集的接口,基于对接口的触发指令,触发虚拟机的新生代垃圾收集。
当接收到新生代垃圾收集的接口的触发指令时,即可触发YGC。此方式可以增加触发YGC动作的确定性,更加快速地触发YGC。
通过提前触发YGC,能够使得目标业务的处理请求的延时进一步降低。
接下来,结合图4对第一业务服务器的业务处理过程进行举例说明。第一业务服务器的操作系统内核在接收到负载均衡服务器发送的业务的处理请求后,先判断该业务是否绑定JVM的端口。若该业务未绑定JVM的端口,则调用其他过滤器,例如,内存过滤器等,将通过过滤的业务的处理请求放入TCP缓冲区;若该业务绑定JVM的端口,则调用STW过滤器。
在调用STW过滤器后,STW过滤器从共享内存中读取JVM的运行状态和时间戳。若JVM的运行状态为暂停运行,则预测参考暂停时间,向操作系统内核发送附带参考暂停时间的拒绝请求,操作系统内核将该拒绝请求发送至负载均衡服务器。若JVM的运行状态为正常运行,则进一步判断当前时间戳与共享内存中存储的时间戳的差值是否超过第一阈值,若差值超过第一阈值,则预测参考暂停时间;若差值不超过第一阈值,则接收该业务的处理请求。在接收该业务的处理请求之后,可以继续调用其他过滤器对该业务的处理请求进行过滤。
如图4所示,第一业务服务器的JVM可以检查新生代Eden区的内存使用率,若新生代Eden区的内存使用率未超过第二阈值,则JVM的运行状态为正常运行,将正常运行的运行状态和时间戳写入共享内存;若新生代Eden区的内存使用率超过第二阈值,则将JVM的运行状态为暂停运行,并将暂停运行的运行状态和时间戳写入共享内存。在新生代Eden区的内存使用率超过第二阈值的情况下,等待第二时间或者当前业务处理结束,触发YGC,以释放新生代Eden区的内存。
在步骤205中,响应于获取到第一业务服务器发送的拒绝请求,负载均衡服务器将目标业务的处理请求发送至第二业务服务器。
当获取到第一业务服务器发送的拒绝请求时,说明第一业务服务器的虚拟机不可用,此时,负载均衡服务器将目标业务的处理请求及时发送至第二业务服务器,以避免目标业务的处理请求因阻塞在一台不可用的业务服务器上而响应超时。第二业务服务器是指负载均衡服务器根据负载均衡原则选择的除第一业务服务器之外的其他业务服务器。
可选地,响应于获取到第一业务服务器发送的拒绝请求,将目标业务的处理请求发送至第二业务服务器,包括:
响应于获取到第一业务服务器发送的拒绝请求,将第一业务服务器记录在暂停列表中,暂停列表用于记录虚拟机暂停服务的业务服务器;响应于满足发送要求,将目标业务的处理请求发送至第二业务服务器,第二业务服务器为未记录在暂停列表中的业务服务器。
具体而言,当获取到第一业务服务器发送的拒绝请求时,负载均衡服务器将第一业务服务器记录在暂停列表中。负载均衡服务器在根据负载均衡原则选择业务服务器时,从未记录在暂停列表中的业务服务器中进行选择,从而减少负载均衡服务器与虚拟机暂停服务的业务服务器之间的无效通信。当目标业务的处理请求的发送次数不超过次数阈值时,将目标业务的处理请求发送至未记录在暂停列表中的第二业务服务器。其中,次数阈值可以根据经验设置,也可以根据应用场景自由调整,例如,次数阈值为5次等。当目标业务的处理请求的发送次数超过次数阈值时,说明当前网络可能发生故障,需要检查当前网络。
在将第一业务服务器记录在暂停列表中之后,当第一业务服务器满足一定条件时,需要将第一业务服务器从暂停列表中删除,以恢复负载均衡服务器与第一业务服务器之间的通信。可选地,将第一业务服务器从暂停列表中删除的情况包括但不限于以下两种:
情况一:拒绝请求包括参考暂停时间,响应于第一业务服务器在暂停列表中的记录时间超过参考暂停时间,将第一业务服务器从暂停列表中删除。
第一业务服务器在向负载均衡服务器发送拒绝请求时,附带发送参考暂停时间。当第一业务服务器在暂停列表中的记录时间超过参考暂停时间时,说明第一业务服务器的虚拟机很有可能已经恢复正常服务,此时,可以将第一业务服务器从暂停列表中删除。
情况二:响应于获取到第一业务服务器的心跳信息,将第一业务服务器从暂停列表中删除,第一业务服务器的心跳信息用于指示第一业务服务器的虚拟机恢复服务。
具体而言,在负载均衡服务器和第一业务服务器之间建立心跳机制。当基于心跳机制获取到第一业务服务器的心跳信息时,说明第一业务服务器的虚拟机已经恢复正常服务,此时将第一业务服务器从暂停列表中删除。本申请实施例对心跳信息的具体内容不加以限定,只要能够表明第一业务服务器的虚拟机已经恢复服务即可。
心跳机制是一种检测设备是否正常运行的机制。负载均衡服务器可以每隔固定时间向第一业务服务器发送一个固定信息,当第一业务服务器的虚拟机暂停服务时,第一业务服务器不会返回心跳信息;当第一业务服务器的虚拟机恢复服务时,第一业务服务器会返回心跳信息。
当将第一业务服务器从暂停列表中删除后,负载均衡服务器可以恢复与第一业务服务器之间的通信,也就是负载均衡服务器可以将需要由虚拟机进行处理的目标业务的处理请求发送至第一业务服务器。
接下来,结合图5对业务处理的过程进行举例说明。终端将目标业务的处理请求发送至负载均衡服务器,负载均衡服务器基于接收到的目标业务的处理请求,选择负载值最小的第一业务服务器。接下来判断第一业务服务器是否记录在暂停列表中:当第一业务服务器未记录在暂停列表中时,将目标业务的处理请求发送至第一业务服务;当第一业务服务器记录在暂停列表中,但是记录时间超过参考暂停时间时,将第一业务服务器从暂停列表中删除并将目标业务的处理请求发送至第一业务服务器;当第一业务服务器记录在暂停列表中,并且记录时间未超过参考暂停时间时,重新选择业务服务器。
第一业务服务器接收到目标业务的处理请求后,判断JVM是否暂停服务。若JVM未暂停服务,则第一业务服务器对目标业务进行处理,并向负载均衡服务器返回目标业务的处理结果,然后负载均衡服务器将目标业务的处理结果发送至终端,终端接收目标业务的处理结果。若JVM暂停服务,则第一业务服务器向负载均衡服务器发送拒绝请求并返回参考暂停时间,负载均衡服务器将第一业务服务器记录在暂停列表中。然后负载均衡服务器判断当该目标业务的处理请求的发送次数是否超过次数阈值,若未超过次数阈值,则负载均衡服务器重新选择业务服务器;若超过次数阈值时,则负载均衡服务器向终端发送网络异常的请求,终端对网络异常的情况进行处理。
在本申请实施例中,如图3所示,当第一业务服务器的操作系统内核接收到负载均衡服务器发送的目标业务的处理请求时,第一业务服务器的操作系统内核不再将该目标业务的处理请求直接放入TCP缓冲区,而是将该目标业务的处理请求发送至过滤器。过滤器可以从共享内存中读取JVM的状态信息,当判断JVM正常服务时,过滤器将该目标业务的处理请求放入TCP缓冲区,由JVM读取并处理;当判断JVM暂停服务时,过滤器直接向操作系统内核发送拒绝处理目标业务的请求,操作系统内核将该拒绝请求发送至负载均衡服务器。负载均衡服务器在收到第一业务服务器的拒绝请求后,立即将该目标业务的处理请求发送到第二服务器。在此过程中,当第一业务服务器上的JVM暂停服务时,第一业务服务器直接发送拒绝请求,避免目标业务的处理请求阻塞在一台不可用的业务服务器上。此外,充分利用集群服务的性能,由负载均衡服务器快速向正常服务的业务服务器发送该目标业务的处理请求,能够有效解决目标业务的处理请求响应超时的问题。
在本申请实施例中,当基于目标业务的处理请求获取的虚拟机的状态信息指示虚拟机暂停服务时,业务服务器会主动向负载均衡服务器发送拒绝处理目标业务的请求,由负载均衡服务器将该目标业务的处理请求发送至其他业务服务器。此过程能够避免已经进入业务服务器的业务的处理请求因虚拟机暂停服务而积压,有效解决业务的处理请求响应超时的问题,有利于提高业务服务器的稳定性,业务处理的性能和效率较高。
基于上述图1所示的实施环境,本申请实施例提供一种业务处理系统,该业务处理系统包括负载均衡服务器和多个业务服务器,该业务处理系统中的负载均衡服务器和业务服务器的功能如下:
负载均衡服务器用于将目标业务的处理请求发送至第一业务服务器;
第一业务服务器用于获取目标业务的处理请求;基于目标业务的处理请求,获取虚拟机的状态信息;响应于虚拟机的状态信息指示虚拟机暂停服务,向负载均衡服务器发送拒绝请求,拒绝请求用于指示拒绝处理目标业务;
负载均衡服务器还用于响应于获取到第一业务服务器发送的拒绝请求,将目标业务的处理请求发送至第二业务服务器。
需要说明的是,负载均衡服务器和业务服务器的功能的具体实现过程详见如图2所示的方法实施例,这里不再赘述。
在本申请实施例中,当基于目标业务的处理请求获取的虚拟机的状态信息指示虚拟机暂停服务时,业务处理系统中的业务服务器向负载均衡服务器发送拒绝处理目标业务的请求,由业务处理系统中的负载均衡服务器将该目标业务的处理请求发送至其他业务服务器。此过程能够避免已经进入业务服务器的业务的处理请求因虚拟机暂停服务而积压,有效解决业务的处理请求响应超时的问题,有利于提高业务服务器的稳定性,业务处理的性能和效率较高。
基于相同技术构思,参见图6,本申请实施例提供了一种业务处理装置,该装置包括:
第一发送模块601,用于将目标业务的处理请求发送至第一业务服务器,第一业务服务器用于获取目标业务的处理请求;基于目标业务的处理请求,获取虚拟机的状态信息;响应于虚拟机的状态信息指示虚拟机暂停服务,向负载均衡服务器发送拒绝请求,拒绝请求用于指示拒绝处理目标业务;
第二发送模块602,用于响应于获取到第一业务服务器发送的拒绝请求,将目标业务的处理请求发送至第二业务服务器。
可选地,参见图7,该装置还包括:
记录模块603,用于响应于获取到第一业务服务器发送的拒绝请求,将第一业务服务器记录在暂停列表中,暂停列表用于记录虚拟机暂停服务的业务服务器;
第二发送模块602,用于响应于满足发送要求,将目标业务的处理请求发送至第二业务服务器,第二业务服务器为未记录在暂停列表中的业务服务器。
可选地,第二发送模块602,用于响应于目标业务的处理请求的发送次数不超过次数阈值,将目标业务的处理请求发送至第二业务服务器。
可选地,拒绝请求包括参考暂停时间,参加图7,该装置还包括:
删除模块604,用于响应于第一业务服务器在暂停列表中的记录时间超过参考暂停时间,将第一业务服务器从暂停列表中删除。
删除模块604,还用于响应于获取到第一业务服务器的心跳信息,将第一业务服务器从暂停列表中删除,第一业务服务器的心跳信息用于指示第一业务服务器的虚拟机恢复服务。
在本申请实施例中,当基于目标业务的处理请求获取的虚拟机的状态信息指示虚拟机暂停服务时,业务服务器会主动向负载均衡服务器发送拒绝处理目标业务的请求,由负载均衡服务器将该目标业务的处理请求发送至其他业务服务器。此过程能够避免已经进入业务服务器的业务的处理请求因虚拟机暂停服务而积压,有效解决业务的处理请求响应超时的问题,有利于提高业务服务器的稳定性,业务处理的性能和效率较高。
参见图8,本申请实施例还提供了一种业务处理装置,该装置包括:
第一获取模块801,用于获取目标业务的处理请求;
第二获取模块802,用于基于目标业务的处理请求,获取虚拟机的状态信息;
发送模块803,用于响应于虚拟机的状态信息指示虚拟机暂停服务,向负载均衡服务器发送拒绝请求,拒绝请求用于指示拒绝处理目标业务,负载均衡服务器用于响应于获取到第一业务服务器发送的拒绝请求,将目标业务的处理请求发送至第二业务服务器。
可选地,参见图9,该装置还包括:
存储模块804,用于将虚拟机的状态信息存储到共享内存中;
调用模块805,用于基于目标业务的处理请求,调用过滤器;
第二获取模块802,用于由过滤器在共享内存中获取虚拟机的状态信息。
可选地,存储模块804,用于每隔第一时间的间隔,将未暂停服务的虚拟机的更新后的状态信息存储到共享内存中,删除更新前的状态信息。
可选地,虚拟机的状态信息包括虚拟机的运行状态;
发送模块803,用于响应于虚拟机的运行状态为暂停运行,向负载均衡服务器发送拒绝请求。
可选地,虚拟机的状态信息包括虚拟机的时间戳,参见图10,该装置还包括:
第三获取模块806,用于获取当前时间戳;
发送模块803,用于响应于当前时间戳与虚拟机的时间戳的差值超过第一阈值,向负载均衡服务器发送拒绝请求。
可选地,参见图10,该装置还包括:
触发模块807,用于响应于虚拟机的新生代目标区域的内存使用率超过第二阈值,等待第二时间或者等待当前业务处理结束,触发虚拟机的新生代垃圾收集。
可选地,触发模块807,用于在虚拟机的新生代目标区域内新建临时对象,直至虚拟机的新生代目标区域的内存使用率超过第三阈值,自动触发虚拟机的新生代垃圾收集;或者,提供触发虚拟机的新生代垃圾收集的接口,基于对接口的触发指令,触发虚拟机的新生代垃圾收集。
在本申请实施例中,当基于目标业务的处理请求获取的虚拟机的状态信息指示虚拟机暂停服务时,业务服务器会主动向负载均衡服务器发送拒绝处理目标业务的请求,由负载均衡服务器将该目标业务的处理请求发送至其他业务服务器。此过程能够避免已经进入业务服务器的业务的处理请求因虚拟机暂停服务而积压,有效解决业务的处理请求响应超时的问题,有利于提高业务服务器的稳定性,业务处理的性能和效率较高。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是本发明实施例提供的一种服务器的结构示意图,该服务器可以是指负载均衡服务器,也可以是指业务服务器。该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing units,CPU)1101和一个或多个存储器1102,其中,该一个或多个存储器1102中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器1101加载并执行,以实现上述各个方法实施例提供的业务处理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由计算机设备的处理器加载并执行,以实现上述任一种业务处理方法。
可选地,上述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种业务处理方法,其特征在于,所述方法应用于业务处理系统,所述业务处理系统包括负载均衡服务器和多个业务服务器,所述方法包括:
将目标业务的处理请求发送至第一业务服务器,所述第一业务服务器用于获取目标业务的处理请求;基于所述目标业务的处理请求,获取虚拟机的状态信息;响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务;
响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
2.根据权利要求1所述的方法,其特征在于,所述响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器,包括:
响应于获取到所述第一业务服务器发送的拒绝请求,将所述第一业务服务器记录在暂停列表中,所述暂停列表用于记录虚拟机暂停服务的业务服务器;
响应于满足发送要求,将所述目标业务的处理请求发送至第二业务服务器,所述第二业务服务器为未记录在所述暂停列表中的业务服务器。
3.根据权利要求2所述的方法,其特征在于,所述响应于满足发送要求,将所述目标业务的处理请求发送至第二业务服务器,包括:
响应于所述目标业务的处理请求的发送次数不超过次数阈值,将所述目标业务的处理请求发送至第二业务服务器。
4.根据权利要求2所述的方法,其特征在于,所述拒绝请求包括参考暂停时间,所述将所述第一业务服务器记录在暂停列表中之后,还包括:
响应于所述第一业务服务器在所述暂停列表中的记录时间超过参考暂停时间,将所述第一业务服务器从所述暂停列表中删除。
5.根据权利要求2所述的方法,其特征在于,所述将所述第一业务服务器记录在暂停列表中之后,还包括:
响应于获取到所述第一业务服务器的心跳信息,将所述第一业务服务器从所述暂停列表中删除,所述第一业务服务器的心跳信息用于指示所述第一业务服务器的虚拟机恢复服务。
6.一种业务处理方法,其特征在于,所述方法应用于业务处理系统,所述业务处理系统包括负载均衡服务器和多个业务服务器,所述方法包括:
获取目标业务的处理请求;
基于所述目标业务的处理请求,获取虚拟机的状态信息;
响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务,所述负载均衡服务器用于响应于获取到第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
7.根据权利要求6所述的方法,其特征在于,所述基于所述目标业务的处理请求,获取虚拟机的状态信息之前,还包括:
将虚拟机的状态信息存储到共享内存中;
所述基于所述目标业务的处理请求,获取虚拟机的状态信息,包括:
基于所述目标业务的处理请求,调用过滤器;
由所述过滤器在所述共享内存中获取虚拟机的状态信息。
8.根据权利要求7所述的方法,其特征在于,所述将虚拟机的状态信息存储到共享内存中,包括:
每隔第一时间的间隔,将未暂停服务的虚拟机的更新后的状态信息存储到共享内存中,删除更新前的状态信息。
9.根据权利要求6所述的方法,其特征在于,所述虚拟机的状态信息包括虚拟机的运行状态;
所述响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,包括:
响应于所述虚拟机的运行状态为暂停运行,向负载均衡服务器发送拒绝请求。
10.根据权利要求6所述的方法,其特征在于,所述虚拟机的状态信息包括虚拟机的时间戳;所述响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,包括:
获取当前时间戳;
响应于所述当前时间戳与所述虚拟机的时间戳的差值超过第一阈值,向负载均衡服务器发送拒绝请求。
11.根据权利要求6-10任一所述的方法,其特征在于,所述方法,还包括:
响应于虚拟机的新生代目标区域的内存使用率超过第二阈值,等待第二时间或者等待当前业务处理结束,触发虚拟机的新生代垃圾收集。
12.根据权利要求11所述的方法,其特征在于,所述触发虚拟机的新生代垃圾收集,包括:
在所述虚拟机的新生代目标区域内新建临时对象,直至所述虚拟机的新生代目标区域的内存使用率超过第三阈值,自动触发虚拟机的新生代垃圾收集;或者,
提供触发虚拟机的新生代垃圾收集的接口,基于对所述接口的触发指令,触发虚拟机的新生代垃圾收集。
13.一种业务处理系统,其特征在于,所述业务处理系统包括负载均衡服务器和多个业务服务器,
所述负载均衡服务器用于将目标业务的处理请求发送至第一业务服务器;
所述第一业务服务器用于获取所述目标业务的处理请求;基于所述目标业务的处理请求,获取虚拟机的状态信息;响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向所述负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务;
所述负载均衡服务器还用于响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
14.一种业务处理装置,其特征在于,所述装置包括:
第一发送模块,用于将目标业务的处理请求发送至第一业务服务器,所述第一业务服务器用于获取目标业务的处理请求;基于所述目标业务的处理请求,获取虚拟机的状态信息;响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务;
第二发送模块,用于响应于获取到所述第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
15.一种业务处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标业务的处理请求;
第二获取模块,用于基于所述目标业务的处理请求,获取虚拟机的状态信息;
发送模块,用于响应于所述虚拟机的状态信息指示所述虚拟机暂停服务,向负载均衡服务器发送拒绝请求,所述拒绝请求用于指示拒绝处理所述目标业务,所述负载均衡服务器用于响应于获取到第一业务服务器发送的拒绝请求,将所述目标业务的处理请求发送至第二业务服务器。
16.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1至5任一所述的业务处理方法,或者如权利要求6至12任一所述的业务处理方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至5任一所述的业务处理方法,或者如权利要求6至12任一所述的业务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910777975.8A CN110442432B (zh) | 2019-08-22 | 2019-08-22 | 业务处理方法、系统、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910777975.8A CN110442432B (zh) | 2019-08-22 | 2019-08-22 | 业务处理方法、系统、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442432A true CN110442432A (zh) | 2019-11-12 |
CN110442432B CN110442432B (zh) | 2022-04-05 |
Family
ID=68437070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910777975.8A Active CN110442432B (zh) | 2019-08-22 | 2019-08-22 | 业务处理方法、系统、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442432B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908802A (zh) * | 2019-11-18 | 2020-03-24 | 北京三快在线科技有限公司 | 调用服务的方法、装置、设备及存储介质 |
CN111371866A (zh) * | 2020-02-26 | 2020-07-03 | 厦门网宿有限公司 | 一种处理业务请求的方法和装置 |
CN111431959A (zh) * | 2020-02-19 | 2020-07-17 | 中国船舶工业系统工程研究院 | 一种基于发布订阅拦截器机制的服务负载均衡方法及装置 |
CN111784329A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股有限公司 | 业务数据的处理方法和装置、存储介质、电子装置 |
CN112559189A (zh) * | 2020-12-21 | 2021-03-26 | 厦门亿联网络技术股份有限公司 | 业务请求的处理方法、装置、电子设备及存储介质 |
CN112817729A (zh) * | 2021-02-24 | 2021-05-18 | 阳光人寿保险股份有限公司 | 一种数据源动态调度方法、装置、电子设备及存储介质 |
CN113722102A (zh) * | 2021-09-09 | 2021-11-30 | 北京字节跳动网络技术有限公司 | 一种内存分配方法及装置 |
CN115842637A (zh) * | 2021-08-30 | 2023-03-24 | 青岛海尔科技有限公司 | 控制请求的发送方法和装置、存储介质及电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120324443A1 (en) * | 2011-06-14 | 2012-12-20 | International Business Machines Corporation | Reducing data transfer overhead during live migration of a virtual machine |
CN102932413A (zh) * | 2012-09-26 | 2013-02-13 | 华为软件技术有限公司 | 一种计算资源分配方法、云管理平台节点和计算资源集群 |
CN104767772A (zh) * | 2014-01-03 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 一种处理请求信息的方法及装置 |
US20160070593A1 (en) * | 2014-09-10 | 2016-03-10 | Oracle International Corporation | Coordinated Garbage Collection in Distributed Systems |
CN105991750A (zh) * | 2015-03-05 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种业务集群的业务调度方法、设备和业务集群 |
CN107291555A (zh) * | 2017-07-10 | 2017-10-24 | 上海斐讯数据通信技术有限公司 | 一种Java虚拟机的垃圾回收、负载均衡方法及系统 |
CN109669759A (zh) * | 2018-09-25 | 2019-04-23 | 深圳壹账通智能科技有限公司 | Java虚拟机的垃圾回收方法、装置、设备和存储介质 |
-
2019
- 2019-08-22 CN CN201910777975.8A patent/CN110442432B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120324443A1 (en) * | 2011-06-14 | 2012-12-20 | International Business Machines Corporation | Reducing data transfer overhead during live migration of a virtual machine |
CN102932413A (zh) * | 2012-09-26 | 2013-02-13 | 华为软件技术有限公司 | 一种计算资源分配方法、云管理平台节点和计算资源集群 |
CN104767772A (zh) * | 2014-01-03 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 一种处理请求信息的方法及装置 |
US20160070593A1 (en) * | 2014-09-10 | 2016-03-10 | Oracle International Corporation | Coordinated Garbage Collection in Distributed Systems |
CN105991750A (zh) * | 2015-03-05 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种业务集群的业务调度方法、设备和业务集群 |
CN107291555A (zh) * | 2017-07-10 | 2017-10-24 | 上海斐讯数据通信技术有限公司 | 一种Java虚拟机的垃圾回收、负载均衡方法及系统 |
CN109669759A (zh) * | 2018-09-25 | 2019-04-23 | 深圳壹账通智能科技有限公司 | Java虚拟机的垃圾回收方法、装置、设备和存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908802A (zh) * | 2019-11-18 | 2020-03-24 | 北京三快在线科技有限公司 | 调用服务的方法、装置、设备及存储介质 |
CN111431959A (zh) * | 2020-02-19 | 2020-07-17 | 中国船舶工业系统工程研究院 | 一种基于发布订阅拦截器机制的服务负载均衡方法及装置 |
CN111431959B (zh) * | 2020-02-19 | 2022-10-21 | 中国船舶工业系统工程研究院 | 一种基于发布订阅拦截器机制的服务负载均衡方法及装置 |
CN111371866A (zh) * | 2020-02-26 | 2020-07-03 | 厦门网宿有限公司 | 一种处理业务请求的方法和装置 |
CN111784329A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股有限公司 | 业务数据的处理方法和装置、存储介质、电子装置 |
CN111784329B (zh) * | 2020-06-30 | 2024-04-05 | 京东科技控股股份有限公司 | 业务数据的处理方法和装置、存储介质、电子装置 |
CN112559189A (zh) * | 2020-12-21 | 2021-03-26 | 厦门亿联网络技术股份有限公司 | 业务请求的处理方法、装置、电子设备及存储介质 |
CN112817729A (zh) * | 2021-02-24 | 2021-05-18 | 阳光人寿保险股份有限公司 | 一种数据源动态调度方法、装置、电子设备及存储介质 |
CN115842637A (zh) * | 2021-08-30 | 2023-03-24 | 青岛海尔科技有限公司 | 控制请求的发送方法和装置、存储介质及电子装置 |
CN113722102A (zh) * | 2021-09-09 | 2021-11-30 | 北京字节跳动网络技术有限公司 | 一种内存分配方法及装置 |
CN113722102B (zh) * | 2021-09-09 | 2023-08-04 | 抖音视界有限公司 | 一种内存分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110442432B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442432A (zh) | 业务处理方法、系统、装置、设备及存储介质 | |
CN109873736A (zh) | 一种微服务监控方法及系统 | |
CN108712501B (zh) | 信息的发送方法、装置、计算设备以及存储介质 | |
CN111338773B (zh) | 一种分布式定时任务调度方法、调度系统及服务器集群 | |
US8719780B2 (en) | Application server with a protocol-neutral programming model for developing telecommunications-based applications | |
US8615580B2 (en) | Message publication feedback in a publish/subscribe messaging environment | |
CN109542659A (zh) | 应用多活方法、设备、数据中心集群及可读存储介质 | |
WO2012097588A1 (zh) | 数据存储方法、设备和系统 | |
CN106331065A (zh) | 一种用于具有服务容器的主机系统的代理应用以及系统 | |
CN111757353B (zh) | 5g核心网中的网络数据处理方法及装置 | |
CN111209364A (zh) | 一种基于众包地图更新的海量数据接入处理方法及系统 | |
US9703638B2 (en) | System and method for supporting asynchronous invocation in a distributed data grid | |
CN113468221A (zh) | 一种基于kafka消息数据总线的系统集成方法 | |
CN113014608A (zh) | 一种流量分发控制方法、装置、电子设备及存储介质 | |
CN113641410A (zh) | 一种基于Netty的高性能网关系统的处理方法及系统 | |
CN112632093A (zh) | 工单处理方法、设备、系统、存储介质及程序产品 | |
CN117061535A (zh) | 多活构架数据同步方法、装置、计算机设备和存储介质 | |
CN115102999B (zh) | DevOps系统、服务提供方法、存储介质和电子装置 | |
CN207939557U (zh) | 一种数据采集统计硬件平台 | |
CN114900449B (zh) | 一种资源信息管理方法、系统及装置 | |
CN104468674B (zh) | 数据迁移方法及装置 | |
US20150356117A1 (en) | Eventual consistency to resolve subscriber sharing relationships in a distributed system | |
CN103746839B (zh) | PaaS系统和PaaS应用池中的VM节点调度方法 | |
CN113794755A (zh) | 基于微服务架构的共享服务推送方法及系统 | |
CN113220730B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221027 Address after: 1311, Floor 13, No. 27, Zhongguancun Street, Haidian District, Beijing 100080 Patentee after: QIANDAI (BEIJING) INFORMATION TECHNOLOGY CO.,LTD. Patentee after: BEIJING SANKUAI ONLINE TECHNOLOGY Co.,Ltd. Address before: 100080 2106-030, 9 North Fourth Ring Road, Haidian District, Beijing. Patentee before: BEIJING SANKUAI ONLINE TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |