CN112019630B - 一种负载均衡方法以及装置 - Google Patents

一种负载均衡方法以及装置 Download PDF

Info

Publication number
CN112019630B
CN112019630B CN202010907348.4A CN202010907348A CN112019630B CN 112019630 B CN112019630 B CN 112019630B CN 202010907348 A CN202010907348 A CN 202010907348A CN 112019630 B CN112019630 B CN 112019630B
Authority
CN
China
Prior art keywords
processing
task
client
service
service devices
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
CN202010907348.4A
Other languages
English (en)
Other versions
CN112019630A (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 Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec 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 Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202010907348.4A priority Critical patent/CN112019630B/zh
Publication of CN112019630A publication Critical patent/CN112019630A/zh
Application granted granted Critical
Publication of CN112019630B publication Critical patent/CN112019630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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]

Landscapes

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

Abstract

本申请实施例提供一种负载均衡的方法以及装置,应用于客户端的所述方法包括:与多个服务设备建立连接;通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力;生成至少一个任务;根据所述多个服务设备中各服务设备的当前时刻的处理能力,向所述多个服务设备中的目标服务设备发送所述至少一个任务,其中,所述目标服务设备包括至少一个所述服务设备。本申请的一些实施例与相关的软件负载均衡相比本申请实施例的可扩展性更好,不需要依赖特定操作系统类型,与相关的最小连接法相比能够结合多个服务器之间相对处理能力的差异来分配客户端的任务,例如,相对处理能力更强的服务设备会被分配更多的处理任务。

Description

一种负载均衡方法以及装置
技术领域
本申请涉及负载均衡领域,具体而言本申请实施例涉及一种负载均衡方法及装置。
背景技术
相关技术的负载均衡方法包括软件负载均衡以及最小连接法。
软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡。从整个软件负载均衡系统的结构可以看出,管理服务器是整个系统的核心。目前,用于管理服务器的操作系统只能是Linux和FreeBSD,对于提供任务处理的真实服务器,几乎可以是所有的系统平台,Linux、windows、Solaris、AIX、BSD系列都能很好的支持。结合这些技术手段可知,首先,软件负载均衡系统的可扩展性差,软件可扩展性不友好,受到操作系统的限制;其次,软件负载均衡系统的安全性差,附件软件可能存在不安全因素。
最小连接法是将任务分配给此时具有最小连接数的节点,因此它是动态负载均衡算法。例如,一个节点收到一个任务后连接数就会加1,当节点故障时就将节点权值设置为0,不再给节点分配任务。本申请发明人发现,最小连接法主要的缺陷之一是不适用于各个节点处理的性能相差较大的情况,这是由于连接数并不能准确表明任务处理的服务器的处理能力。
发明内容
本申请实施例的目的在于提供一种负载均衡方法以及装置,采用本申请实施例的一些技术方案至少可以解决可扩展性问题,安全性问题,提升对客户端任务的处理能力问题,且使得服务设备高效运行,本申请一些实施例的技术方案与相关技术相比,针对性强,成本低,性能高,易于部署,维护和高效。
第一方面,本申请的一些实施例提供一种负载均衡的方法,应用于客户端,所述方法包括:与多个服务设备建立连接;通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力;生成至少一个任务;根据所述多个服务设备中各服务设备的当前时刻的处理能力,向所述多个服务设备中的目标服务设备发送所述至少一个任务,其中,所述目标服务设备包括至少一个所述服务设备。
本申请的一些实施例通过客户端接收与其预先连接的多个服务设备的处理能力,再通过处理能力来向多个服务设备分配客户端应用程序产生的一个或多个任务(例如,应用程序的请求指令),与相关的软件负载均衡相比本申请实施例的可扩展性更好,不需要依赖特定操作系统类型,与相关的最小连接法相比能够结合多个服务器之间相对处理能力的差异来分配客户端的任务,例如,相对处理能力更强的服务设备会被分配更多的处理任务。
在一些实施例中,所述连接为传输控制协议TCP连接。
本申请的一些实施例的客户端通过与多个服务设备之间建立的TCP连接来获取各服务设备的处理能力,可以提升获取处理能力的可靠性。
在一些实施例中,所述至少一个任务包括多个任务,所述通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力之后,所述方法还包括:根据所述处理能力构建所述多个服务设备的任务处理映射表;所述根据所述多个服务设备中各服务设备的当前时刻的处理能力将所述至少一个任务发送至所述多个服务设备中的至少部分服务设备中进行处理,包括:根据所述任务处理映射表将所述多个任务发送至所述多个服务设备中的至少部分服务设备中进行处理,其中,所述至少部分服务设备中的各服务设备分配的任务的数量是根据所述任务处理映射表确定的。
本申请的一些实施例基于客户端收集的多个服务设备的处理能力来生成任务处理映射表(反应与客户端连接的多个服务设备的相对处理能力),使得客户端将多个任务中的合适数量的任务(合适的数量通过任务映射表来获取,例如,映射表表征的某个服务器的相对处理能力最强,则为这个服务器分配的任务数量最多)来分发至相应的服务设进行处理,提升了对客户端多个任务的处理速度和处理效果。
在一些实施例中,所述处理能力是通过定时循环的第一线程获取的,所述任务处理映射表是通过定时循环的第二线程获取的。
本申请的一些实施例中独立线程(即第一线程和第二线程)运行在客户端安装的SDK程序中,不占用服务器设备(例如,服务密码机设备)的性能,可以保证服务器设备运行的高效性,并且获取处理能力和构建反应多个服务设备相对处理能力(例如,各服务设备的处理能力除以多个服务设备总的处理能力)的任务处理映射表的两个独立线程定时循环,保证任务处理映射表的时效性,确保选择的服务设备为当前处理能力最强的服务设备。
在一些实施例中,所述多个服务设备包括多个服务器密码机设备,所述处理能力是根据所述多个服务器密码机设备中各服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器处理能力的权重系数确定的。
本申请的一些实施例提供了一种量化多个服务设备中各服务设备的处理能力的方法,进而使得客户端接收的服务设备的处理能力能够更加客观的反应各服务设备的运算能力。
在一些实施例中,所述根据所述处理能力构建所述多个服务设备的任务处理映射表,包括:根据如下公式确定所述多个服务设备的相对运算能力占比得到所述任务处理映射表:a/(a+b+……+n),其中,a,b……n分别表征n个所述服务设备中各服务设备的处理能力;所述根据所述任务处理映射表将所述多个任务发送至所述多个服务设备中的至少部分服务设备中进行处理,包括:根据所述任务处理映射表中所述各服务设备的相对运算能力确定向所述各服务设备分配的任务数量。
本申请的一些实施例提供一种确定多个服务设备之间相对运算能力强弱的任务处理映射表,使得在客户端分配多个待处理任务时可以根据任务处理映射表确定向各服务设备发送的任务的数量。
在一些实施例中,所述根据所述多个服务设备中各服务设备的当前时刻的处理能力将所述至少一个任务发送至所述多个服务设备中的至少部分服务设备中进行处理之后,所述方法还包括:接收来自于所述多个服务设备中的至少部分服务设备的处理结果。
本申请的一些实施例还包括接收服务设备的处理结果以便客户端相关的应用程序能够根据处理结果进行进一步操作。
第二方面,本申请的一些实施例提供一种负载均衡的方法,应用于服务器端,所述方法包括:与客户端连接;通过所述连接向所述客户端发送处理能力;接收并完成所述客户端发送的至少一个任务。
在一些实施例中,所述服务器端包括服务器密码机设备,所述通过所述连接向所述客户端发送处理能力之前,所述方法还包括:根据所述服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器处理能力的权重系数计算所述处理能力。
在一些实施例中,所述权重系数的计算公式如下:(A/A+B+……+N)*10,其中,A、B……N共N个数值为将N个所述服务器端中各服务器端的处理器型号反应的单位时间内的运算速度量化得到的。
本申请的一些实施例根据各服务设备(或称为服务器端)的CPU的空闲率、CPU的运算能力(通过上述权重系数量化)以及密码卡的数量来确定各服务设备的处理能力,能够更加客观更加准确的反应当前时刻各服务设备的处理能力。
在一些实施例中,所述接收并完成所述客户端发送的服务指令之后,所述方法还包括:向所述客户端反馈处理结果。
在一些实施例中,所述连接为传输控制协议TCP连接。
第三方面,本申请的一些实施例提供一种负载均衡系统,所述系统包括:安装SDK和应用程序的客户端,其中,所述应用程序被配置为生成至少一个任务;所述SDK被配置为:建立与多个服务设备的TCP连接,通过所述TCP连接周期性获取所述多个服务设备的处理能力,根据所述处理能力生成所述多个服务设备的任务处理映射表,根据所述任务处理映射表向所述多个服务设备中至少部分服务设备发送所述至少一个任务,并接收来自于所述多个服务设备中的至少部分服务设备的处理结果;所述多个服务设备,其中,所述多个服务设备中的各服务设备被配置为:建立与所述客户端之间的所述TCP连接,通过所述TCP连接向所述客户端发送生成的所述处理能力;接收所述客户端发送的所述至少一个任务并执行,向所述客户端反馈处理结果。
在一些实施例中,所述多个服务设备包括多个服务器密码机设备,所述处理能力是根据所述多个服务器密码机设备中各服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器处理能力的权重系数确定的。
第四方面,本申请的一些实施例提供一种客户端,所述客户端包括:第一连接模块,被配置为与多个服务设备建立连接;处理能力获取模块,被配置为通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力;任务生成模块,被配置为生成至少一个任务;任务配置模块,被配置为根据所述多个服务设备中各服务设备的当前时刻的处理能力,向所述多个服务设备中的目标服务设备发送所述至少一个任务,其中,所述目标服务设备包括至少一个所述服务设备。
第五方面,本申请的一些实施例提供一种服务器,所述服务器包括:第二连接模块,被配置为与客户端连接;发送模块,被配置为通过所述连接向所述客户端发送处理能力;接收模块,被配置为接收并完成所述客户端发送的至少一个任务。
第六方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现上述第一方面或者第二方面所述的方法。
第七方面,本申请的一些实施例提供一种信息处理设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现上述第一方面或者第二方面所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的负载均衡系统的组成框图;
图2为本申请实施例提供的负载均衡系统的交互示意图;
图3为本申请实施例提供的负载均衡系统中的由客户端执行的负载均衡流程图;
图4为本申请实施例提供的负载均衡系统中的由服务设备执行的负载均衡流程图;
图5为本申请实施例提供的采用TCP连接的负载均衡系统的交互过程示意图;
图6为本申请实施例提供的客户端的组成框图;
图7为本申请实施例的服务设备的组成框图;
图8为本申请实施例的信息处理设备的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
结合背景技术部分的描述可知,在客户端设备使用多台服务器密码机设备过程中(例如,可供接入的服务器密码机设备可能存在多台多型号的服务器密码机设备,每台服务器密码机设备的处理能力是不同的),如何为客户端设备选择最佳的服务器密码机设备的处理任务的组合,并且要保证服务器密码机设备的高效运行,这是目前需要解决的问题。
相对于软件负载均衡技术,本申请实施例的技术方案无需其它附加软件,一方面不影响服务器密码机设备的性能,另外一方面避免其它附件软件带来的问题。相对于最小连接法负载均衡算法,本申请的实施例解决了连接数并不能准确表明处理能力的问题。这是由于,本申请的实施例可以定时(或实时)获取各服务设备的处理能力,属于动态负载均衡算法,任务分发单元会将任务平滑分配给服务器密码机设备,可以有效解决相关技术在服务器密码机设备性能差距较大时,不能达到预期的效果的问题。
请参看图1,图1为本申请一些实施例提供的负载均衡系统的组成框图。本申请一些实施例的负载均衡系统包括客户端100以及与客户端100连接的多个服务设备(例如,图1的第一服务设备200、第二服务设备210以及第三服务设备220)。作为一个示例,图1的客户端100安装了SDK端110以及第一应用程序120,其中,第一应用程序120为运行于客户端100的程序其可以产生由多个服务设备处理的多个任务;SDK端也是运行于客户端100的应用程序该程序用于实现与多个服务设备的连接并通过连接获取服务设备的处理能力,基于处理能力生成存放于客户端100的任务处理映射表,当第一应用程序120生成了需要处理的一个或多个任务(或指令)时由SDK端根据任务处理映射表来向多个服务设备分配一个或多个任务。
也就是说,本申请的一些实施例提供一种负载均衡系统包括:安装SDK(或称为SDK端)和应用程序(例如,图1的第一应用程序)的客户端以及与客户端连接的多个服务设备(例如,图1的第一服务设备200、第二服务设备210以及第三服务设备220)。其中,所述应用程序被配置为生成至少一个任务;所述SDK端被配置为:建立与多个服务设备的传输控制协议TCP(Transmission Control Protocol)连接,通过所述TCP连接周期性获取所述多个服务设备的处理能力,根据所述处理能力生成所述多个服务设备的任务处理映射表,根据所述任务处理映射表向所述多个服务设备中至少部分服务设备发送所述至少一个任务,并接收来自于所述多个服务设备中的至少部分服务设备的处理结果;所述多个服务设备中的各服务设备被配置为:建立与所述客户端之间的所述TCP连接,通过所述TCP连接向所述客户端发送生成的所述处理能力;接收所述客户端发送的所述至少一个任务并执行,向所述客户端反馈处理结果。例如,所述多个服务设备包括多个服务器密码机设备,所述处理能力是根据所述多个服务器密码机设备中各服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器处理能力的权重系数确定的。
图2为本申请一些实施例的负载均衡系统的交互示意图,在图2中仅以图1的客户端100和第一服务设备200为例来说明客户端与多个服务设备各服务设备的交互流程。
S101,客户端发起请求建立与服务设备200的连接。例如,可以建立TCP连接或者UDP连接。
S102,第一服务设备200实时或者周期性计算其自身的处理能力。处理能力用于表征第一服务设备200的运算能力。例如,可以通过统计第一服务设备200包括的处理器的特征来计算处理能力。
S103,第一服务设备200通过建立的连接向客户端100发送计算得到的处理能力。
需要说明的是,客户端100会接收其他与其建立了连接的多个服务设备的处理能力。
S104,客户端根据接收的各服务设备的处理能力构建任务处理映射表,其中,任务处理映射表用于表征各服务设备的相对处理能力的强弱。例如,假设与客户端连接的服务设备包括图1的第一服务设备200、第二服务设备210以及第三服务设备220,可以通过第一服务设备200的处理能力与第一服务设备200、第二服务设备210以及第三服务设备220总的处理能力的比值来确定第一服务设备200的相对处理能力。
需要说明的是,任务处理映射表会存储各个服务设备的相对处理能力的数值,之后当应用程序有多个任务需要处理时可以根据任务处理映射表确定分配到各服务设备上的任务数量。例如,假设任务处理映射表存储的第一服务设备200的相对处理能力对应的数值为97,第二服务设备210的相对处理能力对应的数值为2,第三服务设备220的相对处理能力对应的数值为1,并假设应用程序需要处理100个任务,则客户端会将97个待处理任务发送至第一服务设备200进行处理,并将其中的2个任务发送至第二服务设备210处理,将剩余的1个任务发送至第三服务设备230进行处理。
S105,客户端获取应用程序的多个任务。例如,应用程序生成的多个任务的数量可能大于多个服务设备能够处理的任务个数的上限,此时多余处理上限的任务需要缓存,客户端会将任务个数上限的任务按照任务处理映射表分发至多个服务设备中的部分服务设备或者全部服务设备。
S106,客户端根据任务处理映射表确定向第一服务设备200发送的任务的数量,并向第一服务设备200发送预定数量的任务。
S107,第一服务设备200处理预定数量的任务。例如,第一服务设备200会解析任务对应的请求指令,并执行相关指令。
S108,第一服务设备200向客户端100发送处理结果。
下面结合图3示例性阐述在客户端100上执行的负载均衡的方法。
如图3所示,本申请的一些实施例提供一种负载均衡的方法,应用于客户端,所述方法包括:S301,与多个服务设备建立连接;S302,通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力;S303,生成至少一个任务;S304,根据所述多个服务设备中各服务设备的当前时刻的处理能力,向所述多个服务设备中的目标服务设备发送所述至少一个任务,其中,所述目标服务设备包括至少一个所述服务设备。
S301建立的连接包括TCP连接或者UDP连接等。
为了获取反应多个服务设备相对的处理能力,至少用于解决服务设备(例如,服务器密码机设备)性能差距较大时,不能合理分配任务的问题,在本申请的一些实施例中,所述至少一个任务包括多个,S302之后,所述负载均衡方法还包括:根据所述处理能力构建所述多个服务设备的任务处理映射表。相应的S304包括:根据所述任务处理映射表将所述多个任务发送至所述多个服务设备中的至少部分服务设备中进行处理,其中,所述至少部分服务设备中的各服务设备分配的任务的数量是根据所述任务处理映射表确定的。
需要说明的是,为了保证任务处理映射表的时效性,确保处理较多任务量的服务设备为当前处理能力最强的服务设备,本申请的一些实施例中S301涉及的处理能力是通过定时循环的第一线程获取的,所述任务处理映射表是通过定时循环的第二线程获取的。
为了更加客观获取各服务设备的处理能力,本申请的一些实施例提供了一种量化处理能力的方法。例如,在本申请的一些实施例中,所述多个服务设备包括多个服务器密码机设备,所述处理能力是根据所述多个服务器密码机设备中各服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器处理能力的权重系数确定的。
S303的生成至少一个任务在一些实施例中指代安装在客户端上的应用程序生成的需要多个服务设备来协助处理的任务。
为了获取能够反映多个服务设备中各服务设备处理能力强弱的任务映射表,在本申请的一些实施例中获取任务映射表的方法可以包括:根据如下公式确定所述多个服务设备的相对运算能力占比得到所述任务处理映射表:a/(a+b+……+n),其中,a,b……n分别表征n个所述服务设备中各服务设备的处理能力。相应的,S304包括:根据所述任务处理映射表中所述各服务设备的相对运算能力确定向所述各服务设备分配的任务数量。
在一些实施例中,所述根据所述多个服务设备中各服务设备的当前时刻的处理能力将所述至少一个任务发送至所述多个服务设备中的至少部分服务设备中进行处理之后,所述方法还包括:接收来自于所述多个服务设备中的至少部分服务设备的处理结果。
下面结合图4示例性阐述在任意服务设备上执行的负载均衡的方法。
如图4所示,本申请的一些实施例提供运行与服务设备的负载均衡的方法包括:S310,与客户端连接;S320,通过所述连接向所述客户端发送处理能力;S330,接收并完成所述客户端发送的至少一个任务。
在本申请的一些实施例中,所述服务器端包括服务器密码机设备,在服务器端执行S320之前所述负载均衡方法还包括:根据所述服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器处理能力的权重系数计算所述处理能力。例如,所述权重系数的计算公式如下:(A/A+B+……+N)*10,其中,A、B……N共N个数值为将N个所述服务器端中各服务器端的处理器型号反应的单位时间内的运算速度量化得到的。
本申请的一些实施例根据各服务设备(或称为服务器端)的CPU的空闲率、CPU的运算能力(通过上述权重系数量化)以及密码卡的数量来确定各服务设备的处理能力,能够更加客观更加准确的反应当前时刻各服务设备的处理能力。
在一些实施例中,所述接收并完成所述客户端发送的服务指令之后,所述方法还包括:向所述客户端反馈处理结果。
在一些实施例中,所述连接为TCP连接。
下面结合图5以TCP连接以及密码机服务器为例示例性阐述本申请一些实施例的客户端与密码机服务器的交互流程图。
图5的客户端预先安装了SDK端,用于执行如下步骤。
客户端SDK并发的和多个密码机服务器建立tcp连接;
客户端SDK独立的线程定时(例如,3-5s)去获取各个密码机服务器的处理能力。如果tcp连接失败,则确定相应密码机服务器的处理能力设为0。需要说明的是,在本申请的一些实施例中密码机服务器的处理能力计算公式为:cpu空闲率*密码卡的数量*权重,其中,权重是根据多种密码机服务器仅运行一种计算得出来的一个数值,这个数值用于评估密码机服务器的CPU的运算性能。需要说明的是,本申请实施例涉及的“*”表示乘号。
客户端SDK获取到的密码机服务器的处理能力为(a,b……n)等,其中,a,b……n的值代表对应密码机服务器的处理能力对应的分数(该分数即由各密码机服务器根据其处理器空闲率、密码卡数量以及权重计算得到的)。客户端SDK根据各个服务器处理能力的分数值构建任务处理映射表,任务处理映射表的构建计算方式可以采用单台密码机服务器的处理能力除以所有密码机服务器的处理能力的总和得到的,例如,处理能力为a的密码机服务器的构建的任务处理映射表上的数值为:a/(a+b+…+n)*1000,其中数字1000为所有密码机服务器一次能够处理的任务总量,服务设备在任务处理映射表上的数值越大处理能力越强。
当客户端的调用SDK的应用程序有指令(可以认为一个指令对应一个任务,指令类型包括加密,解密等)需要处理时,客户端SDK从任务处理映射表中选定服务端,发送指令到任务处理映射表中处理能力最强(即当前时刻在任务处理映射表上的值最大的)的服务端或者当任务数量很多时根据任务处理映射表向各密码机服务器分配相应数量的任务。等待处理结果,返回数据到应用程序。
其中(2)(3)为独立线程运行在SDK端,不占用服务器密码机设备的性能,可以保证服务器密码机设备运行的高效性,并且(2)(3)两个独立线程定时循环,保证处理能力映射表的时效性,确保选择的服务器密码机设备为当前处理能力最强的设备。
图5的密码机服务器被配置为:和请求连接的客户端进行tcp连接;接收来自客服端应用程序发送的包(对应于某个任务),通过解析包后得到需要密码机服务器运行的指令。按照得到的指令进行相关操作,如:创建文件,读写文件,获取当前运算能力值等。本申请一些实施例的密码机服务器还被配置为获取当前运算能力值(即处理能力),作为一个示例,获取当前运算能力值的计算公式为:当前cpu空闲率*加密卡的数量(密码机的独有)*权重(权重是根据密码机服务器内的CPU的型号进行量化得到的,如(A/A+B+……+N)*10,其中,A为任意密码机服务器的量化数值,“A+B+……+N”表征N个密码机服务设备总的量化值的和)。
请参考图6,图6示出了本申请实施例提供的客户端,应理解,该客户端与上述图3方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该客户端的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。客户端包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该客户端,包括:第一连接模块501,被配置为与多个服务设备建立连接;处理能力获取模块502,被配置为通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力;任务生成模块503,被配置为生成至少一个任务;任务配置模块504,被配置为根据所述多个服务设备中各服务设备的当前时刻的处理能力,向所述多个服务设备中的目标服务设备发送所述至少一个任务,其中,所述目标服务设备包括至少一个所述服务设备。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的客户端的具体工作过程,可以参考图3中的对应过程,在此不再过多赘述。
请参考图7,图7示出了本申请实施例提供的服务器,应理解,该服务器与上述图4方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该服务器的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。服务器包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该服务器,包括:第二连接模块601,被配置为与客户端连接;发送模块602,被配置为通过所述连接向所述客户端发送处理能力;接收模块603,被配置为接收并完成所述客户端发送的至少一个任务。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的客户端的具体工作过程,可以参考图4中的对应过程,在此不再过多赘述。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现上述图3或图4所述的方法。
如图8所示,本申请的一些实施例提供一种信息处理设备,包括存储器710、处理器720以及存储在所述存储器710上并可在所述处理器720上运行的计算机程序,其中,所述处理器720通过总线730从存储器710上读取程序并执行所述程序时可实现图3或图4所述的方法。
处理器720可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器720可以是微处理器。
存储器710可以用于存储由处理器720执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器720可以用于执行存储器710中的指令以实现图3或图4中所示的方法。存储器710包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (16)

1.一种负载均衡的方法,应用于客户端,其特征在于,所述方法包括:
与多个服务设备建立连接;
通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力;
生成至少一个任务;
根据所述多个服务设备中各服务设备的当前时刻的处理能力构建所述多个服务设备的任务处理映射表,其中,所述任务处理映射表用于记录与所述客户端连接的所述多个服务设备的相对处理能力,所述相对处理能力是通过各服务设备的当前时刻的处理能力除以所述多个服务设备总的处理能力得到的;
根据所述任务处理映射表向所述多个服务设备中的目标服务设备发送所述至少一个任务,其中,所述目标服务设备包括至少一个所述服务设备;所述当前时刻的处理能力是通过定时循环的第一线程获取的,所述任务处理映射表是通过定时循环的第二线程获取的。
2.如权利要求1所述的方法,其特征在于,所述连接为传输控制协议TCP连接。
3.如权利要求1所述的方法,其特征在于,所述至少一个任务包括多个任务,所述根据所述任务处理映射表向所述多个服务设备中的目标服务设备发送所述至少一个任务,还包括:
根据所述任务处理映射表将所述多个任务发送至所述多个服务设备中的至少部分服务设备中进行处理,其中,所述至少部分服务设备中的各服务设备分配的任务的数量是根据所述任务处理映射表确定的。
4.如权利要求3所述的方法,其特征在于,所述多个服务设备包括多个服务器密码机设备,所述当前时刻的处理能力是根据所述多个服务器密码机设备中各服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器的处理能力的权重系数确定的。
5.如权利要求3所述的方法,其特征在于,
所述根据所述任务处理映射表将所述多个任务发送至所述多个服务设备中的至少部分服务设备中进行处理,包括:根据所述任务处理映射表中所述各服务设备的相对处理能力确定向所述各服务设备分配的任务数量。
6.如权利要求1所述的方法,其特征在于,所述根据所述任务处理映射表向所述多个服务设备中的目标服务设备发送所述至少一个任务之后,所述方法还包括:接收来自于所述多个服务设备中的至少部分服务设备的处理结果。
7.一种负载均衡的方法,应用于服务器端,其特征在于,所述方法包括:
与客户端连接;
通过所述连接向所述客户端发送当前时刻的处理能力;
接收并完成所述客户端发送的至少一个任务;
其中,所述客户端被配置为执行如权利要求1-6任一项所述的方法。
8.如权利要求7所述的方法,其特征在于,所述服务器端包括服务器密码机设备,所述通过所述连接向所述客户端发送当前时刻的处理能力之前,所述方法还包括:根据所述服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器的处理能力的权重系数计算所述当前时刻的处理能力。
9.如权利要求7所述的方法,其特征在于,所述接收并完成所述客户端发送的服务指令之后,所述方法还包括:向所述客户端反馈处理结果。
10.如权利要求7所述的方法,其特征在于,所述连接为传输控制协议TCP连接。
11.一种负载均衡系统,其特征在于,所述系统包括:
安装SDK和应用程序的客户端,其中,所述应用程序被配置为生成至少一个任务;所述SDK被配置为:建立与多个服务设备的TCP连接,通过所述TCP连接周期性获取所述多个服务设备的处理能力,根据所述处理能力生成所述多个服务设备的任务处理映射表,根据所述任务处理映射表向所述多个服务设备中至少部分服务设备发送所述至少一个任务,并接收来自于所述多个服务设备中的至少部分服务设备的处理结果,其中,所述任务处理映射表用于记录与所述客户端连接的所述多个服务设备的相对处理能力,所述相对处理能力是通过各服务设备的处理能力除以所述多个服务设备总的处理能力得到的;
所述多个服务设备,其中,所述多个服务设备中的各服务设备被配置为:建立与所述客户端之间的所述TCP连接,通过所述TCP连接向所述客户端发送生成的所述处理能力;接收所述客户端发送的所述至少一个任务并执行,向所述客户端反馈处理结果;
其中,所述处理能力是通过定时循环的第一线程获取的,所述任务处理映射表是通过定时循环的第二线程获取的。
12.如权利要求11所述的负载均衡系统,其特征在于,所述多个服务设备包括多个服务器密码机设备,所述处理能力是根据所述多个服务器密码机设备中各服务器密码机设备的处理器的空闲率、密码卡的数量以及用于表征所述处理器的处理能力的权重系数确定的。
13.一种客户端,其特征在于,所述客户端包括:
第一连接模块,被配置为与多个服务设备建立连接;
处理能力获取模块,被配置为通过所述连接获取所述多个服务设备中各服务设备的当前时刻的处理能力;
任务生成模块,被配置为生成至少一个任务;
任务处理映射表构建模块,被配置为根据所述多个服务设备中各服务设备的当前时刻的处理能力构建所述多个服务设备的任务处理映射表,其中,所述任务处理映射表用于记录与所述客户端连接的所述多个服务设备的相对处理能力,所述相对处理能力是通过各服务设备的当前时刻的处理能力除以所述多个服务设备总的处理能力得到的;
任务配置模块,被配置为根据所述任务处理映射表向所述多个服务设备中的目标服务设备发送所述至少一个任务,其中,所述目标服务设备包括至少一个所述服务设备;所述当前时刻的处理能力是通过定时循环的第一线程获取的,所述任务处理映射表是通过定时循环的第二线程获取的。
14.一种服务器,其特征在于,所述服务器包括:
第二连接模块,被配置为与如权利要求13所述的客户端连接;
发送模块,被配置为通过所述连接向所述客户端发送当前时刻的处理能力;
接收模块,被配置为接收并完成所述客户端发送的至少一个任务。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求1-6或权利要求7-10中任意一项权利要求所述的方法。
16.一种信息处理设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可实现权利要求1-6或权利要求7-10中任意一项权利要求所述的方法。
CN202010907348.4A 2020-09-01 2020-09-01 一种负载均衡方法以及装置 Active CN112019630B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010907348.4A CN112019630B (zh) 2020-09-01 2020-09-01 一种负载均衡方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010907348.4A CN112019630B (zh) 2020-09-01 2020-09-01 一种负载均衡方法以及装置

Publications (2)

Publication Number Publication Date
CN112019630A CN112019630A (zh) 2020-12-01
CN112019630B true CN112019630B (zh) 2023-09-01

Family

ID=73515637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010907348.4A Active CN112019630B (zh) 2020-09-01 2020-09-01 一种负载均衡方法以及装置

Country Status (1)

Country Link
CN (1) CN112019630B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114707134A (zh) * 2022-05-31 2022-07-05 杭州海康威视数字技术股份有限公司 一种高性能密码卡安全管理方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401947A (zh) * 2013-08-20 2013-11-20 曙光信息产业(北京)有限公司 多个服务器的任务分配方法和装置
CN110602156A (zh) * 2019-03-11 2019-12-20 平安科技(深圳)有限公司 一种负载均衡调度方法及装置
CN111381963A (zh) * 2020-02-28 2020-07-07 腾讯科技(深圳)有限公司 负载均衡方法、装置、计算机可读存储介质和计算机设备
CN111597041A (zh) * 2020-04-27 2020-08-28 深圳市金证科技股份有限公司 一种分布式系统的调用方法、装置、终端设备及服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401947A (zh) * 2013-08-20 2013-11-20 曙光信息产业(北京)有限公司 多个服务器的任务分配方法和装置
CN110602156A (zh) * 2019-03-11 2019-12-20 平安科技(深圳)有限公司 一种负载均衡调度方法及装置
CN111381963A (zh) * 2020-02-28 2020-07-07 腾讯科技(深圳)有限公司 负载均衡方法、装置、计算机可读存储介质和计算机设备
CN111597041A (zh) * 2020-04-27 2020-08-28 深圳市金证科技股份有限公司 一种分布式系统的调用方法、装置、终端设备及服务器

Also Published As

Publication number Publication date
CN112019630A (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN105979007B (zh) 加速资源处理方法、装置及网络功能虚拟化系统
JP4421637B2 (ja) サブタスク・プロセッサの分散スケジューリング
JP5000456B2 (ja) 資源管理システム、資源管理装置およびその方法
US20160203024A1 (en) Apparatus and method for allocating resources of distributed data processing system in consideration of virtualization platform
CN108933829A (zh) 一种负载均衡方法及装置
US20140244844A1 (en) Control device and resource control method
CN110933136A (zh) 一种服务节点选择方法、装置、设备及可读存储介质
CN105830392B (zh) 用于能够实现资源组件分配的方法、节点和计算机程序
JPWO2018220708A1 (ja) 資源割当システム、管理装置、方法およびプログラム
CN112087401B (zh) 分布式存储中实现服务质量的方法和装置
CN112019630B (zh) 一种负载均衡方法以及装置
CN110035128B (zh) 一种直播调度方法、装置、直播系统及存储介质
CN109861922B (zh) 用于控制流量的方法和装置
EP3672203A1 (en) Distribution method for distributed data computing, device, server and storage medium
CN106021026B (zh) 一种备份方法及装置
CN106790354B (zh) 一种防数据拥堵的通信方法及其装置
CN110502343B (zh) 一种资源分配方法、系统、装置及计算机可读存储介质
CN111444074A (zh) 一种数据监控方法、装置、电子设备及可读存储介质
CN110333984B (zh) 接口异常检测方法、装置、服务器及系统
CN115168017B (zh) 一种任务调度云平台及其任务调度方法
US11451056B2 (en) Processing apparatus, processing method, and program for inferring demand response
CN114615276B (zh) 一种内容分发网络域名调度方法及装置
CN102200928A (zh) 计算资源控制设备和计算资源控制方法
CN110708374B (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