CN116743754A - 信息处理方法、装置、服务器集群、电子设备和介质 - Google Patents

信息处理方法、装置、服务器集群、电子设备和介质 Download PDF

Info

Publication number
CN116743754A
CN116743754A CN202310774753.7A CN202310774753A CN116743754A CN 116743754 A CN116743754 A CN 116743754A CN 202310774753 A CN202310774753 A CN 202310774753A CN 116743754 A CN116743754 A CN 116743754A
Authority
CN
China
Prior art keywords
server
information
broadcast
response
broadcasting
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.)
Pending
Application number
CN202310774753.7A
Other languages
English (en)
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310774753.7A priority Critical patent/CN116743754A/zh
Publication of CN116743754A publication Critical patent/CN116743754A/zh
Pending legal-status Critical Current

Links

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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Landscapes

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

Abstract

提供了一种信息处理方法、装置、电子设备和介质,可以应用于信息处理和云计算技术领域。所述方法包括:获取来自客户端的交易请求;获取第一服务器对应的线程池的当前使用率,并比较当前使用率与使用率阈值;响应于当前使用率超过使用率阈值,根据交易请求,生成广播信息,并向多个其他服务器广播广播信息;获取第二服务器针对广播信息的应答信息;根据应答信息,将交易请求转发给第二服务器;获取第二服务器对交易请求的处理结果,并将处理结果反馈给客户端。当某个服务器的线程池使用率较高时,能够通过广播机制动态将交易请求分派到资源较为空闲的服务器处理,达到了动态调整负载的目的,有利于业务系统通过负载再分配快速达到资源利用的均衡。

Description

信息处理方法、装置、服务器集群、电子设备和介质
技术领域
本发明涉及信息处理技术领域和云计算技术领域,更具体地涉及一种信息处理方法、装置、服务器集群、电子设备和介质。
背景技术
线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程所带来的资源消耗。应用服务器主要依赖线程池资源来处理客户端请求,线程池资源属于本服务器的专用资源,其容量一定程度上决定了应用服务器处理客户端请求的性能容量,线程池的大小一般通过模拟性能测试进行预估,在业务系统上线前完成配置。
目前,主流的应用服务器均不支持动态扩展线程池资源,当出现交易流量突增或交易流量分配不均造成个别服务器线程池资源紧张甚至用尽时,受限于负载均衡策略,无法第一时间将交易流量更多地分配到空闲服务器上,缺少这种动态调整负载的能力导致应用服务器应急能力较弱。
在本部分中公开的以上信息仅用于对本发明的发明构思的背景的理解,因此,以上信息可包含不构成现有技术的信息。
发明内容
鉴于上述问题,根据本发明的第一方面,本发明的实施例提供了一种信息处理方法,应用于第一服务器,所述方法包括:
获取来自客户端的交易请求;
获取所述第一服务器对应的线程池的当前使用率,并比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值;
响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器;
获取第二服务器针对所述广播信息的应答信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器;
根据所述应答信息,将所述交易请求转发给所述第二服务器;以及
获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。
根据一些示例性的实施例,所述第一服务器和所述多个其他服务器属于同一个服务器列表;
所述方法还包括:发送所述第一服务器的注册信息,所述注册信息包括服务器类型、服务器IP地址和服务器UDP端口;和获取服务器列表,所述服务器列表包括多个服务器的服务器类型、服务器IP地址和服务器UDP端口,在所述服务器列表中,所述多个服务器的服务器类型相同,其中,所述多个服务器包括第一服务器和所述多个其他服务器。
根据一些示例性的实施例,所述向不同于所述第一服务器的多个其他服务器广播所述广播信息包括:根据所述服务器列表中的多个其他服务器的服务器IP地址和服务器UDP端口,广播所述广播信息。
根据一些示例性的实施例,所述根据所述交易请求,生成广播信息包括:根据所述交易请求,生成广播对象,其中,所述广播对象包括交易请求对象、交易请求对象的特征值、广播对象的锁对象、广播时间、广播状态、应答对象IP地址和应答对象端口。其中,所述交易请求对象的特征值为所述广播信息的一部分。
根据一些示例性的实施例,在向不同于所述第一服务器的多个其他服务器广播所述广播信息后,所述方法还包括:
控制所述广播对象的锁对象进入等待状态;以及
响应于激活信号,唤醒所述广播对象的锁对象。
根据一些示例性的实施例,所述广播信息包括:所述第一服务器的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。
根据一些示例性的实施例,所述获取第二服务器针对所述广播信息的应答信息还包括:
在所述广播对象的锁对象处于等待状态中时,监听来自所述多个其他服务器的请求信息;
响应于监听到来自所述多个其他服务器的请求信息,获取该请求信息;
判断所述请求信息是否为应答信息;以及
响应于所述请求信息为应答信息,获取所述第二服务器针对所述广播信息的应答信息,其中,所述应答信息包括所述第二服务器的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。
根据一些示例性的实施例,所述获取第二服务器针对所述广播信息的应答信息还包括:
根据所述应答信息中的交易请求对象的特征值,确定与该特征值对应的广播对象;以及
根据所述应答信息,给所述广播对象中的应答对象IP地址和应答对象端口赋值。
根据一些示例性的实施例,所述响应于激活信号,唤醒所述广播对象的锁对象,包括:响应于给所述广播对象中的应答对象IP地址和应答对象端口赋值,向所述广播对象的锁对象发送第一激活信号,以唤醒所述广播对象的锁对象。
根据一些示例性的实施例,所述方法还包括:
根据所述广播对象中的广播时间,判断本次广播是否为超时广播;以及
响应于本次广播为超时广播,将所述广播对象中的广播状态置为超时状态。
根据一些示例性的实施例,所述响应于激活信号,唤醒所述广播对象的锁对象,包括:
响应于将所述广播对象中的广播状态置为超时状态,向所述广播对象的锁对象发送第二激活信号,以唤醒所述广播对象的锁对象。
根据一些示例性的实施例,所述方法还包括:
响应于所述请求信息不是应答信息,判断所述请求信息是否为广播信息;
响应于所述请求信息为广播信息,评估所述第一服务器对应的线程池的当前使用率;以及
响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,不响应所述请求信息。
根据一些示例性的实施例,所述响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,具体包括:
响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,获取所述交易请求的请求头;
响应于所述交易请求的请求头中包括广播次数字段,比较所述交易请求中的广播次数字段的值与广播次数阈值;以及
响应于所述交易请求中的广播次数字段的值未超过所述广播次数阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
根据一些示例性的实施例,所述响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,还具体包括:
响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,获取所述交易请求的请求头;以及
响应于所述交易请求的请求头中不包括广播次数字段,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
根据一些示例性的实施例,在响应于激活信号,唤醒所述广播对象的锁对象之后,所述方法还包括:
检查所述广播对象中的广播状态;
响应于所述广播对象中的广播状态不是超时状态,获取所述交易请求的请求头;
检查所述交易请求的请求头中是否包括广播次数字段;
响应于所述交易请求的请求头中不包括广播次数字段,在所述交易请求的请求头中增加广播次数字段,并将所述广播次数字段的值置为1;以及
响应于所述交易请求的请求头中包括广播次数字段,将所述交易请求中的广播次数字段的值加一。
根据本发明的第二方面,还提供一种信息处理方法,应用于第二服务器,所述方法包括:
监听来自多个其他服务器的请求信息,其中,所述多个其他服务器为与所述第二服务器处于同一个服务器集群中且与所述第二服务器的类型相同的服务器;
响应于监听到来自所述多个其他服务器中的第一服务器的请求信息,获取该请求信息,其中,所述第一服务器为所述多个其他服务器中的一个服务器;
判断所述请求信息是否为广播信息;
响应于所述请求信息为广播信息,评估所述第二服务器对应的线程池的当前使用率;
响应于所述第二服务器对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,向所述第一服务器发送应答信息;
接收所述第一服务器转发的交易请求;以及
对所述交易请求进行处理,并将处理结果发送给所述第一服务器。
根据本发明的第三方面,还提供一种信息处理方法,应用于包括第一服务器和第二服务器的服务器集群,所述方法包括:
所述第一服务器获取来自客户端的交易请求;
所述第一服务器获取所述第一服务器对应的线程池的当前使用率,并且所述第一服务器比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值;
响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,所述第一服务器生成广播信息,并且所述第一服务器向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器;
响应于监听到来自所述第一服务器的广播信息,所述第二服务器获取该广播信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器;
响应于所述广播信息,所述第二服务器评估所述第二服务器对应的线程池的当前使用率;
响应于所述第二服务器对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,所述第二服务器向所述第一服务器发送应答信息;
所述第一服务器获取所述第二服务器针对所述广播信息的应答信息;
根据所述应答信息,所述第一服务器将所述交易请求转发给所述第二服务器;
所述第二服务器接收所述第一服务器转发的交易请求;
所述第二服务器对所述交易请求进行处理,并将处理结果发送给所述第一服务器;以及
所述第一服务器获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。
根据本发明的第四方面,还提供一种服务器集群,所述服务器集群包括第一服务器和第二服务器,其中,所述第一服务器被配置为执行如上述第一方面所述的方法,所述第二服务器被配置为执行如上述第二方面所述的方法。
根据本发明的第五方面,还提供一种信息处理装置,应用于第一服务器上,所述装置包括:
交易请求获取模块,用于获取来自客户端的交易请求;
比较模块,用于获取所述第一服务器对应的线程池的当前使用率,并比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值;
广播模块,用于响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器;
应答信息获取模块,用于获取第二服务器针对所述广播信息的应答信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器;
转发模块,用于根据所述应答信息,将所述交易请求转发给所述第二服务器;以及
结果获取模块,用于获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。
根据本发明的第六方面,提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的方法。
根据本发明的第七方面,提供一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
根据本发明的第八方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
上述一个或多个实施例具有如下优点或有益效果:当某个服务器的线程池使用率较高时,能够通过广播机制动态将交易请求分派到资源较为空闲的服务器处理,达到了动态调整负载的目的。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本发明实施例的信息处理方法的应用场景图,其中示意性示出了一种客户端-服务器集群应用场景。
图2A示意性示出了根据本发明实施例的信息处理方法可以应用的示例性的系统架构。
图2B示意性示出了图2A所示的系统架构中的注册中心的处理流程图。
图3示意性示出了根据本发明的一些示例性实施例的信息处理方法的流程图。
图4示意性示出了根据本发明的一些示例性实施例的信息处理方法在系统中执行的泳道图。
图5示意性示出了根据本发明的一些示例性实施例的信息处理方法的流程图,所述信息处理方法可以应用于第一服务器。
图6示意性示出了根据本发明的一些示例性实施例的信息处理方法中的等待唤醒流程的流程图。
图7示意性示出了根据本发明的一些示例性实施例的信息处理方法在第一种唤醒情况下的流程图。
图8示意性示出了根据本发明的一些示例性实施例的信息处理方法在第二种唤醒情况下的流程图。
图9示意性示出了根据本发明的另一些示例性实施例的信息处理方法的流程图。
图10示意性示出了根据本发明的又一些示例性实施例的信息处理方法的流程图。
图11示意性示出了根据本发明的一些示例性实施例的信息处理方法的流程图,所述信息处理方法可以应用于第二服务器。
图12示意性示出了图2A中的系统架构中的注册单元的操作的示意性流程图。
图13示意性示出了图2A中的系统架构中的负载单元的操作的示意性流程图。
图14示意性示出了图2A中的系统架构中的广播单元的操作的示意性流程图。
图15示意性示出了根据本发明实施例的信息处理方法在各个单元上执行的泳道图。
图16示意性示出了根据本发明实施例的信息处理装置的结构框图。
图17示意性示出了根据本发明的另一些示例性实施例的信息处理装置的结构框图。
图18示意性示出了根据本发明的又一些示例性实施例的信息处理装置的结构框图。
图19示意性示出了根据本发明实施例的适于实现信息处理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本发明的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
首先,对本文中记载的技术术语作如下解释和说明。
客户端(Client),又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。因特网发展以后,较常用的用户端包括例如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,例如数据库服务、电子邮件服务等。
服务器(Server),又称为服务器端或服务端,为客户端提供“服务”,接收并储存客户端发送过来的数据或请求,并且对请求进行响应和处理,并发送数据给客户端。
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器处理更多的数据。
集群,英文名称为Cluster,集群可以理解为下面的技术:它将多个服务器通过网络连接到一起,使多个服务器能够像一台计算机那样工作或者看起来好像一台计算机。
线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程所带来的资源消耗。
广播:在同一网络可达范围内,一个网络设备向本网络内所有设备进行通信。例如,在一个服务器集群中,服务器之间一对所有的通讯模式。
HTTP:超文本传输协议(英文表述为Hyper Text Transfer Protocol,缩写为HTTP),它是一个简单的请求-响应协议,通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
IP地址(英文表述为Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(OpenSystem Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
目前,应用服务器主要依赖线程池资源来处理客户端请求,线程池资源属于本服务器的专用资源,其容量一定程度上决定了应用服务器处理客户端请求的性能容量,线程池的大小一般通过模拟性能测试进行预估,在业务系统上线前完成配置。主流的应用服务器均不支持动态扩展线程池资源,当出现交易流量突增或交易流量分配不均造成个别服务器线程池资源紧张甚至用尽时,受限于负载均衡策略,无法第一时间将交易流量更多地分配到空闲服务器上,缺少这种动态调整负载的能力导致应用服务器应急能力较弱。
基于此,本发明的实施例提供一种信息处理方法。在一些实施例中,所述信息处理方法可以应用于第一服务器,所述方法包括:获取来自客户端的交易请求;获取所述第一服务器对应的线程池的当前使用率,并比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值;响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器;获取第二服务器针对所述广播信息的应答信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器;根据所述应答信息,将所述交易请求转发给所述第二服务器;以及获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。在本发明的实施例中,当某个服务器的线程池使用率较高时,能够通过广播机制动态将交易请求分派到资源较为空闲的服务器处理,达到了动态调整负载的目的。特别有利地,对于交易请求突增或服务器扩容的情况,有利于帮助业务系统通过负载再分配快速达到资源利用的均衡。
在一些实施例中,所述信息处理方法可以应用于第二服务器,所述方法包括:监听来自多个其他服务器的请求信息,其中,所述多个其他服务器为与所述第二服务器处于同一个服务器集群中且与所述第二服务器的类型相同的服务器;响应于监听到来自所述多个其他服务器中的第一服务器的请求信息,获取该请求信息,其中,所述第一服务器为所述多个其他服务器中的一个服务器;判断所述请求信息是否为广播信息;以及响应于所述请求信息为广播信息,评估所述第二服务器对应的线程池的当前使用率;以及响应于所述第二服务器对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,向所述第一服务器发送应答信息;接收所述第一服务器转发的交易请求;以及对所述交易请求进行处理,并将处理结果发送给所述第一服务器。在本发明的实施例中,当某个服务器的线程池使用率较高时,能够通过广播机制控制资源较为空闲的服务器处理交易请求分派到,达到了动态调整负载的目的。特别有利地,对于交易请求突增或服务器扩容的情况,有利于帮助业务系统通过负载再分配快速达到资源利用的均衡。
在一些实施例中,所述信息处理方法可以应用于包括第一服务器和第二服务器的服务器集群,所述方法包括:所述第一服务器获取来自客户端的交易请求;所述第一服务器获取所述第一服务器对应的线程池的当前使用率,并且所述第一服务器比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值;响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,所述第一服务器生成广播信息,并且所述第一服务器向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器;响应于监听到来自所述第一服务器的广播信息,所述第二服务器获取该广播信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器;响应于所述广播信息,所述第二服务器评估所述第二服务器对应的线程池的当前使用率;以及响应于所述第二服务器对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,所述第二服务器向所述第一服务器发送应答信息;所述第一服务器获取所述第二服务器针对所述广播信息的应答信息;根据所述应答信息,所述第一服务器将所述交易请求转发给所述第二服务器;所述第二服务器接收所述第一服务器转发的交易请求;所述第二服务器对所述交易请求进行处理,并将处理结果发送给所述第一服务器;以及所述第一服务器获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。在本发明的实施例中,当某个服务器的线程池使用率较高时,能够通过广播机制动态将交易请求分派到资源较为空闲的服务器处理,达到了动态调整负载的目的。特别有利地,对于交易请求突增或服务器扩容的情况,有利于帮助业务系统通过负载再分配快速达到资源利用的均衡。在本发明的实施例中,突破了单台服务器资源的局限性,最大程度利用了全部服务器的负载能力,保证在个别服务器资源紧张的情况下业务处理的连续性,能够有效提高整个业务系统处理请求的成功率。
需要说明的是,本发明实施例提供的信息处理方法和装置可以应用于云计算和分布式技术领域,也可以应用于金融领域。
图1示意性示出了根据本发明实施例的信息处理方法的应用场景图,其中示意性示出了一种客户端-服务器集群应用场景。需要注意的是,图1所示仅为可以应用本发明实施例的场景的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的应用场景100可以包括终端设备(即客户端)101,网络102,和服务器103、104、105。网络102用以在终端设备101和服务器103、104、105之间以及在各个服务器103、104、105之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
用户可以使用终端设备101可以通过网络102与服务器103、104、105交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
服务器103、104、105可以是提供各种服务的服务器,例如对用户利用终端设备101所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本发明实施例所提供的信息处理方法可以由服务器103、104、105中的至少一个执行。相应地,本发明实施例所提供的信息处理装置一般可以设置于服务器103、104、105中的至少一个上。本发明实施例所提供的信息处理方法也可以由不同于服务器103、104、105且能够与终端设备101和/或服务器103、104、105通信的其他服务器或服务器集群执行。相应地,本发明实施例所提供的信息处理装置也可以设置于不同于服务器103、104、105且能够与终端设备101和/或服务器103、104、105通信的其他服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2A示意性示出了根据本发明实施例的信息处理方法可以应用的示例性的系统架构。在示例性的实施例中,所述信息处理方法可以应用于服务器集群中,例如,所述服务器集群可以具有分布式的系统架构。需要注意的是,图2A所示仅为可以应用本发明实施例的方法的系统架构的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他系统架构。
如图2A所示,根据该实施例的系统架构200可以包括多个服务器103、104、105和注册中心210。需要说明的是,图2A中示例性示出了3个服务器103~105,但这不意味着对本发明实施例中服务器数量的限制,在本发明的实施例中,服务器的数量可以是任意个,例如,可以设置2个以上的服务器,10个以上的服务器,或100个以上的服务器。本发明的实施例对服务器的数量不做特别限制。
服务器103、104、105上可以运行各种软件、应用程序或应用,服务器103、104、105之间可以通过各种方式通信连接,例如但不限于有线连接、无线连接、信令连接、通过互联网连接等。可以使用多个服务器103、104、105来实现一个或多个服务,例如但不限于金融相关的服务,每个服务可以对应一个交易。
注册中心210用于配置和管理各个服务器103、104、105。注册中心210可以包括一个或多个计算机。注册中心110可以通过各种方式与各个服务器103、104、105通信连接,包括但不限于有线连接、无线连接、信令连接、通过互联网连接等。
如图2A所示,各个服务器103、104、105可以分别包括各自的交易广播装置,具体地,所述交易广播装置可以包括注册单元220、负载单元230和广播单元240。
在实现本发明实施例提供的信息处理方法的过程中,注册中心210可以负责接收各个服务器的注册单元220上送的注册信息并进行保管,响应相同服务器类型的全部注册信息列表给各个服务器的注册单元220,定期对注册信息进行检查并清理过期信息。例如,所述注册信息可以包括服务器类型、服务器IP地址、对外服务UDP端口、上次发送存活信息时间等。
注册单元220可以负责向注册中心210注册其所在的服务器并获取同类型的服务器列表。注册单元220在其所属的服务器启动时启动,读取其所属的服务器的配置文件中的配置,定期向注册中心210注册其所属的服务器的注册信息并接收注册中心210响应的同类型的服务器列表。例如,所述配置可以包括服务器类型、对外服务HTTP端口、对外服务UDP端口、注册中心地址、广播次数阈值、广播超时时间、线程池使用率阈值、更新注册信息时间间隔等信息。
负载单元230负责拦截事件选择器接收到的交易请求,根据当前线程池使用率和请求被广播次数等进行判断是否进行交易广播,进行交易广播则分配给广播单元处理,不进行交易广播则分配给其所属的服务器处理。
广播单元240负责发送和应答广播,接收负载单元230分配的广播信息并对广播信息进行广播,接收其他服务器的广播应答信息,广播后对交易进行转发、等待处理结果并返回给负载单元230;接收到其他服务器的广播单元的广播请求后评估本服务器的线程池使用率,使用率满足要求则应答广播请求。
图2B示意性示出了图2A所示的系统架构中的注册中心的处理流程图。
结合参照图2A和图2B,注册中心210的处理流程的处理流程可以包括操作(即步骤)S201~S209。
在操作S201,启动注册中心210,读取注册中心配置文件,例如,所述注册中心配置文件可以包括HTTP端口、注册信息过期时间、检查时间间隔等信息。
在操作S202,按照配置的HTTP端口启动HTTP监听程序。
在操作S203,启动注册信息管理线程,按照配置的注册信息过期时间和检查时间进行注册信息检查。
在操作S204,注册中心210接收各个服务器103、104、105的注册单元220发送的注册信息。
例如,所述注册信息可以包括服务器类型、服务器IP、对外服务UDP端口、上次发送存活信息时间等信息。
在操作S205,更新服务器列表。具体地,可以根据上送的注册信息中的服务器类型和服务器IP,在服务器列表中查找是否存在已注册信息,如果存在,则使用本次接收时间对上次发送存活信息时间字段进行更新;如果不存在,则按上送的注册信息中的服务器类型将注册信息分类存储,同时记录本次上送时间。
在操作S206,按照上送的注册信息中的服务器类型获取同类型的服务器的全部注册信息,以响应请求的方式返回给注册单元220。
在操作S207,注册信息管理线程定时逐条检查已注册服务器列表中的注册信息。
在操作S208,计算当前时间到每条注册信息的上次发送存活信息时间的时间间隔,如果时间间隔大于注册信息过期时间,则删除此条注册信息;如果时间间隔小于注册信息过期时间,则不做处理。
在操作S209,本次检查完毕后,按照配置的检查时间间隔进行休眠。
在本发明的实施例中,通过上述注册流程,可以定时更新服务器列表中各个服务器的注册信息,保证各个服务器的注册信息保持在最新状态,特别有利地,可以定时更新同类型的服务器列表,有利于后期的信息广播。
以下将基于图1描述的应用场景和图2A和图2B描述的系统架构,通过图3~图15对本发明的实施例提供的信息处理方法进行详细描述。
图3示意性示出了根据本发明的一些示例性实施例的信息处理方法的流程图。图4示意性示出了根据本发明的一些示例性实施例的信息处理方法在系统中执行的泳道图。
如图3和图4所示,根据该实施例的信息处理方法300可以包括操作S301~操作S311。信息处理方法300可以应用于图1和图2A所示的服务器集群中。
需要说明的是,所述服务器集群可以包括n个服务器,n为大于等于2的正整数。在下面的实施例中,为了方便描述,示例性地描述2个服务器,2个服务器分别表述为第一服务器和第二服务器,其中,所述第一服务器作为发出广播的服务器的示例,所述第二服务器作为应答广播的服务器的示例。但是,这样的描述不能理解为对本发明实施例的限制。在其他实施例中,在所述服务器集群中,可以包括多个发出广播的服务器和多个应答广播的服务器。例如,在所述服务器集群中,每一个服务器可以既作为发出广播的服务器,同时又作为应答广播的服务器。
示例性地,如图1和图2A所示,服务器103可以为第一服务器,服务器104可以为第二服务器。
在操作S301,第一服务器103获取来自客户端101的交易请求。需要说明的是,此处的“交易请求”表示客户端发送给服务器处理的任何请求,例如,可以包括一笔支付交易请求、数据处理请求、信息提供请求。
具体地,客户端101可以发出交易请求,第一服务器103的负载单元230可以拦截到事件选择器接收到的交易请求。例如,所述事件选择器可以为NIO Selector。在Java中,NIO表示同步非阻塞,服务器实现模式为一个线程处理多个请求,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理。一个线程中可以调用多路复用器(例如,Java中包括Selector)监听来自多个客户端的I/O请求,一旦有收到I/O请求就调用对应函数处理,NIO擅长1个线程管理多个请求,有利于节约系统资源。
在操作S302,所述第一服务器103获取所述第一服务器103对应的线程池的当前使用率,并且所述第一服务器103比较所述第一服务器103对应的线程池的当前使用率与所述第一服务器103对应的线程池的使用率阈值。
在本发明的实施例中,每一个服务器都有其各自对应的线程池,且可以实时监控其对应的线程池的当前使用率。与CPU使用率、内存使用率类似,线程池的当前使用率可以用百分比表示。
示例性地,可以为每一个服务器对应的线程池设置线程池的使用率阈值,线程池的使用率阈值可以根据服务器的应用场景具体设置,例如,所述线程池的使用率阈值可以设置为60%、70%、75%、80%、90%或95%等。
在操作S303,响应于所述第一服务器103对应的线程池的当前使用率超过所述第一服务器103对应的线程池的使用率阈值,根据所述交易请求,所述第一服务器103生成广播信息,并且所述第一服务器103向不同于所述第一服务器103的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器103处于同一个服务器集群中且与所述第一服务器103的类型相同的服务器。
例如,在图1和图2A所示的实施例中,服务器103~105可以处于同一个服务器集群中。
再例如,在网络环境下,根据服务器提供的服务类型不同,服务器可以分为文件服务器、数据库服务器、应用程序服务器、web服务器等类型。在一些示例性的实施例中,在图1和图2A所示的实施例中,服务器103~105可以处于同一个服务器集群中,且服务器103~105的类型可以相同,例如,它们均为应用程序服务器。在该实施例中,服务器104、105为与所述第一服务器103处于同一个服务器集群中且与所述第一服务器103的类型相同的服务器。
在该操作中,经过比较,判断出所述第一服务器103对应的线程池的当前使用率超过所述第一服务器103对应的线程池的使用率阈值,预估第一服务器103的资源不足以能够处理所述交易请求。在这种情况下,第一服务器103需要将该交易请求的信息广播出去,寻找资源相对空闲的服务器来处理所述交易请求。
在本发明的一些示例性实施例中,所述广播信息可以包括:所述第一服务器103的服务器IP地址,服务器UDP端口,和交易请求对象的特征值。例如,交易请求对象的特征值可以是16位的随机码。
在该实施例中,所述广播信息仅包括服务器IP地址、服务器UDP端口和交易请求对象的特征值,并不包括交易请求本身。交易请求本身包括的信息的数据量较大,如果直接将其进行广播,会占用较多的网络带宽。服务器IP地址、服务器UDP端口和交易请求对象的特征值这些信息的数据量较小,在该实施例中,将其作为广播信息进行广播,有利于节约网络资源。
在操作S304,响应于监听到来自所述第一服务器103的广播信息,所述第二服务器104获取该广播信息,其中,所述第二服务器104为所述多个其他服务器中的一个服务器。
例如,第二服务器104可以按照配置的对外服务的UDP端口启动UDP监听,当监听到来自第一服务器103的广播信息,第二服务器104获取该广播信息。
具体地,在所述服务器集群中,所述其他多个服务器均按照各自配置的对外服务的UDP端口启动UDP监听,当监听到来自第一服务器103的广播信息,包括第二服务器104在内的各个服务器均获取该广播信息。在这种情况下,第一服务器103可以选择最先给出应答信息的一个服务器,后续将交易请求转发给该服务器。例如,第二服务器104是最先给出应答信息的一个服务器。
在操作S305,响应于所述广播信息,所述第二服务器104评估所述第二服务器104对应的线程池的当前使用率。
在操作S306,响应于所述第二服务器104对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,所述第二服务器104向所述第一服务器103发送应答信息。
在本发明的实施例中,在第二服务器104获取到广播信息后,会对其对应的线程池的当前使用率进行评估。在第二服务器104对应的线程池的当前使用率未超过第二服务器104对应的线程池的使用率阈值时,第二服务器104才向第一服务器103发送应答信息。在第二服务器104对应的线程池的当前使用率超过第二服务器104对应的线程池的使用率阈值时,第二服务器104不向第一服务器103发送应答信息,即,第二服务器104不响应第一服务器103发出的广播信息。
示例性地,第二服务器104对应的线程池的使用率阈值可以根据服务器的应用场景具体设置,例如,第二服务器104对应的线程池的使用率阈值可以设置为60%、70%、75%、80%、90%或95%等。
在一些示例性的实施例中,在第二服务器104对应的线程池的当前使用率小于第二服务器104对应的线程池的使用率阈值一个预设值时,第二服务器104才向第一服务器103发送应答信息。例如,所述预设值可以为10%、20%、30%、40%等。也就是说,第二服务器104对应的线程池的当前使用率不仅小于第二服务器104对应的线程池的使用率阈值,且第二服务器104对应的线程池的当前使用率远低于第二服务器104对应的线程池的使用率阈值,即,第二服务器104对应的线程池有充足的空闲资源,此时,第二服务器104才向第一服务器103发送应答信息。
在该实施例中,通过对第二服务器的空闲资源进行评估,可以确保给出应答信息的服务器有充足的空闲资源来处理所述交易请求,从而可以避免所述交易请求在各个服务器之间多次转发或反复转发的现象。以此方式,可以提高对交易请求的处理效率。
如上所述,所述广播信息可以包括:第一服务器103的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。在第二服务器104对应的线程池的当前使用率小于第二服务器104对应的线程池的使用率阈值一个预设值时,第二服务器104可以根据所述广播信息生成一个应答信息,然后根据所述广播信息中的第一服务器103的服务器IP地址和服务器UDP端口,将所述应答信息发送给第一服务器103。
在操作S307,所述第一服务器103获取所述第二服务器104针对所述广播信息的应答信息。
示例性地,所述应答信息可以包括所述第二服务器104的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。具体地,第二服务器104可以根据所述广播信息生成一个应答信息,所述广播信息包括所述交易请求对象的特征值,在生成所述应答信息时,可以将所述交易请求对象的特征值加入所述应答信息中。这样,通过所述交易请求对象的特征值这个媒介,第一服务器103可以判断出第二服务器104反馈回的应答信息具体针对的交易请求。
在操作S308,根据所述应答信息,所述第一服务器103将所述交易请求转发给所述第二服务器104。
在本发明的实施例中,所述应答信息可以包括第二服务器104的服务器IP地址和服务器UDP端口。当第一服务器103接收到来自第二服务器104的应答信息时,说明第二服务器104对应的线程池具有空闲资源,可以处理所述交易请求,在此情况下,第一服务器103根据接收到的应答信息中包括的第二服务器104的服务器IP地址和服务器UDP端口,将所述交易请求转发给第二服务器104,以便第二服务器104处理所述交易请求。
在本发明的实施例中,在第一服务器103对应的线程池没有足够的资源处理来自客户端的交易请求的情况下,首先,通过广播机制,将交易请求的特征信息进行一对多的广播,例如,此处的“交易请求的特征信息”可以包括交易请求对象的特征值;然后,在接收到具有空闲资源的某一服务器的应答后,通过转发机制,将交易请求进行一对一的传输,以便具有空闲资源的某一服务器处理所述交易请求。所述交易请求的数据量大于所述交易请求的特征信息的数据量,所以,在本发明的实施例中,在前期的广播机制中,一对多广播的是数据量较小的所述交易请求的特征信息;在后期的转发机制中,一对一传输的是数据量较大的所述交易请求。通过采用广播+转发的机制,有利于减小对网络带宽的占用量,从而有利于节约网络资源,提高整体处理效率。
在操作S309,所述第二服务器104接收所述第一服务器103转发的交易请求。
在操作S310,所述第二服务器104对所述交易请求进行处理,并将处理结果发送给所述第一服务器103。
在操作S311,所述第一服务器103获取所述第二服务器104对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端101。
在本发明的实施例中,由于在之前的广播阶段已经确定第二服务器104有足够的空闲资源处理交易请求,并且,第二服务器104和第一服务器103是同类型的服务器,所以,第二服务器104在接收到第一服务器103转发的交易请求后,可以直接对所述交易请求进行处理,在处理完成后,直接将处理结果发送给第一服务器103。通过这样的机制设计,可以使得第二服务器104在接收到交易请求后立即处理该交易请求,有利于提高响应速度,也就是说,第一服务器103等待第二服务器104返回处理结果的时间较短,这样,有利于提高整个服务器集群的整体处理效率。
在本发明的实施例中,当某个服务器的线程池使用率较高时,能够通过广播机制动态将交易请求分派到资源较为空闲的服务器处理,达到了动态调整负载的目的。特别有利地,对于交易请求突增或服务器扩容的情况,有利于帮助业务系统通过负载再分配快速达到资源利用的均衡。在本发明的实施例中,突破了单台服务器资源的局限性,最大程度利用了全部服务器的负载能力,保证在个别服务器资源紧张的情况下业务处理的连续性,能够有效提高整个业务系统处理请求的成功率。
图5示意性示出了根据本发明的一些示例性实施例的信息处理方法的流程图,所述信息处理方法可以应用于第一服务器。
如图5所示,根据该实施例的信息处理方法500可以包括操作S501~操作S506。信息处理方法500可以应用于图1和图2A所示的第一服务器,也就是说,信息处理方法500可以应用于发出广播信息的服务器。
在操作S501,获取来自客户端101的交易请求。
需要说明的是,此处的“交易请求”表示客户端发送给服务器处理的任何请求,例如,可以包括一笔支付交易请求、数据处理请求、信息提供请求。
具体地,第一服务器103的负载单元230可以拦截到事件选择器接收到的交易请求。例如,所述事件选择器可以为NIO Selector。
在操作S502,获取所述第一服务器103对应的线程池的当前使用率,并比较所述第一服务器103对应的线程池的当前使用率与所述第一服务器103对应的线程池的使用率阈值。
在操作S503,响应于所述第一服务器103对应的线程池的当前使用率超过所述第一服务器103对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器103处于同一个服务器集群中且与所述第一服务器103的类型相同的服务器。
在本发明的一些示例性实施例中,所述广播信息可以包括:所述第一服务器103的服务器IP地址,服务器UDP端口,和交易请求对象的特征值。例如,交易请求对象的特征值可以是16位的随机码。
在本发明的一些示例性实施例中,在操作S503中,所述根据所述交易请求,生成广播信息包括:根据所述交易请求,生成广播对象,其中,所述广播对象包括交易请求对象、交易请求对象的特征值、广播对象的锁对象、广播时间、广播状态、应答对象IP地址和应答对象端口。
在本文中,表述“对象”可以理解为现实世界中对象的一种呈现,具体地,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。例如,交易请求对象可以理解为描述交易请求属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体,广播对象可以理解为描述广播信息的属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体,应答对象可以理解为描述应答服务器的属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体,广播对象的锁对象可以理解为描述广播对象的锁的属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
在该实施例中,通过对象的方式将与广播相关的信息进行封装,有利于对与广播相关的信息的管理和更新,从而有利于广播机制的实现。
在该实施例中,所述广播信息仅包括服务器IP地址、服务器UD P端口和交易请求对象的特征值,并不包括交易请求本身。交易请求本身包括的信息的数据量较大,如果直接将其进行广播,会占用较多的网络带宽。服务器IP地址、服务器UDP端口和交易请求对象的特征值这些信息的数据量较小,在该实施例中,将其作为广播信息进行广播,有利于节约网络资源。
在操作S504,获取第二服务器104针对所述广播信息的应答信息,其中,所述第二服务器104为所述多个其他服务器中的一个服务器。
在本发明的一些示例性实施例中,所述应答信息可以包括所述第二服务器104的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。具体地,第二服务器104可以根据所述广播信息生成一个应答信息,所述广播信息包括所述交易请求对象的特征值,在生成所述应答信息时,可以将所述交易请求对象的特征值加入所述应答信息中。这样,通过所述交易请求对象的特征值这个媒介,第一服务器103可以判断出第二服务器104反馈回的应答信息具体针对的交易请求。
在操作S505,根据所述应答信息,将所述交易请求转发给所述第二服务器1 04。
在本发明的实施例中,所述应答信息可以包括第二服务器104的服务器IP地址和服务器UDP端口。当第一服务器103接收到来自第二服务器104的应答信息时,说明第二服务器104对应的线程池具有空闲资源,可以处理所述交易请求,在此情况下,第一服务器103根据接收到的应答信息中包括的第二服务器104的服务器IP地址和服务器UDP端口,将所述交易请求转发给第二服务器104,以便第二服务器104处理所述交易请求。
在本发明的实施例中,在第一服务器103对应的线程池没有足够的资源处理来自客户端的交易请求的情况下,首先,通过广播机制,将交易请求的特征信息进行一对多的广播,例如,此处的“交易请求的特征信息”可以包括交易请求对象的特征值;然后,在接收到具有空闲资源的某一服务器的应答后,通过转发机制,将交易请求进行一对一的传输,以便具有空闲资源的某一服务器处理所述交易请求。所述交易请求的数据量大于所述交易请求的特征信息的数据量,所以,在本发明的实施例中,在前期的广播机制中,一对多广播的是数据量较小的所述交易请求的特征信息;在后期的转发机制中,一对一传输的是数据量较大的所述交易请求。通过采用广播+转发的机制,有利于减小对网络带宽的占用量,从而有利于节约网络资源,提高整体处理效率。
在操作S506,获取所述第二服务器104对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。
在本发明的实施例中,当某个服务器的线程池使用率较高时,能够动态将交易请求分派到资源较为空闲的服务器处理,达到了动态负载调整的目的,特别有利地,在交易请求突增或服务器扩容的情况下,有利于帮助业务系统通过负载再分配快速达到资源利用的均衡。
在本发明的一些示例性实施例中,所述第一服务器103和所述多个其他服务器属于同一个服务器列表,例如,服务器103、104、105可以属于同一个服务器列表。
在本发明的一些示例性实施例中,信息处理方法500还可以包括:发送所述第一服务器103的注册信息,所述注册信息包括服务器类型、服务器IP地址和服务器UDP端口;和获取服务器列表,所述服务器列表包括多个服务器的服务器类型、服务器IP地址和服务器UDP端口,在所述服务器列表中,所述多个服务器的服务器类型相同。
在同一个服务器列表中各个服务器的类型相同,在后续的广播机制中,可以利用该服务器列表,向同一个服务器列表中的各个服务器广播。具体地,所述服务器列表中还存储有同类型的各个服务器的服务器IP地址和服务器UDP端口,在后续的广播机制中,可以根据同类型的各个服务器的服务器IP地址和服务器UDP端口,便捷地对同类型的各个服务器进行广播。
也就是说,在本发明的实施例中,在操作S503中,所述向不同于所述第一服务器的多个其他服务器广播所述广播信息可以包括:根据所述服务器列表中的多个其他服务器的服务器IP地址和服务器UDP端口,广播所述广播信息。
在本发明的实施例中,借助于注册中心和各个服务器的注册单元之间的注册流程,可以维护服务器列表,并且,通过定时更新机制,可以定时更新服务器列表中的各个服务器的注册信息。特别有利地,可以借助该定时更新的服务器列表,便捷地对同类型的各个服务器进行广播,保障了广播机制的顺利实现。
在本发明的一些示例性实施例中,在向不同于所述第一服务器的多个其他服务器广播所述广播信息后,例如,在操作S503之后且在操作S504之前,所述信息处理方法500还可以包括等待唤醒流程。
图6示意性示出了根据本发明的一些示例性实施例的信息处理方法中的等待唤醒流程的流程图。如图6所示,所述等待唤醒流程可以包括操作S601~S602。
在操作S601,控制所述广播对象的锁对象进入等待状态。也就是说,在第一服务器103向不同于所述第一服务器103的多个其他服务器广播所述广播信息后,控制所述广播对象的锁对象进入等待状态。
在操作S602,响应于激活信号,唤醒所述广播对象的锁对象。
在该实施例中,在广播之后,服务器的锁对象进入等待状态,通过激活信号被唤醒,这样,有利于实现发出广播的服务器与其他服务器之间的异步处理,从而有利于节约服务器的处理资源。
在本发明的示例性实施例中,可以在至少两种情况下产生所述激活信号。在第一种情况下,第一服务器103接收到针对所述广播信息的应答信息,会产生第一激活信号,以唤醒所述广播对象的锁对象。在第二种情况下,监控到本次广播超时,会产生第二激活信号,以唤醒所述广播对象的锁对象。
下面,结合说明书附图详细描述这两种情况下所述信息处理方法的流程。
图7示意性示出了根据本发明的一些示例性实施例的信息处理方法在第一种唤醒情况下的流程图。如图7所示,在第一种唤醒情况下,所述信息处理方法可以包括操作S701~S704。
在操作S701,在所述广播对象的锁对象处于等待状态中时,监听来自所述多个其他服务器的请求信息。
具体地,以第一服务器103为例,在第一服务器103的广播对象的锁对象处于等待状态中时,第一服务器103可以通过监听端口持续监听来自多个其他服务器的请求信息。例如,服务器104、105等其他服务器都有可能给第一服务器103发送请求信息,它们发送的请求信息可以被第一服务器103的监听端口监听到。
在操作S702,响应于监听到来自所述多个其他服务器的请求信息,获取该请求信息。
在该操作中,在第一服务器103的监听端口监听到来自多个其他服务器104、105的请求信息时,第一服务器103会获取该请求信息。例如,在第一服务器103的监听端口监听到来自一个服务器104的请求信息时,第一服务器103会获取该请求信息;在第一服务器103的监听端口监听到来自两个服务器104、105的请求信息时,第一服务器103会分别获取来自两个服务器104、105请求信息;在第一服务器103的监听端口监听到来自更多个其他服务器的请求信息时,第一服务器103会分别获取来自更多个其他服务器的请求信息。
在操作S703,判断所述请求信息是否为应答信息。
在该操作中,第一服务器103在接收到所述请求信息后,会根据所述应答信息的格式,来判断接收到的请求信息是否为应答信息。
在操作S704,响应于所述请求信息为应答信息,获取所述第二服务器针对所述广播信息的应答信息,其中,所述应答信息包括所述第二服务器的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。
在一些示例性的实施例中,在操作S704中,所述获取第二服务器针对所述广播信息的应答信息可以包括:根据所述应答信息中的交易请求对象的特征值,确定与该特征值对应的广播对象;以及根据所述应答信息,给所述广播对象中的应答对象IP地址和应答对象端口赋值。
也就是说,所述广播信息、所述广播对象和所述应答信息均包括交易请求对象的特征值,在本发明的实施例中,以交易请求对象的特征值为媒介,可以实现三者之间的对应关系。在获取第二服务器104的应答信息后,第一服务器103以交易请求对象的特征值为媒介,确定与该应答信息对应的广播对象,然后将应答信息中的第二服务器104的服务器IP地址和服务器UDP端口分别赋值给广播对象中的应答对象IP地址和应答对象端口。通过这样的方式,可以实现“获取”应答信息,并且将应答信息中的关键信息(即第二服务器104的服务器IP地址和服务器UDP端口)存储于广播对象中,有助于后续方便地转发所述交易请求的操作。
在该实施例中,在第一服务器103接收到针对所述广播信息的应答信息时,会产生第一激活信号,以唤醒所述广播对象的锁对象。具体地,操作S602可以具体包括:响应于给所述广播对象中的应答对象IP地址和应答对象端口赋值,向所述广播对象的锁对象发送第一激活信号,以唤醒所述广播对象的锁对象。
在该实施例中,在广播之后,服务器的锁对象进入等待状态,在有应答信息之后,通过激活信号被唤醒,这样,有利于实现发出广播的服务器与其他服务器之间的异步处理,从而有利于节约服务器的处理资源。
图8示意性示出了根据本发明的一些示例性实施例的信息处理方法在第二种唤醒情况下的流程图。如图8所示,在第一种唤醒情况下,所述信息处理方法可以包括操作S801~S802。
在操作S801,根据所述广播对象中的广播时间,判断本次广播是否为超时广播。
具体地,所述广播对象中包括广播时间,即第一服务器103发出该次广播的时间,第一服务器103的注册单元220的配置文件中配置有广播超时时间。第一服务器103会定时对广播列表中每一个广播对象进行判断,如果广播对象的广播时间至当前时间之间的时间间隔超过配置的广播超时时间,则判断该广播对象是超时广播。
在操作S802,响应于本次广播为超时广播,将所述广播对象中的广播状态置为超时状态。
在该实施例中,在所述广播对象中的广播状态被置为超时状态时,会产生第二激活信号,以唤醒所述广播对象的锁对象。具体地,操作S602可以具体包括:响应于将所述广播对象中的广播状态置为超时状态,向所述广播对象的锁对象发送第二激活信号,以唤醒所述广播对象的锁对象。
在后续的执行流程中,第一服务器103会判断广播对象中的广播状态,如果广播状态为超时状态,那么会返回拒绝处理的信息,即,本次广播对应的交易请求没有其他服务器能够处理,此时,可以等待第一服务器103继续处理,或者,可以返回处理失败的信息给客户端。
在该实施例中,服务器会定时对广播列表中每一个广播对象进行判断,如果广播对象的广播时间至当前时间之间的时间间隔超过配置的广播超时时间,则判断该广播对象是超时广播。也就是说,可以定时监测广播的超时情况,从而将超时的广播从广播列表中去除,这样,有利于使得真正有需求的交易请求被广播出去。
返回参照图7,所述信息处理方法还可以包括操作S705~S708。
在操作S705,响应于所述请求信息不是应答信息,判断所述请求信息是否为广播信息。
也就是说,在本发明的实施例中,在所述广播对象的锁对象处于等待状态中时,第一服务器103监听来自所述多个其他服务器的请求信息。该请求信息可以是其他服务器对第一服务器103发出的广播信息的应答信息,也可以是其他服务器发出的请求处理交易请求的广播信息,还可以是其他类型的信息。在该实施例中,当第一服务器103监听到的请求信息不是其他服务器对第一服务器103发出的广播信息的应答信息时,还会判断该信息是否为其他服务器发出的广播信息。
在操作S706,响应于所述请求信息为广播信息,评估所述第一服务器对应的线程池的当前使用率。
在操作S707,响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,不响应所述请求信息。
在该实施例中,如果第一服务器103监听到的请求信息是其他服务器发出的广播信息,那么,第一服务器103会评估其线程池的当前使用率。在该情况下,如果第一服务器103对应的线程池的当前使用率超过所述第一服务器103对应的线程池的使用率阈值,则不响应所述请求信息。
可选地,在操作S708,响应于所述第一服务器对应的线程池的当前使用率未超过所述第一服务器对应的线程池的使用率阈值,响应所述请求信息,给广播该请求信息的服务器发送应答信息。
在该实施例中,在服务器集群中,各个服务器的UDP监听端口监听各类型的信息,例如,既监听应答信息,又监听广播信息,这样,一旦某个服务器的线程池有空闲的资源,就可以反馈应答信息,以帮助资源紧张的服务器处理交易请求。通过这样的设计,有利于提高整个服务器集群的计算资源的使用率,从而提高整个服务器集群的信息处理能力。
在本发明的一些示例性实施例中,在生成广播信息进行广播之前,所述信息处理方法还可以包括拟进行广播的交易请求之前是否被广播以及判断拟进行广播的交易请求之前被广播的次数是否超过广播次数阈值的操作。
图9示意性示出了根据本发明的另一些示例性实施例的信息处理方法的流程图。如图9所示,所述信息处理方法可以包括操作S901~S904。具体地,上述操作S503可以进一步包括操作S901~S904。
在操作S901,响应于所述第一服务器103对应的线程池的当前使用率超过所述第一服务器103对应的线程池的使用率阈值,获取所述交易请求的请求头。
在操作S902,响应于所述交易请求的请求头中包括广播次数字段,比较所述交易请求中的广播次数字段的值与广播次数阈值。
在操作S903,响应于所述交易请求中的广播次数字段的值未超过所述广播次数阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
在操作S904,响应于所述交易请求的请求头中不包括广播次数字段,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
在该实施例中,在生成广播信息并进行广播之前,会对所述交易请求进行判断,如果判断所述交易请求之前已经被多次广播(例如已经超过广播次数阈值),那么,不对所述交易请求进行重复广播;如果判断所述交易请求之前没有被广播(例如其请求头中没有广播次数字段)或没有被多次广播(例如没有超过广播次数阈值),那么,生成广播信息并进行广播。发明人经研究发现,一些客户端会重复提交交易请求,通过设置广播次数阈值,可以避免重复提交的交易请求反复占用网络带宽资源,有利于保障网络资源和服务器资源得到合理的利用。
在本发明的一些示例性实施例中,所述信息处理方法可以对广播次数字段进行设置。
图10示意性示出了根据本发明的又一些示例性实施例的信息处理方法的流程图。如图10所示,所述信息处理方法可以包括操作S1001~S1005。操作S1001~S1005可以在响应于激活信号唤醒所述广播对象的锁对象之后执行。
在操作S 1 001,检查所述广播对象中的广播状态。
在操作S1002,响应于所述广播对象中的广播状态不是超时状态,获取所述交易请求的请求头,其中,所述请求头包括广播次数字段。
在操作S1003,检查所述交易请求的请求头中是否包括广播次数字段。
在操作S1004,响应于所述交易请求的请求头中不包括广播次数字段,在所述交易请求的请求头中增加广播次数字段,并将所述广播次数字段的值置为1。
在操作S1005,响应于所述交易请求的请求头中包括广播次数字段,将所述交易请求中的广播次数字段的值加一。
通过执行操作S1001~S1005,可以对所述交易请求中的请求头的广播次数字段进行设置。具体地,在第一服务器103对所述交易请求进行一次成功的广播之后,如果所述交易请求之前没有被广播过,那么,可以在所述交易请求的请求头中增加广播次数字段,并将所述广播次数字段的值置为1;如果所述交易请求之前被广播过,那么,可以将所述交易请求中的广播次数字段的值加一。通过这样的方式,所述交易请求每一次被成功广播后,会实时更新广播次数字段的值,这样,配合上述的广播次数阈值判断,可以避免重复提交的交易请求反复占用网络带宽资源,有利于保障网络资源和服务器资源得到合理的利用。
图11示意性示出了根据本发明的一些示例性实施例的信息处理方法的流程图,所述信息处理方法可以应用于第二服务器。
如图11所示,根据该实施例的信息处理方法1100可以包括操作S1101~操作S1107。信息处理方法1100可以应用于图1和图2A所示的第二服务器,也就是说,信息处理方法1100可以应用于接收广播信息的服务器。
在操作S1101,监听来自多个其他服务器的请求信息,其中,所述多个其他服务器为与所述第二服务器处于同一个服务器集群中且与所述第二服务器的类型相同的服务器。
在操作S1102,响应于监听到来自所述多个其他服务器中的第一服务器的请求信息,获取该请求信息,其中,所述第一服务器为所述多个其他服务器中的一个服务器。
在操作S1103,判断所述请求信息是否为广播信息。
在操作S1104,响应于所述请求信息为广播信息,评估所述第二服务器对应的线程池的当前使用率。
在操作S1105,响应于所述第二服务器对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,向所述第一服务器发送应答信息。
在操作S1106,接收所述第一服务器转发的交易请求。
在操作S1107,对所述交易请求进行处理,并将处理结果发送给所述第一服务器。
在本发明的实施例中,当某个服务器的线程池使用率较高时,能够动态将交易请求分派到资源较为空闲的服务器处理,达到了动态负载调整的目的,特别有利地,在交易请求突增或服务器扩容的情况下,有利于帮助业务系统通过负载再分配快速达到资源利用的均衡。
下面,结合图2A所示的系统架构,示例性地描述根据本发明实施例的信息处理方法在服务器的各个单元中的操作。需要说明的是,下面的描述仅为以图2A所示的系统架构为例进行的示例性的描述,它不意图限制本发明的实施例,应该理解,当系统架构发生变化时,根据本发明实施例的信息处理方法在服务器的各个单元中的操作也可以发生相应的变化。
图12示意性示出了图2A中的系统架构中的注册单元的操作的示意性流程图,图13示意性示出了图2A中的系统架构中的负载单元的操作的示意性流程图,图14示意性示出了图2A中的系统架构中的广播单元的操作的示意性流程图,图15示意性示出了根据本发明实施例的信息处理方法在各个单元上执行的泳道图。
结合参照图12至图15,注册单元220可以包括操作S1201~S1210。
在操作S1201,启动注册单元220。
在操作S1202,读取服务器(可以是服务器103、104、105中的任一台服务器,例如,第一服务器103)的配置文件,例如,所述配置文件可以包括服务器类型、对外服务HTTP端口、对外服务UDP端口、注册中心地址、广播次数阈值、广播超时时间、线程池使用率阈值、更新注册信息时间间隔等信息。
在操作S1203,启动负载单元230拦截NIO Selector方法。
在操作S1204,启动广播单元240按照配置的对外服务器UDP端口启动UDP监听。
在操作S1205,获取服务器对外服务的HTTP端口。
在操作S1206,启动异步注册线程,用来上送和获取注册信息。
在操作S1207,启动结束。
在操作S1208,异步注册线程根据读取的注册中心地址配置向注册中心210提交注册信息。
在操作S1209,接收注册中心210响应的注册服务器列表并进行保存。
在操作S1210,按照配置的更新注册信息时间间隔时间进行休眠,休眠结束后启动下一次注册信息上送。
结合参照图12至图15,负载单元230可以包括操作S1301~S1307。
在操作S1301,负载单元230拦截到NIO Selector接收到的交易请求。
在操作S1302,获取服务器的线程池的当前使用率,判断当前使用率是否大于配置的线程池使用率阈值。
在操作S1303,如果当前使用率大于配置的线程池使用率阈值,则获取交易请求的HTTP请求头。
在操作S1304,在下列两种情况下直接分配给广播单元处理:第一种情况是请求头中未包含广播次数字段,第二种情况是请求头中包含广播次数字段但未超过配置的广播次数阈值。
在操作S1305,等待并获取广播单元240的处理结果并返回给客户端。
在操作S1306,如果请求头中包含广播次数字段且广播次数字段值已超过配置的广播次数阈值,则拒绝处理。
在操作S1307,如果当前使用率小于配置的线程池使用率阈值,则将所述交易请求直接分配给服务器处理,不进行广播。
结合参照图12至图15,广播单元240可以包括操作S1401~S1423。在该实施例中,广播单元240可以包括请求处理模块2410、广播对象监控模块2420和监听请求处理模块2430。
在操作S1401,广播单元240接收到负载单元230分配的请求。
在操作S1402,根据请求信息生成广播对象并放入广播列表,广播对象包括交易请求对象、交易请求对象的特征值(例如16位的随机码)、广播对象的锁对象、广播时间、广播状态、广播应答对象IP地址和广播应答对象端口。
在操作S1403,获取注册单元220的服务器列表,按照服务器列表中的服务器IP地址和UDP端口进行广播,广播信息包括本服务器IP地址、UDP端口和交易请求对象的特征值。
在操作S1404,广播结束后进入此广播对象持有锁的等待状态,等待锁对象的唤醒信号。
在操作S1405,被锁的唤醒信号唤醒后,判断当前广播对象中的广播状态。
在操作S1406,如果广播状态为超时状态,则返回拒绝处理信息。
在操作S1407,如果广播状态为正常状态,则获取当前请求中的HTTP请求头。
在操作S1408,如果HTTP请求头中包含广播次数字段,则将广播次数字段的值加1。
在操作S1409,如果请求头HTTP头中未包含广播次数字段,则增加广播次数字段并赋值为1。
在操作S1410,获取当前广播对象中的广播应答对象IP和广播应答对象端口,向发出应答信息的服务器转发交易请求。
在操作S1411,等待并获取广播应答服务器返回的处理结果。
在操作S1412,将处理结果返回给负载单元230。
在操作S1413,广播监控模块逐个检查广播列表中的每个广播对象。
在操作S1414,如果当前时间到广播对象的广播时间间隔超过配置的广播超时时间,则认为是超时广播,将此广播对象的广播状态字段置为超时。
在操作S1415,获取广播对象的锁对象并发送激活信号。
在操作S1416,广播单元240的UDP监听端口收到请求信息,并判断请求信息的类型是否为应答请求。
在操作S1417,如果请求信息为应答信息,则获取该应答信息,应答信息中包含广播对象的特征值、应答服务器IP地址、应答服务器UDP端口等信息。
在操作S1418,根据应答信息中的广播对象的特征值,在广播列表中查找相应广播对象,将应答服务器IP地址、应答服务器UDP端口赋值给广播对象。
在操作S1419,向广播对象中的锁对象发送激活信号。
在操作S1420,如果判断收到的请求信息的类型为广播信息,则评估当前线程池的使用率。
在操作S1421,如果当前线程池使用率小于线程池使用率阈值,则向广播服务器发送响应报文,响应报文中包含广播对象的特征值、应答服务器IP地址、应答服务器UDP端口等信息。
在操作S1422,如果当前线程池使用率大于阈值,则不响应请求信息。
在操作S1423,如果接收到的请求信息的类型经判断为非广播信息和应答信息,则丢弃报文。
图16示意性示出了根据本发明实施例的信息处理装置的结构框图。
如图16所示,根据该实施例的信息处理装置1600可以应用于第一服务器103上,所述信息处理装置1600可以包括交易请求获取模块1601、比较模块1602、广播模块1603、应答信息获取模块1604、转发模块1605和结果获取模块1606。
交易请求获取模块1601用于获取来自客户端的交易请求。在一些实施例中,交易请求获取模块1601可以用于执行前文描述的操作S501,在此不再赘述。
比较模块1602用于获取所述第一服务器对应的线程池的当前使用率,并比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值。在一些实施例中,比较模块1602可以用于执行前文描述的操作S502,在此不再赘述。
广播模块1603用于:响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器。在一些实施例中,广播模块1603可以用于执行前文描述的操作S503,在此不再赘述。
应答信息获取模块1604用于获取第二服务器针对所述广播信息的应答信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器。在一些实施例中,应答信息获取模块1604可以用于执行前文描述的操作S504,在此不再赘述。
转发模块1605用于根据所述应答信息,将所述交易请求转发给所述第二服务器。在一些实施例中,转发模块1605可以用于执行前文描述的操作S505,在此不再赘述。
结果获取模块1606用于获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。在一些实施例中,结果获取模块1606可以用于执行前文描述的操作S506,在此不再赘述。
在一些示例性的实施例中,所述第一服务器103和所述多个其他服务器(例如服务器104、105)可以属于同一个服务器列表。
图17示意性示出了根据本发明的另一些示例性实施例的信息处理装置的结构框图。
如图17所示,根据该实施例的信息处理装置1600可以应用于第一服务器103上,所述信息处理装置1600可以包括交易请求获取模块1601、比较模块1602、广播模块1603、应答信息获取模块1604、转发模块1605、结果获取模块1606、注册信息发送模块1607、服务器列表获取模块1608。
需要说明的是,交易请求获取模块1601、比较模块1602、广播模块1603、应答信息获取模块1604、转发模块1605和结果获取模块1606可以参照上文结合图16的描述,在此不再赘述。
注册信息发送模块1607用于发送所述第一服务器的注册信息,所述注册信息包括服务器类型、服务器IP地址和服务器UDP端口。
服务器列表获取模块1608用于获取服务器列表,所述服务器列表包括多个服务器的服务器类型、服务器IP地址和服务器UDP端口,在所述服务器列表中,所述多个服务器的服务器类型相同。
在一些示例性的实施例中,广播模块1603还可以根据所述服务器列表中的多个其他服务器的服务器IP地址和服务器UDP端口,广播所述广播信息。
在一些示例性的实施例中,广播模块1603还可以用于:根据所述交易请求,生成广播对象,其中,所述广播对象包括交易请求对象、交易请求对象的特征值、广播对象的锁对象、广播时间、广播状态、应答对象IP地址和应答对象端口。
在一些示例性的实施例中,所述信息处理装置1600还可以包括锁控制模块1609。锁控制模块1609用于:控制所述广播对象的锁对象进入等待状态;以及响应于激活信号,唤醒所述广播对象的锁对象。
在一些示例性的实施例中,所述广播信息包括:所述第一服务器的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。
在一些示例性的实施例中,应答信息获取模块1604还用于:在所述广播对象的锁对象处于等待状态中时,监听来自所述多个其他服务器的请求信息;响应于监听到来自所述多个其他服务器的请求信息,获取该请求信息;判断所述请求信息是否为应答信息;以及响应于所述请求信息为应答信息,获取所述第二服务器针对所述广播信息的应答信息,其中,所述应答信息包括所述第二服务器的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。
在一些示例性的实施例中,应答信息获取模块1604还用于:根据所述应答信息中的交易请求对象的特征值,确定与该特征值对应的广播对象;以及根据所述应答信息,给所述广播对象中的应答对象IP地址和应答对象端口赋值。
在该实施例中,锁控制模块1609用于:响应于给所述广播对象中的应答对象IP地址和应答对象端口赋值,向所述广播对象的锁对象发送第一激活信号,以唤醒所述广播对象的锁对象。
在一些示例性的实施例中,所述信息处理装置1600还可以包括超时控制模块1610。超时控制模块1610可以用于:根据所述广播对象中的广播时间,判断本次广播是否为超时广播;以及响应于本次广播为超时广播,将所述广播对象中的广播状态置为超时状态。
在该实施例中,锁控制模块1609用于:响应于将所述广播对象中的广播状态置为超时状态,向所述广播对象的锁对象发送第二激活信号,以唤醒所述广播对象的锁对象。
在一些示例性的实施例中,所述信息处理装置1600还可以包括广播信息处理模块1611。广播信息处理模块1611用于:响应于所述请求信息不是应答信息,判断所述请求信息是否为广播信息;响应于所述请求信息为广播信息,评估所述第一服务器对应的线程池的当前使用率;以及响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,不响应所述请求信息。
在一些示例性的实施例中,广播模块1603还用于:响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,获取所述交易请求的请求头;响应于所述交易请求的请求头中包括广播次数字段,比较所述交易请求中的广播次数字段的值与广播次数阈值;以及响应于所述交易请求中的广播次数字段的值未超过所述广播次数阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
在一些示例性的实施例中,广播模块1603还用于:响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,获取所述交易请求的请求头;以及响应于所述交易请求的请求头中不包括广播次数字段,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
在一些示例性的实施例中,所述信息处理装置1600还可以包括广播次数设置模块1612。广播次数设置模块1612用于:检查所述广播对象中的广播状态;响应于所述广播对象中的广播状态不是超时状态,获取所述交易请求的请求头,其中,所述请求头包括广播次数字段;检查所述交易请求的请求头中是否包括广播次数字段;响应于所述交易请求的请求头中不包括广播次数字段,在所述交易请求的请求头中增加广播次数字段,并将所述广播次数字段的值置为1;以及响应于所述交易请求的请求头中包括广播次数字段,将所述交易请求中的广播次数字段的值加一。
图18示意性示出了根据本发明的又一些示例性实施例的信息处理装置的结构框图。
如图18所示,根据该实施例的信息处理装置1800可以应用于第二服务器104上,所述信息处理装置1800可以包括监听模块1801、请求信息获取模块1802、判断模块1803、评估模块1804、应答信息发送模块1805、接收模块1806和结果反馈模块1807。
监听模块1801用于监听来自多个其他服务器的请求信息,其中,所述多个其他服务器为与所述第二服务器处于同一个服务器集群中且与所述第二服务器的类型相同的服务器。
请求信息获取模块1802用于响应于监听到来自所述多个其他服务器中的第一服务器的请求信息,获取该请求信息,其中,所述第一服务器为所述多个其他服务器中的一个服务器。
判断模块1803用于判断所述请求信息是否为广播信息。
评估模块1804用于响应于所述请求信息为广播信息,评估所述第二服务器对应的线程池的当前使用率。
应答信息发送模块1805用于响应于所述第二服务器对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,向所述第一服务器发送应答信息。
接收模块1806用于接收所述第一服务器转发的交易请求。
结果反馈模块1807用于对所述交易请求进行处理,并将处理结果发送给所述第一服务器。
图19示意性示出了根据本发明实施例的适于实现信息处理方法的电子设备的方框图。
如图19所示,根据本发明实施例的电子设备1900包括处理器1901,其可以根据存储在只读存储器(ROM)1902中的程序或者从存储部分1908加载到随机访问存储器(RAM)1903中的程序而执行各种适当的动作和处理。处理器1901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等。处理器1901还可以包括用于缓存用途的板载存储器。处理器1901可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1903中,存储有电子设备1900操作所需的各种程序和数据。处理器1901、ROM 1902以及RAM 1903通过总线1904彼此相连。处理器1901通过执行ROM 1902和/或RAM1903中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1902和RAM 1903以外的一个或多个存储器中。处理器1901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。
根据本发明的实施例,电子设备1900还可以包括输入/输出(I/O)接口1905,输入/输出(I/O)接口1905也连接至总线1904。电子设备1900还可以包括连接至I/O接口1905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1907;包括硬盘等的存储部分1908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1909。通信部分1909经由诸如因特网的网络执行通信处理。驱动器1910也根据需要连接至I/O接口1905。可拆卸介质1911,诸如磁盘、光盘、磁光盘、半导体存储器等,根据需要安装在驱动器1910上,以便于从其上读出的计算机程序根据需要被安装入存储部分1908。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的ROM 1902和/或RAM 1903和/或ROM 1902和RAM 1903以外的一个或多个存储器。
本发明的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本发明实施例所提供的方法。
在该计算机程序被处理器1901执行时执行本发明实施例的系统/装置中限定的上述功能。根据本发明的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1909被下载和安装,和/或从可拆卸介质1911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1909从网络上被下载和安装,和/或从可拆卸介质1911被安装。在该计算机程序被处理器1901执行时,执行本发明实施例的系统中限定的上述功能。根据本发明的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本发明的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上对本发明的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。不脱离本发明的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本发明的范围之内。

Claims (19)

1.一种信息处理方法,应用于第一服务器,其特征在于,所述方法包括:
获取来自客户端的交易请求;
获取所述第一服务器对应的线程池的当前使用率,并比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值;
响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器;
获取第二服务器针对所述广播信息的应答信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器;
根据所述应答信息,将所述交易请求转发给所述第二服务器;以及
获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述第一服务器和所述多个其他服务器属于同一个服务器列表;
所述方法还包括:发送所述第一服务器的注册信息,所述注册信息包括服务器类型、服务器IP地址和服务器UDP端口;和获取服务器列表,所述服务器列表包括多个服务器的服务器类型、服务器IP地址和服务器UDP端口,在所述服务器列表中,所述多个服务器的服务器类型相同,其中,所述多个服务器包括第一服务器和所述多个其他服务器。
3.根据权利要求2所述的方法,其特征在于,所述向不同于所述第一服务器的多个其他服务器广播所述广播信息包括:
根据所述服务器列表中的多个其他服务器的服务器IP地址和服务器UDP端口,广播所述广播信息。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述交易请求,生成广播信息包括:
根据所述交易请求,生成广播对象,其中,所述广播对象包括交易请求对象、交易请求对象的特征值、广播对象的锁对象、广播时间、广播状态、应答对象IP地址和应答对象端口,
其中,所述交易请求对象的特征值为所述广播信息的一部分。
5.根据权利要求4所述的方法,其特征在于,在向不同于所述第一服务器的多个其他服务器广播所述广播信息后,所述方法还包括:
控制所述广播对象的锁对象进入等待状态;以及
响应于激活信号,唤醒所述广播对象的锁对象。
6.根据权利要求5所述的方法,其特征在于,所述广播信息包括:所述第一服务器的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值。
7.根据权利要求5或6所述的方法,其特征在于,所述获取第二服务器针对所述广播信息的应答信息还包括:
在所述广播对象的锁对象处于等待状态中时,监听来自所述多个其他服务器的请求信息;
响应于监听到来自所述多个其他服务器的请求信息,获取该请求信息;
判断所述请求信息是否为应答信息;
响应于所述请求信息为应答信息,获取所述第二服务器针对所述广播信息的应答信息,其中,所述应答信息包括所述第二服务器的服务器IP地址,服务器UDP端口,和所述交易请求对象的特征值;
根据所述应答信息中的交易请求对象的特征值,确定与该特征值对应的广播对象;以及
根据所述应答信息,给所述广播对象中的应答对象IP地址和应答对象端口赋值。
8.根据权利要求7所述的方法,其特征在于,所述响应于激活信号,唤醒所述广播对象的锁对象,包括:
响应于给所述广播对象中的应答对象IP地址和应答对象端口赋值,向所述广播对象的锁对象发送第一激活信号,以唤醒所述广播对象的锁对象。
9.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
根据所述广播对象中的广播时间,判断本次广播是否为超时广播;以及
响应于本次广播为超时广播,将所述广播对象中的广播状态置为超时状态;
所述响应于激活信号,唤醒所述广播对象的锁对象,包括:
响应于将所述广播对象中的广播状态置为超时状态,向所述广播对象的锁对象发送第二激活信号,以唤醒所述广播对象的锁对象。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于所述请求信息不是应答信息,判断所述请求信息是否为广播信息;
响应于所述请求信息为广播信息,评估所述第一服务器对应的线程池的当前使用率;以及
响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,不响应所述请求信息。
11.根据权利要求8所述的方法,其特征在于,所述根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,具体包括:
获取所述交易请求的请求头;
响应于所述请求头中包括广播次数字段,比较所述广播次数字段的值与广播次数阈值;以及
响应于所述广播次数字段的值未超过所述广播次数阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
12.根据权利要求11所述的方法,其特征在于,所述根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,还具体包括:
获取所述交易请求的请求头;以及
响应于所述请求头中不包括广播次数字段,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息。
13.根据权利要求8所述的方法,其特征在于,在响应于激活信号,唤醒所述广播对象的锁对象之后,所述方法还包括:
检查所述广播对象中的广播状态;
响应于所述广播对象中的广播状态不是超时状态,获取所述交易请求的请求头;
检查所述请求头中是否包括广播次数字段;
响应于所述请求头中不包括广播次数字段,在所述请求头中增加广播次数字段,并将所述广播次数字段的值置为1;以及
响应于所述请求头中包括广播次数字段,将所述广播次数字段的值加一。
14.一种信息处理方法,应用于第二服务器,其特征在于,所述方法包括:
监听来自多个其他服务器的请求信息,其中,所述多个其他服务器为与所述第二服务器处于同一个服务器集群中且与所述第二服务器的类型相同的服务器;
响应于监听到来自所述多个其他服务器中的第一服务器的请求信息,获取该请求信息,其中,所述第一服务器为所述多个其他服务器中的一个服务器;
判断所述请求信息是否为广播信息;
响应于所述请求信息为广播信息,评估所述第二服务器对应的线程池的当前使用率;
响应于所述第二服务器对应的线程池的当前使用率未超过所述第二服务器对应的线程池的使用率阈值,向所述第一服务器发送应答信息;
接收所述第一服务器转发的交易请求;以及
对所述交易请求进行处理,并将处理结果发送给所述第一服务器。
15.一种服务器集群,包括第一服务器和第二服务器,其特征在于,所述第一服务器被配置为执行如权利要求1-13中任一项所述的方法,所述第二服务器被配置为执行如权利要求14所述的方法。
16.一种信息处理装置,应用于第一服务器上,其特征在于,所述装置包括:
交易请求获取模块,用于获取来自客户端的交易请求;
比较模块,用于获取所述第一服务器对应的线程池的当前使用率,并比较所述第一服务器对应的线程池的当前使用率与所述第一服务器对应的线程池的使用率阈值;
广播模块,用于响应于所述第一服务器对应的线程池的当前使用率超过所述第一服务器对应的线程池的使用率阈值,根据所述交易请求,生成广播信息,并向不同于所述第一服务器的多个其他服务器广播所述广播信息,其中,所述多个其他服务器为与所述第一服务器处于同一个服务器集群中且与所述第一服务器的类型相同的服务器;
应答信息获取模块,用于获取第二服务器针对所述广播信息的应答信息,其中,所述第二服务器为所述多个其他服务器中的一个服务器;
转发模块,用于根据所述应答信息,将所述交易请求转发给所述第二服务器;以及
结果获取模块,用于获取所述第二服务器对所述交易请求的处理结果,并将所述处理结果反馈给所述客户端。
17.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~14中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~14中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~14中任一项所述的方法。
CN202310774753.7A 2023-06-28 2023-06-28 信息处理方法、装置、服务器集群、电子设备和介质 Pending CN116743754A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310774753.7A CN116743754A (zh) 2023-06-28 2023-06-28 信息处理方法、装置、服务器集群、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310774753.7A CN116743754A (zh) 2023-06-28 2023-06-28 信息处理方法、装置、服务器集群、电子设备和介质

Publications (1)

Publication Number Publication Date
CN116743754A true CN116743754A (zh) 2023-09-12

Family

ID=87916734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310774753.7A Pending CN116743754A (zh) 2023-06-28 2023-06-28 信息处理方法、装置、服务器集群、电子设备和介质

Country Status (1)

Country Link
CN (1) CN116743754A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117768467A (zh) * 2024-01-12 2024-03-26 腾讯科技(深圳)有限公司 数据传输方法、装置、计算机设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117768467A (zh) * 2024-01-12 2024-03-26 腾讯科技(深圳)有限公司 数据传输方法、装置、计算机设备及计算机可读存储介质
CN117768467B (zh) * 2024-01-12 2024-05-24 腾讯科技(深圳)有限公司 数据传输方法、装置、计算机设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN111930700B (zh) 一种分布式日志处理方法、服务器、系统和计算设备
US10367852B2 (en) Multiplexed demand signaled distributed messaging
WO2020199487A1 (zh) 访问请求的响应方法、装置、设备及存储介质
RU2509428C2 (ru) Кластерный сервер системы мгновенного обмена сообщениями и способ обмена сообщениями между кластерами
US10178163B2 (en) Server-processor hybrid system for processing data
CN110633442A (zh) 一种推送方法、装置及电子设备
CN116743754A (zh) 信息处理方法、装置、服务器集群、电子设备和介质
CN112600761B (zh) 一种资源分配的方法、装置及存储介质
CN112015544A (zh) 一种k8s集群的负载均衡方法、装置、设备及存储介质
Rui et al. Computation offloading in a mobile edge communication network: A joint transmission delay and energy consumption dynamic awareness mechanism
CN114548426A (zh) 异步联邦学习的方法、业务服务的预测方法、装置及系统
CN110191186A (zh) Cdn服务器调度方法、设备及计算机可读存储介质
CN111225046A (zh) 一种内外网数据传输的方法、装置、介质和电子设备
Khan et al. RESCUE: A resilient cloud based IoT system for emergency and disaster recovery
US8725856B2 (en) Discovery of network services
TWI442248B (zh) 處理資料之處理器-伺服器混合系統
CN116012067A (zh) 资源分配方法、装置、计算机、可读存储介质及程序产品
CN109981778B (zh) 内容分发网络的服务实现方法、装置、设备及存储介质
CN116244231A (zh) 一种数据传输方法、装置、系统、电子设备及存储介质
CN110971647A (zh) 一种大数据系统的节点迁移方法
CN111193656A (zh) 一种消息推送方法和装置
CN106487902A (zh) 一种基于消息中间件的数据收集方法和系统
CN113568687A (zh) 展示Web页面的方法、相关设备和计算机可读存储介质
JP2020102265A (ja) サーバ、情報処理方法、及びプログラム
CN113296968A (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