【技术实现步骤摘要】
数据消费的负载均衡方法及装置
本申请涉及计算机应用领域,尤其涉及一种数据消费的负载均衡方法及装置。
技术介绍
拉模式(Pull)数据消费,是指消息数据的生产者将产生的消息数据,通过消息中间件分散保存到消息系统中不同的消息队列中;当消息数据的消费者需要消费消息队列中的消息数据时,可以主动向消息队列发起数据获取请求,将消息队列中存储的消息数据“拉”到本地进行消息处理。在相关技术中,消息系统通常可以基于消息数据的类型,将产生的消息数据划分为不同的消息主题(Topic),每一个消息主题下又可以划分出若干个消息队列(quene),而消息数据的消费者可以订阅消息系统中的一个或者多个消息主题,然后通过拉模式从订阅的消息主题下的消息队列中主动“拉”数据进行消息处理。在实际应用中,如果消息数据的消费者为分布式集群,由于分布式集群中可以包括若干台作为消费者的节点设备,因此当分布式集群订阅了消息系统中的多个消息主题,并且这些消息主题下均包含若干个消息队列的话,通常需要按照统一的分配策略,为各节点设备分别分配消息队列。在拉模式下,通常是由各节点设备基于统一的分配策略分别为各节点设备分配消息队列;在现有的消息分配机制中,为了避免各节点设备自主分配的消息队列出现重复,通常是由各节点设备采用统一的节点设备列表,以及订阅的消息主题列表,按照列表中统一的顺序为各节点设备分别分配消息队列;然而,现有的这种消息分配机制,虽然能够避免分配至各节点设备的消息队列出现重复,但由于这种分配方式是一种完全按照列表中的顺序进行的机械式的分配,因此存在消息队列分配不够灵活的问题。
技术实现思路
本申请提出一种数 ...
【技术保护点】
一种消息处理的负载均衡方法,其特征在于,应用于与消息系统对接的分布式集群中的任一节点设备,所述分布式集群订阅了所述消息系统中的至少一个消息主题的消息数据,所述消息主题包括若干消息队列;所述节点设备基于拉模式从所述消息系统获取与所述消息主题对应的消息数据进行消息处理,所述方法包括:计算与集群订阅的各待分配消息主题对应的散列值,并将该散列值在待分配节点设备列表中的映射位置确定为对应于各待分配消息主题的起始分配位置;基于集群订阅的消息队列的总数,对应于所述待分配节点设备列表中各待分配节点设备的平均数,从与所述分配起始位置对应的节点设备开始,为所述待分配节点设备列表中的各节点设备平均分配消息队列,并基于预设的负载均衡策略对分配至各节点设备的消息队列的数据量进行组合搭配;当集群订阅的各消息队列均分配完成,查找分配至本设备的目标消息队列,并基于拉模式从所述目标消息队列中获取消息数据进行消息处理。
【技术特征摘要】
1.一种消息处理的负载均衡方法,其特征在于,应用于与消息系统对接的分布式集群中的任一节点设备,所述分布式集群订阅了所述消息系统中的至少一个消息主题的消息数据,所述消息主题包括若干消息队列;所述节点设备基于拉模式从所述消息系统获取与所述消息主题对应的消息数据进行消息处理,所述方法包括:计算与集群订阅的各待分配消息主题对应的散列值,并将该散列值在待分配节点设备列表中的映射位置确定为对应于各待分配消息主题的起始分配位置;基于集群订阅的消息队列的总数,对应于所述待分配节点设备列表中各待分配节点设备的平均数,从与所述分配起始位置对应的节点设备开始,为所述待分配节点设备列表中的各节点设备平均分配消息队列,并基于预设的负载均衡策略对分配至各节点设备的消息队列的数据量进行组合搭配;当集群订阅的各消息队列均分配完成,查找分配至本设备的目标消息队列,并基于拉模式从所述目标消息队列中获取消息数据进行消息处理。2.根据权利要求1所述的方法,其特征在于,所述将该散列值在待分配节点设备列表中的映射位置确定为对应于各待分配消息主题的起始分配位置,包括:针对所述散列值与所述节点设备列表中的节点设备总数进行取余运算;查找所述节点设备列表中与所述取余运算结果对应的位置;将查找到的位置确定为对应于各待分配消息主题的分配起始位置。3.根据权利要求1所述的方法,其特征在于,所述基于预设的数据量均衡策略对分配至各节点设备的消息队列的数据量进行组合搭配,包括:统计所述待分配消息主题的各消息队列的数据量大小;按照数据量大小对所述待分配消息主题的各消息队列进行排序,并基于排序后的顺序生成序列;在为各节点设备分配消息队列时,从所述序列的首端以及尾端为各节点设备分别选取消息队列,以对分配至各节点设备的消息队列的数据量进行组合搭配。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:基于各消息队列中的消息数据的处理开销值,以及各消息队列的数据量大小,为各消息队列分别计算对应的负载权重值;基于计算出所述负载权重值,对分配至各节点设备的消息队列的数量进行调整,以均衡分配至各节点设备的消息队列对应的负载。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取为各消息队列预配置的负载权重值;基于为各消息队列预配置的所述负载权重值,对分配至各节点设备的消息队列的数...
【专利技术属性】
技术研发人员:刘恒,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。