一种控制消息分发的方法及装置的制造方法

文档序号:10569778阅读:150来源:国知局
一种控制消息分发的方法及装置的制造方法
【专利摘要】本发明公开一种控制消息分发的方法及装置,该方法包括:针对实时流式计算系统中的每个计算单元,获取所述每个计算单元在设定周期内处理消息的执行状态;针对一个计算单元,若所述计算单元的执行状态满足设定的工作效率指标,则确定所述计算单元对应的上游计算单元;向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,以使所述上游计算单元调整对所述计算单元的消息分发状态,用以解决现有技术中存在数据流堵塞、消息处理的吞吐量低的问题。
【专利说明】
一种控制消息分发的方法及装置
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种控制消息分发的方法及装置。
【背景技术】
[0002]但随着移动互联网的迅速发展,大量由互联网产生的结构化、非结构化数据需要分析和处理,但企业级数据仓库不适合非结构化数据的处理;另外,传统数据仓库对于海量数据的实时性的处理能力不足,无法满足信息时效性的需求。针对数据仓库的弊端,现有技术提出一种实时流式计算系统,该系统成为对海量数据进行计算和处理的主要方式之一。
[0003]实时流式计算系统的基本原理是:把海量实时数据抽象为一个个独立的消息,然后把这些消息分发到预先分配好的计算单元上,一个计算单元计算完成后,会把计算结果按照预先设定的消息流的处理顺序(拓扑关系)传递给后续的计算单元(也称下游计算节点),直到消息流处理完毕为止。上、下游计算节点之间消息流的传递可以采用点对点传递的同步模型,也可以采用分布式消息队列进行传递。
[0004]在大数据的实时数据处理场景中,上游数据源产生数据流的频率时常具有不确定的波动性,一方面,系统高峰时产生的数据流量会增大,而系统低峰时产生的数据流量会降低;另一方面,前台业务逻辑调整也会导致数据流量波动,例如:在购物网站进行促销活动的时段,卖家操作频繁,商品变化频率会异常增加,活动结束后,商品变化率又恢复正常,导致数据流量产生大幅度波动。因此,现有的实时流式计算系统在数据流的处理过程中,会存在数据流堵塞、或消息处理的吞吐量低的问题。

【发明内容】

[0005]本发明实施例提供一种控制消息分发的方法及装置,用以解决现有技术中存在数据流堵塞、或消息处理的吞吐量低的问题。
[0006]本发明方法包括一种控制消息分发的方法,该方法包括:针对实时流式计算系统中的每个计算单元,获取所述每个计算单元在设定周期内处理消息的执行状态;针对一个计算单元,若所述计算单元的执行状态满足设定的工作效率指标,则确定所述计算单元对应的上游计算单元;向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,以使所述上游计算单元调整对所述计算单元的消息分发状态。
[0007]基于同样的发明构思,本发明实施例进一步地提供一种控制消息分发的装置,该装置包括:获取单元,用于针对实时流式计算系统中的每个计算单元,获取所述每个计算单元在设定周期内处理消息的执行状态;确定单元,用于针对一个计算单元,若所述计算单元的执行状态满足设定的工作效率指标,则确定所述计算单元的上游计算单元;发送单元,用于向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,以使所述上游计算单元调整对所述计算单元的消息分发状态。
[0008]本发明实施例通过监控每个计算单元的执行状态,利用设定的工作效率指标作为判断标准,确定出满足判断标准的计算单元,然后向满足判断标准的计算单元的上游计算单元发送相应的调整指令,上游计算单元根据指令调整消息的分发速度,即若下游计算单元可能会发生堵塞,则降低消息的分发速度;若下游计算单元很快完成了消息的处理,则加大消息的分发量,因此,计算单元在数据流的处理过程中,因对消息分发的实时调节,避免了计算单元中发生堵塞的概率,同时也能够充分利用计算单元的资源,提高了计算单元的消息处理的吞吐量。
【附图说明】
[0009]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0010]图1为本发明实施例提供一种控制消息分发的方法流程示意图;
[0011 ]图2为本发明实施例提供一个实时流式计算系统示意图;
[0012]图3为本发明实施例提供无数据聚合支付交易场景的时流式计算系统示意图;
[0013]图4为本发明实施例提供发生数据聚合支付交易场景的时流式计算系统示意图;
[0014]图5为本发明实施例提供一种控制消息分发的装置示意图。
【具体实施方式】
[0015]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0016]参见图1所示,本发明实施例提供一种控制消息分发的方法流程示意图,具体地实现方法包括:
[0017]步骤SlOI,针对实时流式计算系统中的每个计算单元,获取所述每个计算单元在设定周期内处理消息的执行状态。
[0018]步骤S102,针对一个计算单元,若所述计算单元的执行状态满足设定的工作效率指标,则确定所述计算单元对应的上游计算单元。
[0019]步骤S103,向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,以使所述上游计算单元调整对所述计算单元的消息分发状态。
[0020]在执行步骤SlOl中,实时流式计算系统中的每个计算单元一般是通过有向无环图(Directed Acyclic Graph,DAG)来组织其数据流向。针对一项计算任务,实时流式计算系统会预先按照策略逻辑将计算单元按照一定顺序组织在一起。当数据流进入实时流式计算系统,就会按照预设的顺序,依次被每个计算单元处理。
[0021]另外,本发明实施例监控每个计算单元在设定周期内处理消息的执行状态,所述执行状态通常指的是用于衡量计算单元执行计算任务负荷情况的一些指标,在本实施例中,该指标主要包括计算单元的消息处理速度和计算单元的消息处理时延。所谓消息处理速度指的是一个计算单元在单位时间内处理的消息的数量;所谓消息处理时延指的是一个计算单元接收一个消息的时刻与处理该消息结束时刻之间差值。该消息处理时延的单位一般采用ms(毫秒)。对于一个具体的计算单元,该消息处理时延一般采用多个消息时延的平均值作为衡量标准。
[0022]进一步地,所述的设定的工作效率指标包括高效率指标和低效率指标;考虑到消息处理速度的快慢和消息处理时延的长短的差别,因此所述高效率指标为所述计算单元在所述设定周期内处理的消息的数量大于第一阈值时对应的消息处理速度;或者,所述高效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延小于第二阈值时对应的消息处理时延;所述低效率指标为所述计算单元在所述设定周期内处理的消息的数量小于第三阈值时对应的消息处理速度;或者,所述低效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延大于第四阈值时对应的消息处理时延。
[0023]具体地,在一个实时流式计算系统中,不同的计算单元有可能处于不同的执行状态,即一个计算单元当前的执行状态可能满足高效率指标,另一个计算单元的执行状态有可能满足低效率指标,因此通过设置对每个计算单元的执行状态的监控,得到计算单元的执行状态,进而判断出是否满足高效率指标或者低效率指标。当然,每个计算单元的执行状态有可能在不同时间段有可能也不相同,即前一周期满足高效率指标,后一周期则有可能满足低效率指标,因此对计算单元的执行状态的监控是实时的,每隔一个设定的周期就会反馈这一周期内的计算单元的执行状态,具体的设定周期和指标中的阈值根据实际经验值确定。
[0024]若所述计算单元的执行状态满足高效率指标,则向所述上游计算单元发送提高消息分发速度的调整指令;若所述计算单元的执行状态满足低效率指标,则向所述上游计算单元发送降低消息分发速度的调整指令。
[0025]具体地,例如,监控到实时流式计算系统中一个计算单元的消息处理速度缓慢或者是消息处理时延较长,该计算单元满足低效率指标,判断出该计算单元中存在大量未完成处理的消息,此时如果继续向该计算单元发送消息流,则很可能造成该计算单元因积压过多消息发生堵塞,因此此时及时向上游计算单元发送调整指令,上游计算单元接收到指令后,将减少向该计算单元发送的消息数量。又或者,监控实时流式计算系统中一个计算单元的消息处理速度较快或者消息处理时延较短,该计算单元满足高效率指标,判断出该计算单元中消息积压较少,计算单元中的资源利用率不足,因此及时向上游计算单元发送调整指令,上游计算单元接收到指令后,将加大向该计算单元发送的消息数量。这样,计算单元的执行状态得到有效的调节,基本上处于最好的执行状态,既不会发生堵塞,也不会浪费资源,使得计算单元的消息处理的吞吐量得以提高。
[0026]例如,本发明实施例通过提供一个实时流式计算系统,如图2所示,以阐述上述控制消息分发的方法的实现过程。
[0027]图2中的实时流式计算系统应用在银联风控系统中,其中,计算单元I负责判断POS(point of sale,销售终端)交易单中的虚假交易,计算单元2负责统计计算POS交易单中交易数据。当关于POS机交易的消息队列通过分发模块,将消息分发到计算单元中时,消息队列会先经过计算单元I,再通过计算单元I分发到计算单元2,假若计算单元2因处理速度缓慢,导致连续积压很多消息,图2中控制消息分发的装置中的获取单元获取当前时间段内计算单元2的执行状态,确定单元确定出计算单元2满足低效率指标,因此发送单元向计算单元I发送调整指令,计算单元I接收到指令后降低向计算单元I发送的消息的数量,或者是延长每次向计算单元发送消息的周期。
[0028]进一步地,若所述计算单元为根计算单元,所述向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,还包括:向消息总分发单元发送与所述设定的工作效率指标相应的调整指令,以使所述消息总分发单元调整对所述计算单元的消息分发状态,所述计算单元为根计算单元。
[0029]例如,图2中控制消息分发的装置监测到计算单元I的执行状态满足高效率指标,因为计算单元I在该实时流式计算系统中处于根节点,所以向消息总分发单元发送调整指令,消息总分发单元接收到调整指令后,增大每次向计算单元I发送的消息数量,或者减短每次向计算单元I发送消息的周期。
[0030]在上述实时流式计算系统中,所述实时流式计算系统中的每个计算单元之间的消息传送方式是以定期批量的消息集合形式传送,即在计算单元中增加用于缓存的存储器,设定一个发送周期t,每隔时间t向下游计算单元发送缓存状态为“未发送”的消息集合,该消息集合中包含若干消息,同时标记该消息集合状态为“已发送”,待该消息集合处理完毕后,将消息集合标记为“已处理”,并定期清理缓存中“已处理”消息集合。这样,相比现有技术一次只发送一个消息,在目前秒级及百毫秒级的实时性要求的情况下,可以提高消息处理的效率。
[0031]考虑到计算单元会发生故障的情况,应用本发明实施例提供的控制消息分发的方法也可以监测到具体的计算单元是否处于故障,继而针对发生故障的计算单元采取处理措施,具体地,所述故障指标为所述计算单元在所述设定周期内处理的消息的数量少于第五阈值;所述向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,包括:向所述上游计算单元发送故障指令,以停止向所述计算单元分发消息。
[0032]例如,图2中控制消息分发的装置监测到计算单元2发生故障,在设定时间段内没有处理任何消息,贝Ij向计算单元I发送指令,计算单元I停止向计算单元2发送任何消息,将消息全部分发到消息3上。可以,因为及时监测到计算单元2发生故障,并将消息流转发到计算单元3,可以避免消息在计算单元2上的堆积,提高的消息处理的稳定性。
[0033]鉴于一个实施流式计算系统由多个计算单元组成,但是现有技术中的计算单元通常平均分布在每一个物理主机上,消耗了大量的网络资源,进而导致数据处理时间变长、数据处理的吞吐量下降,因此,本发明实施例进一步地将功能相互关联的上游计算单元和下游计算单元存储在相同的物理主机中,具体地,本发明实施例通过提供互联网支付交易与移动支付交易的场景进行举例说明,参见图3和图4所示。
[0034]在本实施例中实时流式计算系统以银联卡实时风控系统为例,其中消息队列指的是互联网支付交易数据与移动支付交易数据,假若互联网支付交易数据与移动支付交易数据不需要发生数据聚合,如图3所示,互联网支付交易数据通过物理主机I中的两个计算单元进行处理,所述物理主机I中的两个计算单元分别用于计算单元I用于判断交易金额是否超出一万元,计算单元2用于判断是否使用了代理IP(Internet Protocol,网协);移动支付交易数据通过物理主机2中的两个计算单元进行处理,所述物理主机2中的两个计算单元分别用于计算单元3用于判断交易金额是否超出一万元,计算单元4用于判断手机归属地与IP地址是否一致。当互联网支付交易数据经过物理主机I,移动支付交易数据经过物理主机2,就可以完成对消息队列是否是欺诈交易的判断。
[0035]另外,假若互联网支付交易数据与移动支付交易数据需要发生数据聚合,如图4所示,新增物理主机3,当互联网支付交易数据经过物理主机I,移动支付交易数据经过物理主机2之后,通过物理主机3中的计算单元5,完成对移动支付以及互联网交易进行数据流的聚合比较,两者可以通过相同卡号进行数据的聚合操作,继而判断出移动支付交易数据和互联网支付交易数据中的欺诈交易。可见,现有技术不同物理主机各有处理不同逻辑的计算单元,计算单元越多,物理主机越多,导致消息的处理时间增长,本发明实施例将部分逻辑合并到相同的物理主机上,可以减短消息处理的时延,提高消息处理的效率。
[0036]基于相同的技术构思,本发明实施例还提供一种控制消息分发的装置,该装置可执行上述方法实施例。本发明实施例提供的装置如图5所示,包括:获取单元401、确定单元402、发送单元403,其中:
[0037]获取单元401,用于针对实时流式计算系统中的每个计算单元,获取所述每个计算单元在设定周期内处理消息的执行状态;
[0038]确定单元402,用于针对一个计算单元,若所述计算单元的执行状态满足设定的工作效率指标,则确定所述计算单元的上游计算单元;
[0039]发送单元403,用于向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,以使所述上游计算单元调整对所述计算单元的消息分发状态。
[0040]其中,所述的设定的工作效率指标包括尚效率指标和低效率指标;具体地,所述尚效率指标为所述计算单元在所述设定周期内处理的消息的数量大于第一阈值时对应的消息处理速度;或者,所述高效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延小于第二阈值时对应的消息处理时延;所述低效率指标为所述计算单元在所述设定周期内处理的消息的数量小于第三阈值时对应的消息处理速度;或者,所述低效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延大于第四阈值时对应的消息处理时延。
[0041]进一步地,所述发送单元403具体用于:若所述计算单元的执行状态满足高效率指标,则向所述上游计算单元发送提高消息分发速度的调整指令;若所述计算单元的执行状态满足低效率指标,则向所述上游计算单元发送降低消息分发速度的调整指令。所述计算单元为根计算单元,所述发送单元403还用于向消息总分发单元发送与所述设定的工作效率指标相应的调整指令,以使所述消息总分发单元调整对所述计算单元的消息分发状态。
[0042]进一步地,所述设定的工作效率指标还包括故障指标,所述故障指标为所述计算单元在所述设定周期内处理的消息的数量少于第五阈值;所述所述发送单元403还用于:向所述上游计算单元发送故障指令,以停止向所述计算单元分发消息。
[0043]进一步地,所述实时流式计算系统中的每个计算单元之间的消息传送方式是以定期批量的消息集合形式传送。
[0044]进一步地,所述实时流式计算系统中的功能相互关联的上游计算单元和下游计算单元存储在相同的物理主机中。
[0045]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0046]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0047]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0048]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0049]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种控制消息分发的方法,其特征在于,该方法包括: 针对实时流式计算系统中的每个计算单元,获取所述每个计算单元在设定周期内处理消息的执行状态; 针对一个计算单元,若所述计算单元的执行状态满足设定的工作效率指标,则确定所述计算单元对应的上游计算单元;向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,以使所述上游计算单元调整对所述计算单元的消息分发状态。2.如权利要求1所述的方法,其特征在于,所述的设定的工作效率指标包括高效率指标和低效率指标; 所述向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,包括: 若所述计算单元的执行状态满足高效率指标,则向所述上游计算单元发送提高消息分发速度的调整指令; 若所述计算单元的执行状态满足低效率指标,则向所述上游计算单元发送降低消息分发速度的调整指令。3.如权利要求2所述的方法,其特征在于,所述高效率指标为所述计算单元在所述设定周期内处理的消息的数量大于第一阈值时对应的消息处理速度;或者,所述高效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延小于第二阈值时对应的消息处理时延; 所述低效率指标为所述计算单元在所述设定周期内处理的消息的数量小于第三阈值时对应的消息处理速度;或者,所述低效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延大于第四阈值时对应的消息处理时延。4.如权利要求1所述的方法,其特征在于,若所述计算单元为根计算单元,所述向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,还包括: 向消息总分发单元发送与所述设定的工作效率指标相应的调整指令,以使所述消息总分发单元调整对所述计算单元的消息分发状态。5.如权利要求1所述的方法,其特征在于,所述设定的工作效率指标还包括故障指标,所述故障指标为所述计算单元在所述设定周期内处理的消息的数量少于第五阈值; 所述向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,包括: 向所述上游计算单元发送故障指令,以停止向所述计算单元分发消息。6.如权利要求1?5任一项所述的方法,其特征在于,所述实时流式计算系统中的每个计算单元之间的消息传送方式是以定期批量的消息集合形式传送。7.如权利要求1?5任一项所述的方法,其特征在于,所述实时流式计算系统中的功能相互关联的上游计算单元和下游计算单元存储在相同的物理主机中。8.一种控制消息分发的装置,其特征在于,该装置包括: 获取单元,用于针对实时流式计算系统中的每个计算单元,获取所述每个计算单元在设定周期内处理消息的执行状态; 确定单元,用于针对一个计算单元,若所述计算单元的执行状态满足设定的工作效率指标,则确定所述计算单元的上游计算单元; 发送单元,用于向所述上游计算单元发送与所述设定的工作效率指标相应的调整指令,以使所述上游计算单元调整对所述计算单元的消息分发状态。9.如权利要求8所述的装置,其特征在于,所述的设定的工作效率指标包括高效率指标和低效率指标; 所述发送单元具体用于:若所述计算单元的执行状态满足高效率指标,则向所述上游计算单元发送提高消息分发速度的调整指令;若所述计算单元的执行状态满足低效率指标,则向所述上游计算单元发送降低消息分发速度的调整指令。10.如权利要求9所述的装置,其特征在于,所述高效率指标为所述计算单元在所述设定周期内处理的消息的数量大于第一阈值时对应的消息处理速度;或者,所述高效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延小于第二阈值时对应的消息处理时延; 所述低效率指标为所述计算单元在所述设定周期内处理的消息的数量小于第三阈值时对应的消息处理速度;或者,所述低效率指标为所述计算单元在所述设定周期内处理每个消息的平均时延大于第四阈值时对应的消息处理时延。11.如权利要求8所述的装置,其特征在于,所述发送单元还用于: 向消息总分发单元发送与所述设定的工作效率指标相应的调整指令,以使所述消息总分发单元调整对所述计算单元的消息分发状态,所述计算单元为根计算单元。12.如权利要求8所述的装置,其特征在于,所述设定的工作效率指标还包括故障指标,所述故障指标为所述计算单元在所述设定周期内处理的消息的数量少于第五阈值; 所述所述发送单元还用于:向所述上游计算单元发送故障指令,以停止向所述计算单元分发消息。13.如权利要求8?12任一项所述的装置,其特征在于,所述实时流式计算系统中的每个计算单元之间的消息传送方式是以定期批量的消息集合形式传送。14.如权利要求8?12任一项所述的装置,其特征在于,所述实时流式计算系统中的功能相互关联的上游计算单元和下游计算单元存储在相同的物理主机中。
【文档编号】G06F9/46GK105930203SQ201511016896
【公开日】2016年9月7日
【申请日】2015年12月29日
【发明人】赵金涛, 邱雪涛
【申请人】中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1