负载信息处理方法和装置、消息处理方法和装置、服务器
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种负载信息处理方法和装置、消息处理方法和装置、服务器。
背景技术
目前,分布式消息系统的应用越来越广泛。所述分布式消息系统例如可以包括Spread、Kafka等。分布式消息系统通常可以包括消息发布服务器、消息代理服务器集群和消息处理服务器集群。所述消息发布服务器可以生成消息;可以从所述消息代理服务器集群中选取目标消息代理服务器;可以向所述目标消息代理服务器发送所述消息。所述目标消息代理服务器可以接收所述消息;可以从所述消息处理服务器集群中选取目标消息处理服务器;可以向所述目标消息处理服务器发送所述消息。所述目标消息处理服务器可以接收所述消息;可以对所述消息进行处理。
现有技术中,所述目标消息代理服务器通常采用随机或轮询等方式,从所述消息处理服务器集群中选取目标消息处理服务器。这样,有可能使得所述消息处理服务器集群中各个消息处理服务器的负载差异较大,从而不便于消息的快速处理。
发明内容
本说明书实施例的目的是提供一种负载信息处理方法和装置、消息处理方法和装置、服务器,以使得消息处理服务器集群中各个消息处理服务器的负载保持均衡。
为实现上述目的,本说明实施例提供一种负载信息处理方法,包括:接收消息处理服务器发来的应答信息集合;其中,所述应答信息集合包括至少一个应答信息,且包括所述消息处理服务器的负载信息;基于所述负载信息计算负载量;将计算的负载量作为所述消息处理服务器对应的负载量。
为实现上述目的,本说明实施例提供一种服务器,包括通信组件和处理器;所述通信组件,用于接收消息处理服务器发来的应答信息集合;其中,所述应答信息集合包括至少一个应答信息,包括所述消息处理服务器的负载信息;所述处理器,用于基于所述负载信息计算负载量;将计算的负载量作为所述消息处理服务器对应的负载量。
为实现上述目的,本说明实施例提供一种负载信息处理装置,包括:接收单元,用于接收消息处理服务器发来的应答信息集合;其中,所述应答信息集合包括至少一个应答信息,且包括所述消息处理服务器的负载信息;计算单元,用于基于所述负载信息计算负载量;将计算的负载量作为所述消息处理服务器对应的负载量。
为实现上述目的,本说明实施例提供一种消息处理方法,提供有服务器标识集合;其中,所述服务器标识集合包括至少一个消息处理服务器标识;每个消息处理服务器标识对应有负载量;所述方法包括:接收消息发布服务器发来的消息;基于消息处理服务器标识对应的负载量,从所述服务器标识集合中选取目标消息处理服务器标识;以所述目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息,以便于所述目标消息处理服务器对所述消息进行处理。
为实现上述目的,本说明实施例提供一种服务器,包括通信组件和处理器;所述通信组件,用于接收消息发布服务器发来的消息;以目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息,以便于所述目标消息处理服务器对所述消息进行处理;所述处理器,用于基于消息处理服务器标识对应的负载量,从服务器标识集合中选取目标消息处理服务器标识;其中,所述服务器标识集合包括至少一个消息处理服务器标识;每个消息处理服务器标识对应有负载量。
为实现上述目的,本说明实施例提供一种消息处理装置,包括:接收单元,用于接收消息发布服务器发来的消息;选取单元,用于基于消息处理服务器标识对应的负载量,从服务器标识集合中选取目标消息处理服务器标识;其中,所述服务器标识集合包括至少一个消息处理服务器标识;每个消息处理服务器标识对应有负载量;发送单元,用于以所述目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息,以便于所述目标消息处理服务器对所述消息进行处理。
为实现上述目的,本说明实施例提供一种负载信息处理方法,提供有应答信息队列;所述应答信息队列包括至少一个应答信息;每个应答信息对应有消息代理服务器标识;所述方法包括:在满足预设触发条件时,从所述应答信息队列中获取至少一个应答信息;将自身负载信息添加至每个应答信息;向每个应答信息对应的消息代理服务器发送该应答信息;其中,应答信息对应的消息代理服务器为该应答信息对应的消息代理服务器标识所标识的消息代理服务器。
为实现上述目的,本说明实施例提供一种服务器,包括通信组件和处理器;所述通信组件,用于向每个应答信息对应的消息代理服务器发送该应答信息;其中,应答信息对应的消息代理服务器为该应答信息对应的消息代理服务器标识所标识的消息代理服务器;所述处理器,用于在满足预设触发条件时,从应答信息队列中获取至少一个应答信息;其中,所述应答信息队列包括至少一个应答信息;每个应答信息对应有消息代理服务器标识;将自身负载信息添加至每个应答信息。
为实现上述目的,本说明实施例提供一种负载信息处理装置,包括:获取单元,用于在满足预设触发条件时,从应答信息队列中获取至少一个应答信息;其中,所述应答信息队列包括至少一个应答信息;每个应答信息对应有消息代理服务器标识;添加单元,用于将自身负载信息添加至每个应答信息;发送单元,用于向每个应答信息对应的消息代理服务器发送该应答信息;其中,应答信息对应的消息代理服务器为该应答信息对应的消息代理服务器标识所标识的消息代理服务器。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中消息代理服务器可以接收消息发布服务器发来的消息;可以基于消息处理服务器标识对应的负载量,从服务器标识集合中选取目标消息处理服务器标识;可以以所述目标消息处理服务器标识标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息。所述服务器标识集合可以包括消息处理服务器集群中部分或全部消息处理服务器的标识。这样,所述消息代理服务器可以根据消息处理服务器集群中各个消息处理服务器的负载量,有选择地向所述消息处理服务器集群中的消息处理服务器发送所述消息,以便于该消息处理服务器能够及时快速对接收到的消息进行处理,从而使得所述消息处理服务器集群中各个消息处理服务器负载保持均衡。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例一种分布式消息系统的功能结构示意图;
图2为本说明书实施例一种消息处理方法的流程图;
图3为本说明书实施例一种负载信息处理方法的流程图;
图4为本说明书实施例另一种消息处理方法的流程图;
图5为本申请实施例另一种负载信息处理方法的流程图;
图6为本申请实施例一种服务器的功能结构示意图;
图7为本申请实施例一种负载信息处理装置的功能结构示意图;
图8为本申请实施例一种消息处理装置的功能结构示意图;
图9为本申请实施例另一种负载信息处理装置的功能结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
请参阅图1和图2。为了便于本领域技术人员理解本说明书实施例的技术方案。以下首先介绍实现本说明书实施例的分布式消息系统。
所述分布式消息系统可以包括消息发布服务器、消息代理服务器集群和消息处理服务器集群。所述消息发布服务器可以为一个服务器,还可以为包括多个服务器的服务器集群。所述消息发布服务器可以为一个具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供支持的软体。所述消息代理服务器集群可以包括一个或多个消息代理服务器(Broker)。每个消息代理服务器可以为一个具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供支持的软体。所述消息处理服务器集群可以包括一个或多个消息处理服务器。每个消息处理服务器可以为一个具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供支持的软体。在所述分布式消息系统中,所述消息发布服务器可以与每个消息代理服务器进行通信,每个消息代理服务器可以与每个消息处理服务器进行通信。
在所述分布式消息系统中,所述消息发布服务器可以用于生成消息;可以从所述消息代理服务器集群中选取一个或多个消息代理服务器,作为目标消息代理服务器;可以向所述目标消息代理服务器发送所述消息。具体地,所述消息发布服务器可以采用任意适当的方式,从所述消息代理服务器集群中选取一个或多个消息代理服务器。例如,所述消息发布服务器可以采用随机或轮询等方式,从所述消息代理服务器集群中选取一个或多个消息代理服务器。
所述目标消息代理服务器可以接收所述消息;可以从所述消息处理服务器集群中选取一个或多个消息处理服务器,作为目标消息处理服务器;可以向所述目标消息处理服务器发送所述消息。具体地,所述消息代理服务器集群中的每个消息代理服务器可以提供有服务器标识集合。所述服务器标识集合可以包括至少一个消息处理服务器标识,每个消息处理服务器标识可以用于标识一个消息处理服务器,每个消息处理服务器标识可以对应有负载量。所述服务器标识集合具体可以包括所述消息处理服务器集群中部分或全部消息处理服务器的标识。如此,在接收到所述消息发布服务器发来的消息以后,所述目标消息代理服务器可以基于服务器标识对应的负载量,从所述服务器标识集合中选取一个或多个消息处理服务器标识,作为目标消息处理服务器标识;可以以所述目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器;可以向所述目标消息处理服务器发送所述消息。
所述目标消息处理服务器可以接收所述消息;可以对所述消息进行处理,生成应答信息(Acknowledgement,ACK);可以将自身负载信息添加至所述应答信息;可以向所述目标消息代理服务器返回所述应答信息。所述目标消息代理服务器可以接收所述应答信息;可以基于所述负载信息计算负载量;可以将计算的负载量作为所述目标消息处理服务器标识对应的新的负载量。或者,所述目标消息处理服务器可以接收所述消息;可以对所述消息进行处理,生成应答信息;可以将生成的应答信息添加至应答信息队列。在满足预设触发条件时,所述目标消息处理服务器可以基于所述应答信息队列获取应答信息集合;可以将自身负载信息添加至所述应答信息集合;可以向所述目标消息代理服务器发送所述应答信息集合。其中,所述应答信息集合可以包括至少一个应答信息。所述应答信息集合中应答信息对应的消息代理服务器标识相同,均为所述目标消息代理服务器的标识。所述目标消息代理服务器可以接收所述应答信息集合;可以基于所述负载信息计算负载量;可以将计算的负载量作为所述目标消息处理服务器标识对应的新的负载量。
这样,在所述分布式消息系统中,通过消息代理服务器,消息发布服务器与消息处理服务器之间可以实现异步通信。所述消息代理服务器实现了消息发布服务器与消息处理服务器之间以松散耦合的灵活方式进行消息传递的一种机制,可以屏蔽掉平台和/或协议之间的特性,从而实现了不同平台之间的通信。此外,消息代理服务器还可以有选择地向所述消息处理服务器集群中的消息处理服务器发送消息,使得所述消息处理服务器集群中各个消息处理服务器的负载能够保持均衡。
所述分布式消息系统可以应用于日志处理业务、网络支付业务等。例如,在一个场景示例中,所述分布式消息系统可以应用于网络支付业务。那么,所述消息发布服务器具体可以为业务服务器,所述业务服务器可以用于提供业务服务,所述业务服务例如可以为个人账户充值、贷款、支付等。所述业务服务器生成的消息例如可以为个人账户充值消息、贷款消息、支付消息等。所述消息处理服务器集群具体可以为支付服务器集群,所述支付服务器集群可以包括多个支付服务器,所述支付服务器可以用于提供网络支付服务。
请参阅图2和图3。本说明书实施例提供一种负载信息处理方法。所述负载信息处理方法可以应用于消息代理服务器。所述消息代理服务器可以为消息代理服务器集群中的任意一个消息代理服务器。所述消息代理服务器集群可以包括一个或多个消息代理服务器。关于所述消息代理服务器集群的详细介绍可以参见前述分布式消息系统。这里为了便于描述,在后续过程中,可以将本实施例的消息代理服务器作为标的消息代理服务器。
本实施例的负载信息处理方法可以包括以下步骤。
步骤S102:接收消息处理服务器发来的应答信息集合。
在本实施例中,所述应答信息集合可以包括至少一个应答信息。所述应答信息可以为消息处理者在接收到消息以后或者在消息处理完成以后生成的反馈信息。通常地,消息处理者可以为每个消息生成一个对应的应答信息,并可以向该消息的消息发送者发送生成的应答信息。所述消息处理者例如可以为前述消息处理服务器集群中的消息处理服务器,所述消息发送者例如可以为前述消息代理服务器集群中的消息代理服务器。
在本实施例中,所述应答信息集合中可以包括有所述消息处理服务器的负载信息。所述消息处理服务器的负载信息可以用于描述所述消息处理服务器的负载程度。所述负载信息包括但不限于CPU负载信息、网络负载信息、任务负载信息等。所述CPU负载信息例如可以包括CPU使用率等,所述CPU使用率具体例如可以为10%、20%、50%等;所述网络负载信息例如可以包括网络I/O吞吐量等,所述网络I/O吞吐量具体例如可以为50%、80%等;所述任务负载信息例如可以包括待处理的消息数量、消息处理的耗时等,所述待处理的消息数量具体例如可以为5、10、12等,所述消息处理的耗时具体例如可以为30秒、1分钟、5分钟等。当然,本领域技术人员应当能够理解,以上的负载信息仅为列举,在实际中还可以包括其它的负载信息。此外,需要说明的是,在所述应答信息集合包括一个应答信息时,所述应答信息集合包括有所述消息处理服务器的负载信息可以理解为:该应答信息包括有所述消息处理服务器的负载信息。
在本实施例中,所述应答信息集合中的每个应答信息可以对应有消息代理服务器标识。所述消息代理服务器标识可以用于标识一个消息代理服务器,具体例如可以为该消息代理服务器的名称、IP地址、物理地址(Media Access Control,MAC)等。每个应答信息对应的消息代理服务器标识可以用于标识一个消息代理服务器,该消息代理服务器可以用于发送该应答信息对应的消息。具体在本实施例中,所述应答信息集合中每个应答信息对应的消息代理服务器标识可以相同,均可以用于标识所述标的消息代理服务器。
在本实施例中,所述消息处理服务器可以提供有应答信息队列。所述队列可以为一种数据结构。所述应答信息队列可以用于存储应答信息。所述应答信息队列中各个应答信息对应的消息代理服务器标识可以相同或不同。如此,在满足预设触发条件时,所述消息处理服务器可以从所述应答信息队列中选取对应于标的消息代理服务器的标识的至少一个应答信息,可以将选取的应答信息作为应答信息集合中的应答信息;或者,还可以获取所述应答信息队列的全部或部分应答信息,可以从获取应答信息中选取对应于标的消息代理服务器的标识的至少一个应答信息,可以将选取的应答信息作为应答信息集合中的应答信息。所述预设触发条件例如可以为监听到所述应答信息队列中包括有应答信息、达到预设时间周期、所述应答信息队列中应答信息的数量达到预设数值等。
继而,所述消息处理服务器可以获取自身负载信息;可以将自身负载信息添加至所述应答信息集合;可以向所述标的消息代理服务器发送所述应答信息集合。所述标的消息代理服务器可以接收所述应答信息集合。需要说明的是,所述消息处理服务器可以将自身负载信息直接作为所述应答信息集合的组成部分;或者,还可以将自身负载信息与所述应答信息集合进行数据格式封装。当然,本领域技术人员应答能够理解,所述消息处理服务器还可以采用其它方式将自身负载信息添加至所述应答信息集合,本实施例对此并不做具体限定。
步骤S104:基于所述负载信息计算负载量,将计算的负载量作为所述消息处理服务器对应的负载量。
在本实施例中,所述负载量可以用于表示所述消息处理服务器的负载程度。所述负载量可以与所述消息处理服务器的负载程度正相关。所述负载量可以为任意实数,例如可以为10%、50%、90%、10、50、100等。
在本实施例中,所述应答信息集合包括的负载信息的数量可以为一个或多个。如此,所述标的消息代理服务器可以将每个负载信息分别作为一个负载量;或者,还可以对所述一个或多个负载信息进行数学运算,可以将数学运算的结果作为一个负载量。所述数学运算包括但不限于加法、减法、乘法、除法等。例如,所述应答信息集合可以包括CPU使用率。那么,所述标的消息代理服务器可以将所述CPU使用率作为负载量。另举一例,所述应答信息集合可以包括CPU使用率和网络I/O吞吐量。那么,所述标的消息代理服务器可以将所述CPU使用率与一个加权参数进行乘法运算,得到乘法运算结果;可以将所述网络I/O吞吐量与另一个加权参数进行乘法运算,得到乘法运算结果;可以将所述两个乘法运算结果进行加法运算;可以将加法运算结果作为负载量。具体地,例如,所述CPU使用率可以为50%,所述网络I/O吞吐量可以为60%。那么,所述服务器可以将50%×0.6+60%×0.5的运算结果60%作为负载量。当然,所述标的消息代理服务器还可以采用其它方式来计算负载量,本实施例对此并不做具体限定。
在本实施例中,所述标的消息代理服务器可以将计算的负载量作为所述消息处理服务器对应的负载量。如此,所述标的消息代理服务器可以获知所述消息处理服务器的负载情况。
在本实施例中,所述标的消息代理服务器可以接收消息处理服务器发来的应答信息集合,所述应答信息集合可以包括所述消息处理服务器的负载信息;可以基于所述负载信息计算负载量,可以将计算的负载量作为所述消息处理服务器对应的负载量。在本实施例中,将应答信息集合作为载体,使得所述应答信息集合中携带有负载信息。这样,所述消息处理服务器可以不必单独向所述标的消息代理服务器上传自身负载信息,从而可以减少网络上传输的数据量,节省网络资源。
另外,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
请参阅图2和图4。本说明书实施例提供一种消息处理方法。所述消息处理方法可以应用于消息代理服务器。所述消息代理服务器可以为消息代理服务器集群中的任意一个消息代理服务器。所述消息代理服务器集群可以包括一个或多个消息代理服务器。关于所述消息代理服务器集群的详细介绍可以参见前述分布式消息系统。这里为了便于描述,在后续过程中,可以将本实施例应用于的消息代理服务器作为标的消息代理服务器。
在本实施例中,所述标的消息代理服务器可以提供有服务器标识集合。所述服务器标识集合可以包括一个或多个消息处理服务器标识。每个消息处理服务器标识可以用于标识一个消息处理服务器,具体例如可以为消息处理服务器的名称、IP地址、物理地址(Media Access Control,MAC)等。每个消息处理服务器标识可以对应有负载量,该负载量可以用于表示该消息处理服务器标识所标识消息处理服务器的负载程度。所述负载量可以与所述负载程度正相关。需要说明的是,所述服务器标识集合可以包括消息处理服务器集群中部分或全部消息处理服务器的标识。所述消息处理服务器集群可以包括一个或多个消息处理服务器。关于所述消息处理服务器集群的详细介绍可以参见前述分布式消息系统。
本实施例的消息处理方法可以包括以下步骤。
步骤S202:接收消息发布服务器发来的消息。
在本实施例中,消息发布服务器可以向所述标的消息代理服务器发送所述消息。所述标的消息代理服务器可以接收所述消息。具体地,如前所述,所述标的消息代理服务器可以为消息代理服务器集群中的一个消息代理服务器。如此,所述消息发布服务器可以生成消息;可以采用任意适当的方式,从所述消息代理服务器集群中选取消息代理服务器。例如,可以采用随机或轮询等方式,从所述消息代理服务器集群中选取消息代理服务器。所述消息发布服务器选取的消息代理服务器便可以为本实施例的标的消息代理服务器。所述消息发布服务器继而可以向所述标的消息代理服务器发送所述消息。所述标的消息代理服务器可以接收所述消息。
步骤S204:基于消息处理服务器标识对应的负载量,从所述服务器标识集合中选取目标消息处理服务器标识。
在本实施例中,所述目标消息代理服务器可以基于消息处理服务器标识对应的负载量,从所述服务器标识集合中选取一个或多个消息处理服务器标识,作为目标消息处理服务器标识。具体地,所述目标消息代理服务器可以从所述服务器标识集合中选取对应负载量最小的一个或多个消息处理服务器标识;或者,还可以从所述服务器标识集合中选取对应负载量小于或等于负载阈值的一个或多个消息处理服务器标识。所述负载阈值可以根据实际需要灵活设定,例如可以为30%、40%、10、20、40等。此外,所述目标消息代理服务器也可以向用户提供可以设置所述负载阈值的功能,并可以根据用户的设置来设定所述负载阈值的大小。当然,所述标的消息代理服务器还可以采用其它方式来计算负载量,本实施例对此并不做具体限定。
步骤S206:以所述目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息。
在本实施例中,鉴于所述目标消息处理服务器标识的数量可以为一个或多个,所述目标消息处理服务器的数量也可以为一个或多个。所述标的消息代理服务器可以以所述目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息。所述目标消息处理服务器可以接收所述消息;可以对所述消息进行处理,生成应答信息;可以向所述标的消息代理服务器发送所述应答信息。
在本实施例的一个实施方式中,所述标的消息代理服务器还可以向所述目标消息处理服务器发送自身标识。所述目标消息处理服务器可以接收所述标的消息代理服务器的标识;可以建立所述应答信息与所述标的消息代理服务器的标识的对应关系。所述标的消息代理服务器的标识可以用于标识所述标的消息代理服务器,具体例如可以为所述标的消息代理服务器的名称、IP地址、物理地址等。所述标的消息代理服务器具体可以在向所述目标消息处理服务器发送所述消息之前,向所述目标消息处理服务器发送自身标识;或者,也可以在向所述目标消息处理服务器发送所述消息之后,向所述目标消息处理服务器发送自身标识;又或者,还可以同时向所述目标消息处理服务器发送所述消息和自身标识。这样,所述目标消息处理服务器中的每个应答信息可以对应有消息代理服务器标识,便于识别每个应答信息对应的消息代理服务器。
在本实施例的一个实施方式中,所述目标消息处理服务器还可以获取自身负载信息;可以将自身负载信息添加至所述应答信息;可以向所述标的消息代理服务器发送所述应答信息。所述标的消息代理服务器可以接收所述应答信息;可以基于所述负载信息计算负载量;可以将计算的负载量作为所述目标消息处理服务器的标识对应的新的负载量。关于所述负载信息的详细介绍可以参见图3对应负载信息处理方法实施例;关于所述目标消息处理服务器将自身负载信息添加至所述应答信息的过程,可以参见图3对应负载信息处理方法实施例中,消息处理服务器将自身负载信息添加至应答信息集合的过程。这样,所述目标消息处理服务器向所述标的消息代理服务器返回的应答信息中可以包括所述目标消息处理服务器的负载信息。
在本实施例的一个实施方式中,所述目标消息处理服务器可以提供有应答信息队列。关于所述应答队列的详细介绍可以参见图3对应负载信息处理方法实施例。如此,在生成应答信息后,所述目标消息处理服务器可以将生成的应答信息添加至所述应答信息队列。在满足预设触发条件时,所述目标消息处理服务器可以从所述应答信息队列中获取应答信息集合;可以将自身负载信息添加至所述应答信息集合;可以向所述标的消息代理服务器发送所述应答信息集合。其中,关于所述预设触发条件的详细介绍可以参见图3对应负载信息处理方法实施例;所述应答信息集合中应答信息对应的消息代理服务器标识相同,均为所述标的消息代理服务器的标识;关于所述目标消息处理服务器获取应答信息集合的过程,在后续图5对应负载信息处理方法实施例中会有详细介绍。所述标的消息代理服务器可以接收所述应答信息集合;可以基于所述负载信息计算负载量;可以将计算的负载量作为所述目标消息处理服务器的标识对应的新的负载量。这样,可以避免网络上大量的应答信息的传输,从而可以减少网络上传输的数据量,节省网络资源。
在本实施例中,所述标的消息代理服务器可以接收消息发布服务器发来的消息;可以基于消息处理服务器标识对应的负载量,从所述服务器标识集合中选取目标消息处理服务器标识;可以以所述目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息。这样,所述标的消息代理服务器可以根据消息处理服务器集群中各个消息处理服务器的负载量,有选择地向所述消息处理服务器集群中的消息处理服务器发送所述消息,以便于该消息处理服务器能够及时快速对接收到的消息进行处理,从而使得所述消息处理服务器集群中各个消息处理服务器负载保持平衡。
另外,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
请参阅图2和图5。本申请实施例还提供一种负载信息处理方法。所述负载信息处理可以应用于消息处理服务器。所述消息处理服务器可以为消息处理服务器集群中的任意一个消息处理服务器。所述消息代理服务器集群可以包括一个或多个消息处理服务器。关于所述消息处理服务器集群的详细介绍可以参见前述的分布式消息系统。这里为了便于描述,在后续过程中,可以将本实施例应用于的消息处理服务器作为标的消息处理服务器。
在本实施例中,所述标的消息处理服务器可以提供有应答信息队列。所述队列可以为一种数据结构。所述应答信息队列可以用于存储应答信息。所述应答信息队列具体可以包括至少一个应答信息。每个应答信息可以对应有消息代理服务器标识,所述消息代理服务器标识可以用于标识一个消息代理服务器,具体例如可以为该消息代理服务器的名称、IP地址、物理地址(Media Access Control,MAC)等。每个应答信息对应的消息代理服务器标识可以用于标识一个消息代理服务器,该消息代理服务器可以用于发送该应答信息对应的消息。所述应答信息队列中各个应答信息对应的消息代理服务器标识可以相同或不同。
本实施例的消息处理方法可以包括以下步骤。
步骤S302:在满足预设触发条件时,从所述应答信息队列中获取至少一个应答信息。
在本实施例中,在满足预设触发条件时,所述标的消息处理服务器可以从所述应答信息队列中获取部分或全部应答信息。关于所述预设触发条件的详细介绍可以参见图3对应负载信息处理方法实施例。
步骤S304:将自身负载信息添加至每个应答信息。
在本实施例中,所述标的消息处理服务器可以获取自身负载信息;可以将自身负载信息添加至每个应答信息。关于所述负载信息的详细介绍可以参见图3对应负载信息处理方法实施例。关于所述标的消息处理服务器将自身负载信息添加至所述应答信息的过程,可以参见图3对应负载信息处理方法实施例中,消息处理服务器将自身负载信息添加至应答信息集合的过程。这样,所述标的消息处理服务器获取的每个应答信息可以包括自身负载信息。
步骤S306:向每个应答信息对应的消息代理服务器发送该应答信息。
在本实施例中,应答信息对应的消息代理服务器可以为该应答信息对应的消息代理服务器标识所标识的消息代理服务器。所述标的消息处理服务器可以向每个应答信息对应的消息代理服务器发送该应答信息。
在本实施例的一个实施方式中,所述标的消息处理服务器还可以将所述至少一个应答信息划分至至少一个应答信息集合;可以将自身负载信息添加至每个应答信息集合;可以向每个应答信息集合对应的消息代理服务器发送该应答信息集合。
在本实施方式中,每个应答信息集合可以包括至少一个应答信息。每个应答信息集合中各个应答信息对应的消息代理服务器标识可以相同。应答信息集合对应的消息代理服务器可以为该应答信息集合中的应答信息对应的消息代理服务器,应答信息对应的消息代理服务器可以为该应答信息对应的消息代理服务器标识所标识的消息代理服务器。
在本实施方式中,所述标的消息处理服务器不必分别向消息代理服务器发送每个应答信息,而是可以向消息代理服务器发送应答信息集合。这样,可以避免网络上大量的应答信息的传输,从而可以减少网络上传输的数据量,节省网络资源。
在本实施例中,所述标的信息处理服务器在满足预设触发条件时,可以从应答信息队列中获取至少一个应答信息;可以将自身负载信息添加至每个应答信息;可以向每个应答信息对应的消息代理服务器发送该应答信息。在本实施例中,将应答信息作为载体,使得应答信息中包括有负载信息。这样,所述标的消息处理服务器可以不必单独向消息代理服务器上传自身负载信息,从而可以减少网络上传输的数据量,节省网络资源。
另外,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
请参阅图6。本说明书实施例还提供一种服务器。所述服务器可以包括通信组件和处理器。
在本实施例中,所述通信组件可以按任何适当的方式实现,包括但不限于有线网卡、无线网卡、蓝牙模块、红外收发模块、超宽带通信模块、以及紫蜂协议通信模块等。
在本实施例中,所述通信组件可以用于接收消息处理服务器发来的应答信息集合;其中,所述应答信息集合包括至少一个应答信息,且包括所述消息处理服务器的负载信息。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
在本实施例中,所述处理器可以用于基于所述负载信息计算负载量;将计算的负载量作为所述消息处理服务器对应的负载量。
本实施例中的服务器,其通信组件和处理器实现的具体功能,可以与本说明书中的前述负载信息处理方法实施例相对照解释。
请参阅图7。本说明书实施例还提供一种负载信息处理装置,包括接收单元702和计算单元704。其中,
所述接收单元702,用于接收消息处理服务器发来的应答信息集合;其中,所述应答信息集合包括至少一个应答信息,且包括所述消息处理服务器的负载信息;
所述计算单元704,用于基于所述负载信息计算负载量;将计算的负载量作为所述消息处理服务器对应的负载量。
请参阅图6。本说明书实施例还提供另一种服务器。所述服务器可以包括通信组件和处理器。
在本实施例中,所述通信组件可以按任何适当的方式实现,包括但不限于有线网卡、无线网卡、蓝牙模块、红外收发模块、超宽带通信模块、以及紫蜂协议通信模块等。
在本实施例中,所述通信组件可以用于接收消息发布服务器发来的消息;以目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息,以便于所述目标消息处理服务器对所述消息进行处理。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
在本实施例中,所述处理器可以用于基于消息处理服务器标识对应的负载量,从服务器标识集合中选取目标消息处理服务器标识;其中,所述服务器标识集合包括至少一个消息处理服务器标识;每个消息处理服务器标识对应有负载量。
本实施例中的服务器,其通信组件和处理器实现的具体功能,可以与本说明书中的前述负载信息处理方法实施例相对照解释。
请参阅图8。本说明书实施例还提供一种消息处理装置,包括接收单元802、选取单元804和发送单元806。其中,
所述接收单元802,用于接收消息发布服务器发来的消息;
所述选取单元804,用于基于消息处理服务器标识对应的负载量,从服务器标识集合中选取目标消息处理服务器标识;其中,所述服务器标识集合包括至少一个消息处理服务器标识;每个消息处理服务器标识对应有负载量;
所述发送单元806,用于以所述目标消息处理服务器标识所标识的消息处理服务器作为目标消息处理服务器,向所述目标消息处理服务器发送所述消息,以便于所述目标消息处理服务器对所述消息进行处理。
请参阅图6。本说明书实施例还提供另一种服务器。所述服务器可以包括通信组件和处理器。
在本实施例中,所述通信组件可以按任何适当的方式实现,包括但不限于有线网卡、无线网卡、蓝牙模块、红外收发模块、超宽带通信模块、以及紫蜂协议通信模块等。
在本实施例中,所述通信组件可以用于向每个应答信息对应的消息代理服务器发送该应答信息;其中,应答信息对应的消息代理服务器为该应答信息对应的消息代理服务器标识所标识的消息代理服务器。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
在本实施例中,所述处理器可以用于在满足预设触发条件时,从应答信息队列中获取至少一个应答信息;将自身负载信息添加至每个应答信息;其中,所述应答信息队列包括至少一个应答信息;每个应答信息对应有消息代理服务器标识。
本实施例中的服务器,其通信组件和处理器实现的具体功能,可以与本说明书中的前述消息处理方法实施例相对照解释。
请参阅图9。本说明书实施例还提供一种负载信息处理装置,包括获取单元902、添加单元904和发送单元906。其中,
所述获取单元902,用于在满足预设触发条件时,从应答信息队列中获取至少一个应答信息;其中,所述应答信息队列包括至少一个应答信息;每个应答信息对应有消息代理服务器标识;
所述添加单元904,用于将自身负载信息添加至每个应答信息;
所述发送单元906,用于向每个应答信息对应的消息代理服务器发送该应答信息;其中,应答信息对应的消息代理服务器为该应答信息对应的消息代理服务器标识所标识的消息代理服务器。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务器实施例、负载信息处理装置实施例、消息处理装置实施例和负载信息处理装置实施例而言,由于其基本相似于负载信息处理方法实施例、消息处理方法实施例和负载信息处理方法实施例,所以描述的比较简单,相关之处参见这些实施例的部分说明即可。
另外,可以理解的是,所属领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到本说明书文件中列举的部分或全部实施例之间可以组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。