队列调整方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:22242593 阅读:48 留言:0更新日期:2019-10-09 22:01
本发明专利技术涉及金融科技领域,并公开了一种队列调整方法,该方法包括:当检测到消息消费者的心跳信号时,获取所述心跳信号中携带的主题Topic订阅信息;根据获取到的所述Topic订阅信息,判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic;若所述消息消费者有新订阅的Topic,则对所述新订阅的Topic执行队列扩展操作;若所述消息消费者有取消订阅的Topic,则对所述取消订阅的Topic执行队列缩减操作。本发明专利技术还公开了一种队列调整装置、设备和一种计算机可读存储介质。本发明专利技术实现了根据订阅Topic的消息消费者数量的变动自适应调整Topic的队列数量。

Queue adjustment methods, devices, devices and computer readable storage media

【技术实现步骤摘要】
队列调整方法、装置、设备及计算机可读存储介质
本专利技术涉及金融科技(Fintech)
,尤其涉及队列调整方法、装置、设备及计算机可读存储介质。
技术介绍
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。在目前的金融领域,普遍采用消息中间件实现不同系统之间的解耦,以提高整体服务弹性,具体方式是producer(消息生产者)生产消息并发送到消息中间件的Topic(主题),Consumer(消息消费者)订阅Topic,并消费Topic中的消息。为了提升消息的读写性能,当某个Topic的消息量较大时,可以在该Topic下设置多个Queue(队列),每个队列为一个独立的逻辑分区,且对于一个消费组,每个队列同时只能被消费组中一个消费者使用,当配置的队列个数比消费者个数少的时候,会有消费者分不到队列,当配置的队列个数比消费者个数多的时候,在每个队列的流量均等的情况下,分到队列多的消费者的负载会比其他消费者高,因此,当Topic队列个数和消费者个数不一致时,需要将Topic队列个数调整为和消费者个数相等,以实现负载均衡。然而,目前的Topic队列数量调整只能通过人工介入调整,即通过消息中间件提供的接口修改Topic队列配置,这种方式操作较为繁琐,无法实现对Topic队列个数的自适应调整。
技术实现思路
本专利技术的主要目的在于提出一种队列调整方法、装置、设备及计算机可读存储介质,旨在实现根据订阅Topic的消费者数量的变动自适应调整Topic的队列数量。为实现上述目的,本专利技术提供一种方法,所述方法包括如下步骤:当检测到消息消费者的心跳信号时,获取所述心跳信号中携带的主题Topic订阅信息;根据获取到的所述Topic订阅信息,判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic;若所述消息消费者有新订阅的Topic,则对所述新订阅的Topic执行队列扩展操作;若所述消息消费者有取消订阅的Topic,则对所述取消订阅的Topic执行队列缩减操作。优选地,所述根据获取到的所述Topic订阅信息,判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic的步骤包括:判断消息中间件上是否预先注册有所述消息消费者的Topic订阅信息;若是,则将获取到的所述Topic订阅信息与预先注册的所述Topic订阅信息进行比对,以判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic。优选地,所述对所述新订阅的Topic执行队列扩展操作的步骤包括:获取当前所述新订阅的Topic的第一可读队列个数,以及所述消息消费者所属的消费者分组中的第一消费者个数,将所述第一可读队列个数与所述第一消费者个数进行比较;当所述第一消费者个数大于所述第一可读队列个数时,将所述第一可读队列个数修改为所述第一消费者个数;异步等待第一预设时长后,获取当前所述新订阅的Topic的第一可写队列个数、第二可读队列个数,以及所述消息消费者分组中的第二消费者个数,将所述第一可写队列个数、第二可读队列个数分别与所述第二消费者个数进行比较;当所述第二消费者个数大于所述第一可写队列个数,且小于或等于所述第二可读队列个数时,将所述第一可写队列个数修改为所述第二消费者个数。优选地,所述对所述取消订阅的Topic执行队列缩减操作的步骤包括:获取当前所述取消订阅的Topic的第二可写队列个数,以及所述消息消费者分组中的第三消费者个数,将所述第二可写队列个数与所述第三消费者个数进行比较;当所述第二可写队列个数大于所述第三消费者个数时,确定待缩减的可写队列,并根据所述待缩减的可写队列将所述第二可写队列个数修改为所述第三消费者个数;异步等待第二预设时长后,获取当前所述取消订阅的Topic的第三可读队列个数,以及所述消息消费者分组中的第四消费者个数,将所述第三可读队列个数与所述第四消费者个数进行比较;当所述第三可读队列个数大于所述第四消费者个数时,判断所述待缩减的可写队列上的消息是否被消费完;若所述待缩减的可写队列上的消息被消费完,则将所述第三可读队列个数修改为所述第四消费者个数。优选地,所述队列调整方法还包括:当检测到所述消息消费者异常停机时,获取所述消息消费者当前的Topic订阅列表;对所述Topic订阅列表中的Topic执行队列缩减操作。此外,为实现上述目的,本专利技术还提供一种队列调整装置,所述队列调整装置包括:第一获取模块,用于当检测到消息消费者的心跳信号时,获取所述心跳信号中携带的主题Topic订阅信息;判断模块,用于根据获取到的所述Topic订阅信息,判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic;扩展模块,用于若所述消息消费者有新订阅的Topic,则对所述新订阅的Topic执行队列扩展操作;第一缩减模块,用于若所述消息消费者有取消订阅的Topic,则对所述取消订阅的Topic执行队列缩减操作。优选地,所述判断模块还用于:判断消息中间件上是否预先注册有所述消息消费者的Topic订阅信息;若是,则将获取到的所述Topic订阅信息与预先注册的所述Topic订阅信息进行比对,以判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic。优选地,所述扩展模块还用于:获取当前所述新订阅的Topic的第一可读队列个数,以及所述消息消费者所属的消费者分组中的第一消费者个数,将所述第一可读队列个数与所述第一消费者个数进行比较;当所述第一消费者个数大于所述第一可读队列个数时,将所述第一可读队列个数修改为所述第一消费者个数;异步等待第一预设时长后,获取当前所述新订阅的Topic的第一可写队列个数、第二可读队列个数,以及所述消息消费者分组中的第二消费者个数,将所述第一可写队列个数、第二可读队列个数分别与所述第二消费者个数进行比较;当所述第二消费者个数大于所述第一可写队列个数,且小于或等于所述第二可读队列个数时,将所述第一可写队列个数修改为所述第二消费者个数。优选地,所述第一缩减模块还用于:获取当前所述取消订阅的Topic的第二可写队列个数,以及所述消息消费者分组中的第三消费者个数,将所述第二可写队列个数与所述第三消费者个数进行比较;当所述第二可写队列个数大于所述第三消费者个数时,确定待缩减的可写队列,并根据所述待缩减的可写队列将所述第二可写队列个数修改为所述第三消费者个数;异步等待第二预设时长后,获取当前所述取消订阅的Topic的第三可读队列个数,以及所述消息消费者分组中的第四消费者个数,将所述第三可读队列个数与所述第四消费者个数进行比较;当所述第三可读队列个数大于所述第四消费者个数时,判断所述待缩减的可写队列上的消息是否被消费完;若所述待缩减的可写队列上的消息被消费完,则将所述第三可读队列个数修改为所述第四消费者个数。优选地,所述队列调整装置还包括:第二获取模块,用于当检测到所述消息消费者异常停机时,获取所述消息消费者当前的Topic订阅列表;第二缩减模块,还用于对所述Topic订阅列表中的Topic执行队列缩减操作。此外,为实现上述目的,本专利技术还提供一种本文档来自技高网...

【技术保护点】
1.一种队列调整方法,其特征在于,所述队列调整方法包括如下步骤:当检测到消息消费者的心跳信号时,获取所述心跳信号中携带的主题Topic订阅信息;根据获取到的所述Topic订阅信息,判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic;若所述消息消费者有新订阅的Topic,则对所述新订阅的Topic执行队列扩展操作;若所述消息消费者有取消订阅的Topic,则对所述取消订阅的Topic执行队列缩减操作。

【技术特征摘要】
1.一种队列调整方法,其特征在于,所述队列调整方法包括如下步骤:当检测到消息消费者的心跳信号时,获取所述心跳信号中携带的主题Topic订阅信息;根据获取到的所述Topic订阅信息,判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic;若所述消息消费者有新订阅的Topic,则对所述新订阅的Topic执行队列扩展操作;若所述消息消费者有取消订阅的Topic,则对所述取消订阅的Topic执行队列缩减操作。2.如权利要求1所述的队列调整方法,其特征在于,所述根据获取到的所述Topic订阅信息,判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic的步骤包括:判断消息中间件上是否预先注册有所述消息消费者的Topic订阅信息;若是,则将获取到的所述Topic订阅信息与预先注册的所述Topic订阅信息进行比对,以判断所述消息消费者当前是否有新订阅的Topic或取消订阅的Topic。3.如权利要求1或2所述的队列调整方法,其特征在于,所述对所述新订阅的Topic执行队列扩展操作的步骤包括:获取当前所述新订阅的Topic的第一可读队列个数,以及所述消息消费者所属的消费者分组中的第一消费者个数,将所述第一可读队列个数与所述第一消费者个数进行比较;当所述第一消费者个数大于所述第一可读队列个数时,将所述第一可读队列个数修改为所述第一消费者个数;异步等待第一预设时长后,获取当前所述新订阅的Topic的第一可写队列个数、第二可读队列个数,以及所述消息消费者分组中的第二消费者个数,将所述第一可写队列个数、第二可读队列个数分别与所述第二消费者个数进行比较;当所述第二消费者个数大于所述第一可写队列个数,且小于或等于所述第二可读队列个数时,将所述第一可写队列个数修改为所述第二消费者个数。4.如权利要求3所述的队列调整方法,其特征在于,所述对所述取消订阅的Topic执行队列缩减操作的步骤包括:获取当前所述取消订阅的Topic的第二可写队列个数,以及所述消息消费者分组中的第三消费者个数,将所述第二可写队列个数与所述第三消费者个数进行比较;当所述第二可写队列个数大于所述第三消费者个数时,确定待缩减的可写队列,并根据所述待缩减的可写队列将所述第二可写队列个数修改为所述第三消费者个数;异步等待第二预设时长后,获取当前所述取消订阅的Topic的第三可读队列个数,以及所述消息消费者分组中的第四消费者个数,将所述第三可读队列个数与所述第四消费者个数进行比较;当所述第三可读队列个数大于所述第四消费者个数时,判断所述待缩减的可写队列上的消息是否被消费完;若所述待缩减的可写队列上的消息被消费完,则将所述第三可读队列个数修改为所述第四消费者个数。5.如权利要求1所述的队列调整方法,其特征在于,所述队列调整方法还包括:当检测到所述消息消费者异常停机时,获取所述消息消费者当前的Topic订阅列表;对所述Topic订阅列表中的Topic执行队列缩减操作。6.一种队列调整装置,其特征在于,所述队列调整装置包括:第一获取模块,用于当检测到消息消费者的心跳信号时,获取所述心跳信号中携带的主题Topic订阅信息;判...

【专利技术属性】
技术研发人员:卢道和杨军陈广胜熊梦飞梁炜强
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

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

1