事件分发系统、方法及装置制造方法及图纸

技术编号:20657337 阅读:50 留言:0更新日期:2019-03-23 08:43
本发明专利技术公开了一种事件分发系统、方法及装置,属于计算机技术领域。所述事件分发系统包括:调度服务器用于获取处理节点的多个剩余负载信息,生成第一负载权重表,将第一负载权重表发送至处理节点;事件生成节点用于生成第一事件,将第一事件分发至处理节点;处理节点用于确定第一事件在第一哈希环上的位置,按照各个事件在第一哈希环上的位置,处理事件。本发明专利技术通过确定第一事件在第一哈希环上的位置,并将第一事件添加至第一哈希环,使得无需按照事件的序号为事件进行排序,进一步地,当存在进行故障切换的处理节点时,无需重新为处理节点分配事件,不会对其他处理节点和事件之间的处理关系造成影响,提高了处理节点处理事件的稳定性。

Event Distribution System, Method and Device

The invention discloses an event distribution system, method and device, which belongs to the field of computer technology. The event distribution system includes: the scheduling server is used to obtain multiple residual load information of the processing node, generate the first load weight table, send the first load weight table to the processing node; the event generation node is used to generate the first event, distribute the first event to the processing node; and the processing node is used to determine the location of the first event on the first hash ring, according to each event. The location of the object on the first hash ring handles events. By determining the location of the first event on the first hash ring and adding the first event to the first hash ring, the invention makes it unnecessary to sort events according to the sequence number of events. Furthermore, when there are processing nodes for failover, it is unnecessary to redistribute events to processing nodes, and it will not affect the processing relationship between other processing nodes and events. It improves the stability of dealing with events.

【技术实现步骤摘要】
事件分发系统、方法及装置
本专利技术涉及计算机
,特别涉及一种事件分发系统、方法及装置。
技术介绍
近年来,随着计算机技术日益成熟,互联网处理事件及业务所依赖的服务器的规模也越来越大。由于用户的事件正在不断的扩展,为了减轻服务器的处理负担,往往需要采用分布式系统处理用户的多个事件。发布者将多个事件发布至分布式系统中,由分布式系统中的多个处理节点对多个事件进行分发并分别处理,处理节点可为分布式系统中的Consumer(消费者)。目前,分布式系统通常采用Kafka(分布式发布订阅消息系统)实现将事件分发到多个Consumer进行处理。在通过Kafka分发多个事件时,先对多个事件进行集合并按照事件的序号对集合中的事件排序,生成事件队列,并将事件队列中的各个事件的状态置为未分发状态;随后,分布式系统中的多个Consumer进行集合,并按照Consumer的序号对集合中的Consumer进行排序,且各个Consumer的状态置为未分发状态,同时,计算平均每个Consumer需要处理的事件个数X。在事件队列中选取X个序号最小的且连续的事件,分发给序号最小的Consumer,由序号最小的Consumer处理这X个事件,并将这X个事件和序号最小的Consumer的状态更改为已分发状态。重复执行上述为Consumer分发事件的步骤,直至事件队列中的全部事件均分发完毕。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:由于事件按顺序分发给多个Consumer处理,当多个Consumer中的一个或者多个Consumer发生诸如宕机等故障需要进行故障切换时,便需要重新按照事件的序号以及Consumer的序号为多个Consumer分发事件,这样,Consumer与事件之间的对应关系便会发生整体位移,即使仅有某一个Consumer需要进行故障切换,也会造成Consumer与事件之间的对应关系的大规模变动,影响Consumer在进行事件处理时的稳定性。
技术实现思路
为了解决现有技术中处理节点进行故障切换时,导致处理节点与时间之间的对应关系发生整体位移,影响处理节点在进行事件处理时的稳定性的问题,本专利技术实施例提供了一种事件分发系统、方法及装置。所述技术方案如下:第一方面,提供了一种事件分发系统,所述事件分发系统包括调度服务器、至少一个事件生成节点以及多个处理节点;所述调度服务器用于获取所述事件分发系统中多个处理节点上传的多个剩余负载信息,基于所述多个剩余负载信息,生成第一负载权重表,将所述第一负载权重表发送至所述多个处理节点,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况;所述至少一个事件生成节点中的每个事件生成节点用于根据待处理业务,生成多个第一事件,将所述多个第一事件分发至所述多个处理节点;所述多个处理节点中的每个处理节点用于接收所述多个第一事件,根据所述多个第一事件,确定所述多个第一事件在第一哈希环上的位置,将所述多个第一事件添加至所述第一哈希环的位置,按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况,所述位置用于指示所述第一事件的处理顺序。第二方面,提供了一种事件分发方法,所述事件分发方法应用于事件分发系统;调度服务器获取事件分发系统中多个处理节点上传的多个剩余负载信息;所述调度服务器基于所述多个剩余负载信息,生成第一负载权重表,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况;所述调度服务器将所述第一负载权重表发送至多个处理节点;所述多个处理节点基于所述第一负载权重表生成第一哈希环;至少一个事件生成节点根据待处理业务,生成多个第一事件,将所述多个第一事件分发给所述多个处理节点;所述多个处理节点中的每个处理节点接收所述多个第一事件;根据所述多个第一事件,确定所述多个第一事件在所述第一哈希环上的位置,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况;所述多个处理节点中的每个处理节点将所述多个第一事件添加至所述第一哈希环的位置,所述位置用于指示所述多个第一事件的处理顺序;所述多个处理节点中的每个处理节点按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件。第三方面,提供了一种事件分发方法,所述方法应用于事件分发系统中的处理节点,所述方法包括:接收待分发的多个第一事件,所述多个第一事件由事件生成节点根据待处理业务生成的;根据所述多个第一事件,确定所述多个第一事件在第一哈希环上的位置,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况;将所述多个第一事件添加至所述第一哈希环的位置,所述位置用于指示所述第一事件的处理顺序;按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件。第四方面,提供了一种事件分发方法,所述方法应用于调度服务器,所述方法包括:获取事件分发系统中多个处理节点上传的多个剩余负载信息;基于所述多个剩余负载信息,生成第一负载权重表,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况;将所述第一负载权重表发送至所述多个处理节点,由所述多个处理节点基于所述第一负载权重表生成第一哈希环,并基于所述第一哈希环对多个事件进行分发。第五方面,提供了一种事件分发装置,所述装置应用于事件分发系统中的处理节点,所述装置包括:接收模块,用于接收待分发的多个第一事件,所述多个第一事件由事件生成节点根据待处理业务生成的;位置确定模块,用于根据所述多个第一事件,确定所述多个第一事件在第一哈希环上的位置,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况;添加模块,用于将所述多个第一事件添加至所述第一哈希环的位置,所述位置用于指示所述第一事件的处理顺序;处理模块,用于按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件。第六方面,提供了一种事件分发装置,所述装置应用于调度服务器,所述装置包括:获取模块,用于获取事件分发系统中多个处理节点上传的多个剩余负载信息;生成模块,用于基于所述多个剩余负载信息,生成第一负载权重表,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况;发送模块,用于将所述第一负载权重表发送至所述多个处理节点,由所述多个处理节点基于所述第一负载权重表生成第一哈希环,并基于所述第一哈希环对多个事件进行分发。本专利技术实施例提供的技术方案带来的有益效果是:通过接收待分发的第一事件,根据第一事件,确定第一事件在第一哈希环上的位置,并将第一事件添加至第一哈希环的第一位置,使得无需按照事件的序号为事件进行排序,进一步地,处理节点无需按照序号处理事件,当存在进行故障切换的处理节点时,无需重新为处理节点分配事件,不会对分布式系统中的其他处理节点和事件之间的处理关系造成影响,提高了处理节点处理事件的稳定性。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显本文档来自技高网
...

【技术保护点】
1.一种事件分发系统,其特征在于,所述事件分发系统包括调度服务器、至少一个事件生成节点以及多个处理节点;所述调度服务器用于获取所述事件分发系统中多个处理节点上传的多个剩余负载信息,基于所述多个剩余负载信息,生成第一负载权重表,将所述第一负载权重表发送至所述多个处理节点,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况;所述至少一个事件生成节点中的每个事件生成节点用于根据待处理业务,生成多个第一事件,将所述多个第一事件分发至所述多个处理节点;所述多个处理节点中的每个处理节点用于接收所述多个第一事件,根据所述多个第一事件,确定所述多个第一事件在第一哈希环上的位置,将所述多个第一事件添加至所述第一哈希环的位置,按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况,所述位置用于指示所述第一事件的处理顺序。

【技术特征摘要】
1.一种事件分发系统,其特征在于,所述事件分发系统包括调度服务器、至少一个事件生成节点以及多个处理节点;所述调度服务器用于获取所述事件分发系统中多个处理节点上传的多个剩余负载信息,基于所述多个剩余负载信息,生成第一负载权重表,将所述第一负载权重表发送至所述多个处理节点,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况;所述至少一个事件生成节点中的每个事件生成节点用于根据待处理业务,生成多个第一事件,将所述多个第一事件分发至所述多个处理节点;所述多个处理节点中的每个处理节点用于接收所述多个第一事件,根据所述多个第一事件,确定所述多个第一事件在第一哈希环上的位置,将所述多个第一事件添加至所述第一哈希环的位置,按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况,所述位置用于指示所述第一事件的处理顺序。2.一种事件分发方法,其特征在于,所述事件分发方法应用于事件分发系统;调度服务器获取事件分发系统中多个处理节点上传的多个剩余负载信息;所述调度服务器基于所述多个剩余负载信息,生成第一负载权重表,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况;所述调度服务器将所述第一负载权重表发送至多个处理节点;所述多个处理节点基于所述第一负载权重表生成第一哈希环;至少一个事件生成节点根据待处理业务,生成多个第一事件,将所述多个第一事件分发给所述多个处理节点;所述多个处理节点中的每个处理节点接收所述多个第一事件;根据所述多个第一事件,确定所述多个第一事件在所述第一哈希环上的位置,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况;所述多个处理节点中的每个处理节点将所述多个第一事件添加至所述第一哈希环的位置,所述位置用于指示所述多个第一事件的处理顺序;所述多个处理节点中的每个处理节点按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件。3.一种事件分发方法,其特征在于,所述方法应用于事件分发系统中的处理节点,所述方法包括:接收待分发的多个第一事件,所述多个第一事件由事件生成节点根据待处理业务生成的;根据所述多个第一事件,确定所述多个第一事件在第一哈希环上的位置,所述第一哈希环上每两个处理节点之间的弧形线段用于指示所述两个处理节点中前一个处理节点的负载情况;将所述多个第一事件添加至所述第一哈希环的位置,所述位置用于指示所述第一事件的处理顺序;按照各个事件在所述第一哈希环上的位置,依次处理所述处理节点到后一个处理节点之间的事件。4.根据权利要求3所述的方法,其特征在于,所述根据所述多个第一事件,确定所述多个第一事件在第一哈希环上的位置包括:采用与生成所述第一哈希环相同的哈希算法,根据所述多个第一事件的事件信息,生成所述多个第一事件在所述第一哈希环上的位置;或,采用与生成所述第一哈希环不同的哈希算法,根据所述多个第一事件的事件信息,生成所述多个第一事件在所述第一哈希环上的位置;其中,所述哈希算法至少包括高可能随机权重算法HRW。5.根据权利要求3所述的方法,其特征在于,所述接收待分发的多个第一事件之前,所述方法还包括:根据第一负载权重表,生成所述第一哈希环,所述第一负载权重表包括所述事件分发系统中多个处理节点当前的负载状况。6.根据权利要求5所述的方法,其特征在于,所述根据第一负载权重表,生成所述第一哈希环之前,所述方法还包括:确定当前正在处理的全部事件;基于自身的额定负载以及所述正在处理的全部事件,确定剩余负载信息;将所述剩余负载信息发送至调度服务器,以使所述调度服务器基于所述剩余负载信息生成所述第一负载权重表。7.根据权利要求3所述的方法,其特征在于,所述方法还包括:当接收...

【专利技术属性】
技术研发人员:梁俊杰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1