CN108134814B - 一种业务数据处理方法及装置 - Google Patents

一种业务数据处理方法及装置 Download PDF

Info

Publication number
CN108134814B
CN108134814B CN201711205491.3A CN201711205491A CN108134814B CN 108134814 B CN108134814 B CN 108134814B CN 201711205491 A CN201711205491 A CN 201711205491A CN 108134814 B CN108134814 B CN 108134814B
Authority
CN
China
Prior art keywords
service processing
processing unit
messages
detected
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711205491.3A
Other languages
English (en)
Other versions
CN108134814A (zh
Inventor
党朝欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Haier Technology Co Ltd
Haier Smart Home Co Ltd
Haier Uplus Intelligent Technology Beijing Co Ltd
Original Assignee
Qingdao Haier Technology Co Ltd
Haier Uplus Intelligent Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qingdao Haier Technology Co Ltd, Haier Uplus Intelligent Technology Beijing Co Ltd filed Critical Qingdao Haier Technology Co Ltd
Priority to CN201711205491.3A priority Critical patent/CN108134814B/zh
Publication of CN108134814A publication Critical patent/CN108134814A/zh
Application granted granted Critical
Publication of CN108134814B publication Critical patent/CN108134814B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出了一种业务数据处理方法及装置,该方法包括:针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,其中,每一个所述业务处理单元都对应一个或多个订阅消息队列,所述业务处理单元用于处理所述订阅消息队列中的消息;至少根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调整业务处理单元的业务处理能力。本发明克服了现有技术中的分布式发布‑订阅消息***所产生的消息挤压的缺陷。

Description

一种业务数据处理方法及装置
技术领域
本发明涉及数据处理领域,尤其涉及一种业务数据处理方法及装置。
背景技术
Kafka是分布式发布-订阅消息***。Kafka是一个分布式的、可划分的、冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。
在大数据***中,常常会碰到一个问题,整个大数据是由各个子***组成,数据需要在各个子***中高性能、低延迟的不停流转,因此会带来组网复杂以及编网复杂的问题。而Kafka可以降低***组网复杂度,降低编程复杂度,各个子***不再是相互协商接口,各个子***可以类似插口插在插座上一样插在Kafka上,由Kafka承担高速数据总线的作用。
如图1所示,Kafka的整体架构非常简单,是一个显式分布式架构,如下为Kafka中的几个基本概念,Topic:特指Kafka处理的消息源(feeds of messages)的不同分类。Partition:Topic物理上的分组,一个Topic可以分为多个Partition,每个Partition是一个有序的队列。Partition中的每条消息都会被分配一个有序的id。Message:消息,是通信的基本单位,每个Producer可以向一个Topic发布一些消息。Producers:消息和数据生产者,向Kafka的一个Topic发布消息。Consumers:消息和数据消费者,订阅Topics并处理其发布的消息。Broker:缓存代理,Kafka集群中的一台或多台服务器统称为Broker。
Kafka中,生产者端Producer、代理端Broker和消费者端Consumer都可以有多个。Producer、Consumer是实现Kafka注册的接口,数据从Producer发送到Broker,Broker承担一个中间缓存和分发的作用。Broker用于分发注册到***中的Consumer。Broker的作用类似于缓存,即活跃的数据和离线处理***之间的缓存。
Kafka主要特点:同时为发布和订阅提供高吞吐量。据了解,Kafka每秒可以生产约25万消息(占50MB的存储容量),每秒处理55万消息(占110MB的存储容量);可进行持久化操作。将消息持久化到硬盘,因此可用于批量消费;分布式***,易于向外扩展。所有的Producer、Broker和Consumer均为分布式的。无需停机即可扩展机器;消息被处理的状态是在Consumer端维护,而不是由服务器端维护,当失败时能自动平衡;支持online和offline的场景。
在包含Kafka架构在内的一些***架构中,现有的Consumers的消息订阅消费模式都是耦合在具体业务场景中进行消息处理的,没有一个通用的高并发处理框架来通过简单的配置文件即可实现业务能力的服务器节点数量自动扩展,因此会导致消息处理积压,服务器资源消耗过高,消息处理不够及时。
发明内容
本发明要解决的技术问题是,提供一种业务数据处理方法及装置,克服现有技术中的分布式发布-订阅消息***所产生的消息挤压的缺陷。
本发明采用的技术方案是,业务数据处理方法,包括:
针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,其中,每一个业务处理单元都对应一个或多个订阅消息队列,业务处理单元用于处理订阅消息队列中的消息;
至少根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调整业务处理单元的业务处理能力。
进一步的,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,包括:
按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量;
根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,包括:
在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
进一步的,方法,还包括:在检测代理端中与业务处理单元对应的订阅消息队列中的消息数量之前,在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围;
调整业务处理单元的业务处理能力,包括:
若检测到的消息数量持续大于业务处理单元当前所使用的线程数量,扩展业务处理单元使用的线程数量,直到业务处理单元使用的线程数量等于消息数量为止,其中,业务处理单元使用的线程数量的上限为业务处理单元使用线程的数量范围的最大值;
若检测到的消息数量持续小于业务处理单元当前所使用的线程数量,收缩业务处理单元使用的线程数量,直到业务处理单元使用的线程数量等于消息数量为止,其中,业务处理单元使用的线程数量的下限为业务处理单元使用线程的数量范围的最小值。
进一步的,设业务处理单元使用一台服务器时在第二设定时长内处理消息数量上限为M,M为正整数;配置文件中设定有业务处理单元使用的服务器数量上限N,N为正整数;
调整业务处理单元的业务处理能力,还包括:
若在第一设定时长内检测到的消息数量增长量大于等于n个M,n为正整数,则以N为上限,为业务处理单元扩展使用n+1台服务器;
若在第一设定时长内检测到的消息数量减少量大于等于n个M,,则以N为上限,为业务处理单元缩减使用n台服务器。
进一步的,方法,还包括:检测业务处理单元使用的服务器的负载;
根据检测到的消息数量以及业务处理单元使用的服务器的负载判断是否需要调整业务处理单元的业务处理能力,若是,则调整业务处理单元的业务处理能力。
进一步的,根据检测到的消息数量以及业务处理单元使用的服务器的负载判断是否需要调整业务处理单元的业务处理能力,包括:
步骤A1:按照设定的检测周期检测消息数量以及业务处理单元使用的服务器的负载,若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量或者在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载大于设定的高负载阈值,则执行步骤A2;若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量且在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载持续小于设定的低负载阈值,则执行步骤A3;若在第一设定时长内的检测结果不符合前述情况,则重复执行步骤A1;
步骤A2:扩展业务处理单元的业务处理能力,跳转步骤A1;
步骤A3:收缩业务处理单元的业务处理能力,跳转步骤A1。
本发明还提供一种业务数据处理装置,包括:
检测模块,用于针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,其中,每一个业务处理单元都对应一个或多个订阅消息队列,业务处理单元用于处理订阅消息队列中的消息;
判断模块,用于至少根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调用调整模块;
调整模块,用于调整业务处理单元的业务处理能力。
进一步的,检测模块,用于:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量;
判断模块,用于:在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
进一步的,装置,还包括:
配置模块,用于在检测模块检测代理端中与业务处理单元对应的订阅消息队列中的消息数量之前,在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围;
调整模块,用于:
若检测到的消息数量持续大于业务处理单元当前所使用的线程数量,扩展业务处理单元使用的线程数量,直到业务处理单元使用的线程数量等于消息数量为止,其中,业务处理单元使用的线程数量的上限为业务处理单元使用线程的数量范围的最大值;
若检测到的消息数量持续小于业务处理单元当前所使用的线程数量,收缩业务处理单元使用的线程数量,直到业务处理单元使用的线程数量等于消息数量为止,其中,业务处理单元使用的线程数量的下限为业务处理单元使用线程的数量范围的最小值。
进一步的,设业务处理单元使用一台服务器时在第二设定时长内处理消息数量上限为M,M为正整数;配置文件中设定有业务处理单元使用的服务器数量上限N,N为正整数;
调整模块,还用于:
若在第一设定时长内检测到的消息数量增长量大于等于n个M,n为正整数,则以N为上限,为业务处理单元扩展使用n+1台服务器;
若在第一设定时长内检测到的消息数量减少量大于等于n个M,,则以N为上限,为业务处理单元缩减使用n台服务器。
进一步的,检测模块,还用于:检测业务处理单元使用的服务器的负载;
判断模块,用于根据检测到的消息数量以及业务处理单元使用的服务器的负载判断是否需要调整业务处理单元的业务处理能力。
进一步的,检测模块,用于按照设定的检测周期检测消息数量以及业务处理单元使用的服务器的负载;
判断模块,用于若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量或者在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载大于设定的高负载阈值,则判定需要扩展业务处理单元的业务处理能力,继续调用检测模块;
若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量且在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载持续小于设定的低负载阈值,则判定需要收缩业务处理单元的业务处理能力,继续调用检测模块;
若在第一设定时长内的检测结果不符合前述情况,则继续调用检测模块。
采用上述技术方案,本发明至少具有下列优点:
本发明业务数据处理方法及装置,通过对业务处理单元所使用的服务器的负载以及分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行纵向线程的扩展或收缩、及横向服务器节点的扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
附图说明
图1为Kafka的整体架构示意图;
图2为本发明第一实施例的业务数据处理方法流程图;
图3为本发明第二、三实施例的业务数据处理方法流程图;
图4为本发明第四实施例的业务数据处理方法流程图;
图5为本发明第五实施例的业务数据处理装置组成结构示意图;
图6为本发明第六、七、八实施例的业务数据处理装置组成结构示意图;
图7为本发明第九实施例的业务数据处理装置组成结构示意图;
图8为本发明第九实施例的服务器的管理流程图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种业务数据处理方法,如图2所示,包括以下具体步骤:
步骤S101,针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量;业务处理单元使用的每个线程能够处理一条消息,处理完后该线程资源会释放。
可选的,在步骤S101中,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,包括:
按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量;
步骤S102,至少根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调整业务处理单元的业务处理能力。
可选的,在步骤S102中,根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,包括:
在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
可选的,调整业务处理单元的业务处理能力包括:扩展或收缩业务处理单元所使用的线程和/或服务器的数量。且尽量先考虑扩展或收缩业务处理单元所使用的线程,当通过扩展或收缩业务处理单元所使用的线程仍然不能贴近业务处理单元所需的业务处理能力的情况下,再考虑扩展或收缩业务处理单元所使用的服务器数量。
本发明实施例的业务数据处理方法,通过对分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第二实施例,一种业务数据处理方法,如图3所示,包括以下具体步骤:
步骤S201,在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围;
步骤S202,针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量;
可选的,在步骤S202中,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,包括:
按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。
步骤S203,根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调整业务处理单元的业务处理能力。
可选的,在步骤S203中,根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,包括:
在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
本发明实施例之所以未在检测到消息数量大于或者小于业务处理单元当前所使用的线程数量时就立刻判定需要调整业务处理单元的业务处理能力,是因为代理端中与业务处理单元对应的订阅消息队列中的消息数量可能会出现不稳地的波动,如果紧跟波动进行业务能力的调整,调整的过于频繁,就会增加业务处理单元的资源消耗。
可选的,在步骤S203中,调整业务处理单元的业务处理能力,包括:
若检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止;
若检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止。
例如:本实施例的检测和调整过程可以按照如下的循环操作:
步骤A1:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则执行步骤A2;若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则执行步骤A3;若在第一设定时长内的检测结果不符合前述情况,则重复执行步骤A1;
步骤A2:以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,跳转步骤A1;
步骤A3:以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,跳转步骤A1。
本发明实施例与第一实施例大致相同,区别在于,本发明实施例提供了通过简单的配置文件的方式配置业务处理单元使用线程的数量范围,该配置文件还可配置对于业务处理单元的检测和业务能力调整策略,具体体现在步骤S202和步骤S203的具体操作中。另外,本发明实施例还提供给了更详细的检测调整过程。
本发明实施例的业务数据处理方法,通过对分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行纵向线程的扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第三实施例,一种业务数据处理方法,如图3所示,包括以下具体步骤:
步骤S201,在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围;
步骤S202,针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量;
可选的,在步骤S202中,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,包括:
按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。
步骤S203,根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调整业务处理单元的业务处理能力。
可选的,在步骤S203中,根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,包括:
在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
可选的,在步骤S203中,调整业务处理单元的业务处理能力,包括:
若检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止;
若检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止。
例如:本实施例的检测和调整过程可以按照如下的循环操作:
步骤A1:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则执行步骤A2;若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则执行步骤A3;若在第一设定时长内的检测结果不符合前述情况,则重复执行步骤A1;
步骤A2:以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,跳转步骤A1;
步骤A3:以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,跳转步骤A1。
可选的,设业务处理单元使用一台服务器时在第二设定时长内处理消息数量上限为M,M为正整数;配置文件中设定有业务处理单元使用的服务器数量上限N,N为正整数;
在步骤S203中,调整业务处理单元的业务处理能力,还包括:
若在第一设定时长内检测到的消息数量增长量大于等于n个M,n为正整数,则以N为上限,为业务处理单元扩展使用n+1台服务器;
若在第一设定时长内检测到的消息数量减少量大于等于n个M,,则以N为上限,为业务处理单元缩减使用n台服务器。
本发明实施例与第二实施例大致相同,区别在于,本发明实施例在调整业务处理单元的业务处理能力的过程中还提供对于业务处理单元所使用的服务器节点的扩展或收缩,当一台服务器所能提供的线程已经不足以支持一个业务处理单元的运行时,就需要扩展该业务处理单元使用的服务器个数了,反之,就需要缩减。例如:一个业务处理单元使用一台服务器时在3分钟内处理消息数量上限为10万条,假设当前该业务处理单元仅使用了一台服务器,而当前检测到代理端中与业务处理单元对应的订阅消息队列中的消息数量为26万条时,就需要增加两台服务器供该业务处理单元使用。
本发明实施例的业务数据处理方法,通过对业务处理单元所使用的服务器的负载以及分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行纵向线程的扩展或收缩、及横向服务器节点的扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第四实施例,一种业务数据处理方法,如图4所示,包括以下具体步骤:
步骤S301,在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围、以及业务处理单元使用的服务器数量上限N,N为正整数;
步骤S302,针对消费者端的任一业务处理单元,检测业务处理单元使用的服务器的负载、以及代理端中与业务处理单元对应的订阅消息队列中的消息数量;
可选的,在步骤S302中,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,包括:
按照设定的检测周期检测业务处理单元使用的服务器的负载、以及代理端中与业务处理单元对应的订阅消息队列中的消息数量。
步骤S303,根据检测到的消息数量以及业务处理单元使用的服务器的负载判断是否需要调整业务处理单元的业务处理能力,若是,则调整业务处理单元的业务处理能力。
可选的,在步骤S303中,根据检测到的消息数量以及业务处理单元使用的服务器的负载判断是否需要调整业务处理单元的业务处理能力,包括:
步骤B1:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量以及业务处理单元使用的服务器的负载,若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量或者在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载大于设定的高负载阈值,则执行步骤B2;若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量且在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载持续小于设定的低负载阈值,则执行步骤B3;若在第一设定时长内的检测结果不符合前述情况,则重复执行步骤B1;
步骤B2:扩展业务处理单元的业务处理能力,跳转步骤B1;
步骤B3:收缩业务处理单元的业务处理能力,跳转步骤B1。
本发明实施例与第三实施例大致相同,区别在于,本发明实施例要结合代理端中与业务处理单元对应的订阅消息队列中的消息数量以及业务处理单元使用的服务器的负载,共同来判断是否需要调整业务处理单元的业务处理能力,由于业务处理单元处理的业务的种类不同,其逻辑复杂程度也不一样,对服务器资源的消耗程度也不相同,服务器资源包括CPU占用率、内存资源等,实际业务运行中,很可能会出现与业务处理单元对应的订阅消息队列中的消息数量不多,但业务处理单元使用的某些服务器的负载已经超负荷的情况,此时应该依据服务器的负载情况进行服务器数量扩展;对于缩减服务器数量的时候,应该既考虑与业务处理单元对应的订阅消息队列中的消息数量的情况又考虑业务处理单元使用的服务器的负载情况,来共同决定是否需要缩减服务器的数量,这样才能准确的反映业务处理单元实际需要的业务处理能力。
本发明实施例的业务处理方法,通过对业务处理单元所使用的服务器的负载以及分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行纵向线程的扩展或收缩、及横向服务器节点的扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第五实施例,与第一实施例对应,本实施例介绍一种业务数据处理装置,如图5所示,包括以下组成部分:
1)检测模块501,用于针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。业务处理单元使用的每个线程能够处理一条消息,处理完后该线程资源会释放。
可选的,检测模块501,用于:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。
2)判断模块502,用于至少根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调用调整模块503;
可选的,判断模块502,用于:在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
3)调整模块503,用于调整业务处理单元的业务处理能力。
可选的,调整模块503用于扩展或收缩业务处理单元所使用的线程和/或服务器的数量。
本发明实施例的业务数据处理装置,通过对分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第六实施例,与第二实施例对应,本实施例介绍一种业务数据处理装置,如图6所示,包括以下组成部分:
1)配置模块601,用于在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围。业务处理单元使用的每个线程能够处理一条消息,处理完后该线程资源会释放。
2)检测模块602,用于针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。
可选的,检测模块602,用于:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。
2)判断模块603,用于根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调用调整模块604;
可选的,判断模块603,用于:在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
本发明实施例之所以未在检测到消息数量大于或者小于业务处理单元当前所使用的线程数量时就立刻判定需要调整业务处理单元的业务处理能力,是因为代理端中与业务处理单元对应的订阅消息队列中的消息数量可能会出现不稳地的波动,如果紧跟波动进行业务能力的调整,调整的过于频繁,就会增加业务处理单元的资源消耗。
3)调整模块604,用于调整业务处理单元的业务处理能力。
可选的,调整模块604,用于:
若检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止;
若检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止。
比如:调整模块604执行如下的循环操作:
步骤A1:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则执行步骤A2;若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则执行步骤A3;若在第一设定时长内的检测结果不符合前述情况,则重复执行步骤A1;
步骤A2:以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,跳转步骤A1;
步骤A3:以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,跳转步骤A1。
本发明实施例与第五实施例大致相同,区别在于,本发明实施例提供了通过简单的配置文件的方式配置业务处理单元使用线程的数量范围,该配置文件还可配置对于业务处理单元的检测和业务能力调整策略,具体体现在检测模块、判断模块和调整模块的具体操作中。另外,本发明实施例还提供给了更详细的检测调整过程。
本发明实施例的业务数据处理装置,通过对分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行纵向线程的扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第七实施例,与第三实施例对应,本实施例介绍一种业务数据处理装置,如图6所示,包括以下组成部分:
1)配置模块601,用于在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围。业务处理单元使用的每个线程能够处理一条消息,处理完后该线程资源会释放。
2)检测模块602,用于针对消费者端的任一业务处理单元,检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。
可选的,检测模块602,用于:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量。
3)判断模块603,用于根据检测到的消息数量判断是否需要调整业务处理单元的业务处理能力,若是,则调用调整模块604;
可选的,判断模块603,用于:在第一设定时长内,若检测到的消息数量持续大于或者持续小于业务处理单元当前所使用的线程数量,则判定需要调整业务处理单元的业务处理能力;第一设定时长大于设定的检测周期。
本发明实施例之所以未在检测到消息数量大于或者小于业务处理单元当前所使用的线程数量时就立刻判定需要调整业务处理单元的业务处理能力,是因为代理端中与业务处理单元对应的订阅消息队列中的消息数量可能会出现不稳地的波动,如果紧跟波动进行业务能力的调整,调整的过于频繁,就会增加业务处理单元的资源消耗。
4)调整模块604,用于调整业务处理单元的业务处理能力。
可选的,调整模块604,用于:
若检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止;
若检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,直到消息数量等于业务处理单元使用的线程数量为止。
比如:调整模块604执行如下的循环操作:
步骤A1:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量,若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量,则执行步骤A2;若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量,则执行步骤A3;若在第一设定时长内的检测结果不符合前述情况,则重复执行步骤A1;
步骤A2:以数量范围的最大值为上限,扩展业务处理单元使用的线程数量,跳转步骤A1;
步骤A3:以数量范围的最小值为下限,收缩业务处理单元使用的线程数量,跳转步骤A1。
可选的,设业务处理单元使用一台服务器时在第二设定时长内处理消息数量上限为M,M为正整数;配置文件中设定有业务处理单元使用的服务器数量上限N,N为正整数;
调整模块604,还用于:
若在第一设定时长内检测到的消息数量增长量大于等于n个M,n为正整数,则以N为上限,为业务处理单元扩展使用n+1台服务器;
若在第一设定时长内检测到的消息数量减少量大于等于n个M,,则以N为上限,为业务处理单元缩减使用n台服务器。
本发明实施例与第六实施例大致相同,区别在于,本发明实施例在调整业务处理单元的业务处理能力的过程中还提供对于业务处理单元所使用的服务器节点的扩展或收缩,当一台服务器所能提供的线程已经不足以支持一个业务处理单元的运行时,就需要扩展该业务处理单元使用的服务器个数了,反之,就需要缩减。例如:一个业务处理单元使用一台服务器时在3分钟内处理消息数量上限为10万条,假设当前该业务处理单元仅使用了一台服务器,而当前检测到代理端中与业务处理单元对应的订阅消息队列中的消息数量为26万条时,就需要增加两台服务器供该业务处理单元使用。
本发明实施例的业务数据处理装置,通过对业务处理单元所使用的服务器的负载以及分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行纵向线程的扩展或收缩、及横向服务器节点的扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第八实施例,与第四实施例对应,本实施例介绍一种业务数据处理装置,如图6所示,包括以下组成部分:
1)配置模块601,用于在本地内存中加载配置文件;配置文件中设定有业务处理单元使用线程的数量范围、以及业务处理单元使用的服务器数量上限N,N为正整数。业务处理单元使用的每个线程能够处理一条消息,处理完后该线程资源会释放。
2)检测模块602,用于针对消费者端的任一业务处理单元,检测业务处理单元使用的服务器的负载、以及代理端中与业务处理单元对应的订阅消息队列中的消息数量;。
可选的,检测模块602,用于:按照设定的检测周期检测代理端中与业务处理单元对应的订阅消息队列中的消息数量、以及业务处理单元使用的服务器的负载。
3)判断模块603,用于根据检测到的消息数量以及业务处理单元使用的服务器的负载判断是否需要调整业务处理单元的业务处理能力,若是,则调用调整模块604;
可选的,判断模块603,用于若在第一设定时长内检测到的消息数量持续大于业务处理单元当前所使用的线程数量或者在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载大于设定的高负载阈值,则判定需要扩展业务处理单元的业务处理能力,继续调用检测模块602;
若在第一设定时长内检测到的消息数量持续小于业务处理单元当前所使用的线程数量且在第一设定时长内检测到的业务处理单元使用的至少一台服务器的负载持续小于设定的低负载阈值,则判定需要收缩业务处理单元的业务处理能力,继续调用检测模块602;
若在第一设定时长内的检测结果不符合前述情况,则继续调用检测模块602。
4)调整模块604,用于调整业务处理单元的业务处理能力。
可选的,调整业务处理单元的业务处理能力包括:扩展或收缩业务处理单元所使用的线程和/或服务器的数量。且尽量先考虑扩展或收缩业务处理单元所使用的线程,当通过扩展或收缩业务处理单元所使用的线程仍然不能贴近业务处理单元所需的业务处理能力的情况下,再考虑扩展或收缩业务处理单元所使用的服务器数量。
本发明实施例与第七实施例大致相同,区别在于,本发明实施例要结合代理端中与业务处理单元对应的订阅消息队列中的消息数量以及业务处理单元使用的服务器的负载,共同来判断是否需要调整业务处理单元的业务处理能力,由于业务处理单元处理的业务的种类不同,其逻辑复杂程度也不一样,对服务器资源的消耗程度也不相同,服务器资源包括CPU占用率、内存资源等,实际业务运行中,很可能会出现与业务处理单元对应的订阅消息队列中的消息数量不多,但业务处理单元使用的某些服务器的负载已经超负荷的情况,此时应该依据服务器的负载情况进行服务器数量扩展;对于缩减服务器数量的时候,应该既考虑与业务处理单元对应的订阅消息队列中的消息数量的情况又考虑业务处理单元使用的服务器的负载情况,来共同决定是否需要缩减服务器的数量,这样才能准确的反映业务处理单元实际需要的业务处理能力。
本发明实施例的业务数据处理装置,通过对业务处理单元所使用的服务器的负载以及分布式发布-订阅消息***中的业务处理单元对应的订阅消息队列当前消息数量进行监测,对业务处理单元的业务处理能力进行纵向线程的扩展或收缩、及横向服务器节点的扩展或收缩。通过这样的方式可以使业务处理更加灵活,在业务空闲的时候自动缩减服务器节点,在业务繁忙的时候自动扩展服务器节点,从而实现业务处理能力的自动伸缩,避免了分布式发布-订阅消息***所产生的消息挤压。
本发明第九实施例,本实施例是在上述实施例的基础上,结合附图7~8介绍一个本发明的应用实例。
如图7所示,本发明实施例提供一种避免消费者端业务处理性能瓶颈的装置,以解决大数据消息平台(kafka)订阅后消费者端消息业务处理性能瓶颈的问题。通过此装置自动根据业务处理单元当前订阅消息队列深度进行线程的纵向扩展和服务器节点的自动横向扩展。
业务处理单元启动后,本发明实施例的避免消费者端业务处理性能瓶颈的装置也就随即启动。该装置对应的软件产品可以包含业务处理单元,也可以不包含业务处理单元。本方案最大的优点在于,业务处理单元通过实现装置提供的方法即装置通过接口继承的方式,使得业务处理单元具备横向和纵向的扩展能力。另外,装置具有通用的高并发处理结构,通过简单的配置文件即可实现业务能力的服务器节点数量自动扩展,避免消息处理积压、服务器资源消耗过高以及消息处理不够及时等情况的出现。
服务器状态检测模块:用于检测服务器当前负载,可以通过shell方式获取服务器当前支持的业务处理单元的信息。对于业务处理单元来说,可以获得该业务处理单元所用的服务器的负载情况。
消息队列检测模块:用于检测当前订阅队列消息挤压深度,即当前订阅队列消息的数量。
线程池:实现单个服务器节点内线程动态扩展。
消息订阅模块:用于从代理端为业务处理单元订阅消息队列,业务处理单元无需重复编码,由该装置统一处理。
服务器列表模块:提供服务器列表,包含当前服务器集群最大服务器节点数,还用于动态扩展服务器节点。
缓存模块:用于将配置文件中的基础配置加载到本地内存,该基础配置中包含实现业务的方法以及公共数据,供其他模块共享使用,
服务器线程负载检测模块:用于检测业务处理单元下的线程数。
业务处理单元:通过实现装置提供的方法即装置通过接口继承的方式,对订阅到的消息进行正常的业务处理,使得业务处理单元具备横向和纵向的扩展能力。此处不需要关注高并发及横向扩展功能,开发人员只需要实现针对订阅的消息进行的业务处理流程即可。
如图8所示,横向---服务器的管理:
步骤1,业务处理单元1启动后,避免消费者端业务处理性能瓶颈的装置也随之启动。
步骤2,首先启动消息订阅模块,消息订阅模块从代理端拉取消息时需要用到缓存模块中事先配置的公共数据,并占用线程处理消息,此时线程池启动,并由服务器线程负载检测模块检测出业务处理单元1的线程使用情况。
步骤3,启动队列深度检测模块和服务器状态检测模块。
步骤4,通过该装置中的队列深度检测模块、服务器状态检测模块以及服务器列表模块决策是否需要扩展新的服务器节点来横向扩展。
步骤5,当上述决策模块检测到需要扩展新的服务器节点时,通过脚本的方式进行服务器2-处理单元1的自动启动。从而实现服务器节点的动态扩展。
同理,当决策模块检测到需要减少该处理单元1的服务器节点时,通过脚本的方式进行服务器2-业务处理单元1的关闭,从而实现服务器节点的资源的合理利用。
还可以将释放出来的服务器节点分配给其他业务处理单元,通过脚本删除对应的程序生成的锁文件,框架内部有锁文件检查守护进程负责检测是否停止当前节点进程。停止后会释放对应的堆内存及CPU资源,在此之后,即可将该资源分配给其他处理单元。
纵向-----线程的管理:
以当前配置文件中配置的线程池的最大和最小线程数为限,进行线程池的扩展与收缩。
本发明实施例通过该避免消费者端业务处理性能瓶颈的装置实现对kafka消息的订阅,业务层只需要根据配置文件的配置实现消息的自动拉取。
通过对消息队列深度的检测,服务器状态的检测,实现服务器节点的动态扩展,使业务层能够专注业务处理,无需关注高并发下动态扩展方面的复杂实现。
通过对多线程的业务处理单元的封装,屏蔽业务层对多线程实现。实现单服务器节点业务处理单元内高并发的实现。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。

Claims (8)

1.一种业务数据处理方法,其特征在于,包括:
针对消费者端的任一业务处理单元,检测代理端中与所述业务处理单元对应的订阅消息队列中的消息数量,其中,每一个所述业务处理单元都对应一个或多个订阅消息队列,所述业务处理单元用于处理所述订阅消息队列中的消息;
至少根据检测到的所述消息数量判断是否需要调整所述业务处理单元的业务处理能力,若是,则调整所述业务处理单元的业务处理能力;
所述检测代理端中与所述业务处理单元对应的订阅消息队列中的消息数量,包括:
按照设定的检测周期检测代理端中与所述业务处理单元对应的订阅消息队列中的消息数量;
所述根据检测到的所述消息数量判断是否需要调整所述业务处理单元的业务处理能力,包括:
在第一设定时长内,若检测到的所述消息数量持续大于或者持续小于所述业务处理单元当前所使用的线程数量,则判定需要调整所述业务处理单元的业务处理能力;所述第一设定时长大于所述设定的检测周期;
所述方法,还包括:在检测代理端中与所述业务处理单元对应的订阅消息队列中的消息数量之前,在本地内存中加载配置文件;所述配置文件中设定有所述业务处理单元使用线程的数量范围;
所述调整所述业务处理单元的业务处理能力,包括:
若检测到的所述消息数量持续大于所述业务处理单元当前所使用的线程数量,扩展所述业务处理单元使用的线程数量,直到所述业务处理单元使用的线程数量等于所述消息数量为止,其中,所述业务处理单元使用的线程数量的上限为所述数量范围的最大值;
若检测到的所述消息数量持续小于所述业务处理单元当前所使用的线程数量,收缩所述业务处理单元使用的线程数量,直到所述业务处理单元使用的线程数量等于所述消息数量为止,其中,所述业务处理单元使用的线程数量的下限为所述数量范围的最小值。
2.根据权利要求1所述的业务数据处理方法,其特征在于,设所述业务处理单元使用一台服务器时在第二设定时长内处理消息数量上限为M,M为正整数;所述配置文件中设定有所述业务处理单元使用的服务器数量上限N,N为正整数;
所述调整所述业务处理单元的业务处理能力,还包括:
若在第一设定时长内检测到的所述消息数量增长量大于等于n个M,n为正整数,则以N为上限,为所述业务处理单元扩展使用n+1台服务器;
若在第一设定时长内检测到的所述消息数量减少量大于等于n个M,则以N为上限,为所述业务处理单元缩减使用n台服务器。
3.根据权利要求1所述的业务数据处理方法,其特征在于,所述方法,还包括:在至少根据检测到的所述消息数量判断是否需要调整所述业务处理单元的业务处理能力之前,检测所述业务处理单元使用的服务器的负载;
至少根据检测到的所述消息数量判断是否需要调整所述业务处理单元的业务处理能力包括:根据检测到的所述消息数量以及所述业务处理单元使用的服务器的负载判断是否需要调整所述业务处理单元的业务处理能力,若是,则调整所述业务处理单元的业务处理能力。
4.根据权利要求3所述的业务数据处理方法,其特征在于,所述根据检测到的所述消息数量以及所述业务处理单元使用的服务器的负载判断是否需要调整所述业务处理单元的业务处理能力,包括:
步骤A1:按照设定的检测周期检测所述消息数量以及所述业务处理单元使用的服务器的负载,若在第一设定时长内检测到的所述消息数量持续大于所述业务处理单元当前所使用的线程数量或者在第一设定时长内检测到的所述业务处理单元使用的至少一台服务器的负载大于设定的高负载阈值,则执行步骤A2;若在第一设定时长内检测到的所述消息数量持续小于所述业务处理单元当前所使用的线程数量且在第一设定时长内检测到的所述业务处理单元使用的至少一台服务器的负载持续小于设定的低负载阈值,则执行步骤A3;若在第一设定时长内的检测结果不符合前述情况,则重复执行步骤A1;
步骤A2:扩展所述业务处理单元的业务处理能力,跳转步骤A1;
步骤A3:收缩所述业务处理单元的业务处理能力,跳转步骤A1。
5.一种业务数据处理装置,其特征在于,包括:
检测模块,用于针对消费者端的任一业务处理单元,检测代理端中与所述业务处理单元对应的订阅消息队列中的消息数量,其中,每一个所述业务处理单元都对应一个或多个订阅消息队列,所述业务处理单元用于处理所述订阅消息队列中的消息;
判断模块,用于至少根据检测到的所述消息数量判断是否需要调整所述业务处理单元的业务处理能力,若是,则调用调整模块;
调整模块,用于调整所述业务处理单元的业务处理能力;
所述检测模块,用于:按照设定的检测周期检测代理端中与所述业务处理单元对应的订阅消息队列中的消息数量;
所述判断模块,用于:在第一设定时长内,若检测到的所述消息数量持续大于或者持续小于所述业务处理单元当前所使用的线程数量,则判定需要调整所述业务处理单元的业务处理能力;所述第一设定时长大于所述设定的检测周期;
所述装置,还包括:
配置模块,用于在所述检测模块检测代理端中与所述业务处理单元对应的订阅消息队列中的消息数量之前,在本地内存中加载配置文件;所述配置文件中设定有所述业务处理单元使用线程的数量范围;
所述调整模块,用于:
若检测到的所述消息数量持续大于所述业务处理单元当前所使用的线程数量,扩展所述业务处理单元使用的线程数量,直到所述业务处理单元使用的线程数量等于所述消息数量为止,其中,所述业务处理单元使用的线程数量的上限为所述数量范围的最大值;
若检测到的所述消息数量持续小于所述业务处理单元当前所使用的线程数量,收缩所述业务处理单元使用的线程数量,直到所述业务处理单元使用的线程数量等于所述消息数量为止,其中,所述业务处理单元使用的线程数量的下限为所述数量范围的最小值。
6.根据权利要求5所述的业务数据处理装置,其特征在于,设所述业务处理单元使用一台服务器时在第二设定时长内处理消息数量上限为M,M为正整数;所述配置文件中设定有所述业务处理单元使用的服务器数量上限N,N为正整数;
所述调整模块,还用于:
若在第一设定时长内检测到的所述消息数量增长量大于等于n个M,n为正整数,则以N为上限,为所述业务处理单元扩展使用n+1台服务器;
若在第一设定时长内检测到的所述消息数量减少量大于等于n个M,则以N为上限,为所述业务处理单元缩减使用n台服务器。
7.根据权利要求5所述的业务数据处理装置,其特征在于,所述检测模块,还用于:检测所述业务处理单元使用的服务器的负载;
所述判断模块,用于根据检测到的所述消息数量以及所述业务处理单元使用的服务器的负载判断是否需要调整所述业务处理单元的业务处理能力。
8.根据权利要求7所述的业务数据处理装置,其特征在于,所述检测模块,用于按照设定的检测周期检测所述消息数量以及所述业务处理单元使用的服务器的负载;
所述判断模块,用于若在第一设定时长内检测到的所述消息数量持续大于所述业务处理单元当前所使用的线程数量或者在第一设定时长内检测到的所述业务处理单元使用的至少一台服务器的负载大于设定的高负载阈值,则判定需要扩展所述业务处理单元的业务处理能力,继续调用所述检测模块;
若在第一设定时长内检测到的所述消息数量持续小于所述业务处理单元当前所使用的线程数量且在第一设定时长内检测到的所述业务处理单元使用的至少一台服务器的负载持续小于设定的低负载阈值,则判定需要收缩所述业务处理单元的业务处理能力,继续调用所述检测模块;
若在第一设定时长内的检测结果不符合前述情况,则继续调用所述检测模块。
CN201711205491.3A 2017-11-27 2017-11-27 一种业务数据处理方法及装置 Active CN108134814B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711205491.3A CN108134814B (zh) 2017-11-27 2017-11-27 一种业务数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711205491.3A CN108134814B (zh) 2017-11-27 2017-11-27 一种业务数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN108134814A CN108134814A (zh) 2018-06-08
CN108134814B true CN108134814B (zh) 2020-12-22

Family

ID=62389860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711205491.3A Active CN108134814B (zh) 2017-11-27 2017-11-27 一种业务数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN108134814B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117286A (zh) * 2018-07-30 2019-01-01 佛山市甜慕链客科技有限公司 一种数据收集和调节的方法
CN110875935B (zh) * 2018-08-30 2023-03-24 阿里巴巴集团控股有限公司 消息发布、处理、订阅方法、装置及***
CN109508354A (zh) * 2018-09-25 2019-03-22 许继集团有限公司 一种并行处理***
CN110460534B (zh) * 2019-07-26 2024-05-14 腾讯云计算(北京)有限责任公司 一种请求消息上报方法、装置、设备及存储介质
CN110515746A (zh) * 2019-08-22 2019-11-29 北京宝兰德软件股份有限公司 一种处理慢消费者的方法及装置
CN111179080B (zh) * 2019-12-23 2023-10-27 中国建设银行股份有限公司 一种订单处理方法和订单处理装置
CN111625366A (zh) * 2020-06-02 2020-09-04 深圳市网是科技有限公司 基于发布与订阅模型的弹性伸缩服务方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092619A (zh) * 2014-07-25 2014-10-08 华为技术有限公司 流量控制方法及装置
CN105302890A (zh) * 2015-10-16 2016-02-03 海信集团有限公司 一种多媒体内容在线推荐的方法及其辅助方法和装置
CN106293968A (zh) * 2016-08-04 2017-01-04 华中科技大学 一种基于Kafka消息中间件的双向通信***及方法
CN106878415A (zh) * 2017-02-15 2017-06-20 阿里巴巴集团控股有限公司 数据消费的负载均衡方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2014268246A1 (en) * 2014-11-28 2016-06-16 Canon Kabushiki Kaisha Reverting tightly coupled threads in an over-scheduled system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092619A (zh) * 2014-07-25 2014-10-08 华为技术有限公司 流量控制方法及装置
CN105302890A (zh) * 2015-10-16 2016-02-03 海信集团有限公司 一种多媒体内容在线推荐的方法及其辅助方法和装置
CN106293968A (zh) * 2016-08-04 2017-01-04 华中科技大学 一种基于Kafka消息中间件的双向通信***及方法
CN106878415A (zh) * 2017-02-15 2017-06-20 阿里巴巴集团控股有限公司 数据消费的负载均衡方法及装置

Also Published As

Publication number Publication date
CN108134814A (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
CN108134814B (zh) 一种业务数据处理方法及装置
US20170279674A1 (en) Method and apparatus for expanding high-availability server cluster
CN111209110B (zh) 一种实现负载均衡的任务调度管理方法、***和存储介质
US9703638B2 (en) System and method for supporting asynchronous invocation in a distributed data grid
CN106933662A (zh) 分布式***及其调度方法和调度装置
US20120324000A1 (en) System and method for flow control in a messaging subsystem based on message-in/out rates
CN110995617B (zh) 基于mqtt的数据报送方法、装置、计算机设备和存储介质
CN112650575B (zh) 资源调度方法、装置和云端服务***
CN111988234A (zh) 过载保护方法、装置、服务器及存储介质
CN113703954A (zh) 一种消息备份方法、装置、电子设备及计算机存储介质
CN110138753B (zh) 分布式消息服务***、方法、设备及计算机可读存储介质
CN112965811B (zh) 一种监控数据的优化方法及服务端
CN113760549A (zh) 一种pod部署方法及装置
CN112468310B (zh) 流媒体集群节点管理方法、装置及存储介质
US9558035B2 (en) System and method for supporting adaptive busy wait in a computing environment
CN103823712A (zh) 一种多cpu虚拟机***的数据流处理方法和装置
CN114666215B (zh) 一种应用跨集群弹性伸缩的方法、***、介质和电子设备
CN114116203B (zh) 一种资源调用控制方法、资源调用控制装置及存储介质
CN112291326B (zh) 负载均衡方法、负载均衡装置、存储介质与电子设备
CN114385366A (zh) 容器云平台的容器组弹性扩容方法、***、介质和设备
CN114296869A (zh) 一种基于tcp长连接的服务器节点服役方法及装置
US20170031726A1 (en) Elasticity engine for availability management framework (amf)
CN113918093B (zh) 一种缩容的优化方法及终端
CN111382139A (zh) 对数据库中同一账户的并行访问方法
CN113127186B (zh) 配置集群节点资源的方法、装置、服务器和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20191226

Address after: 100086, room 601-606, room 6, Pacific International Building, No. 106, Haidian District, Beijing, Zhichun Road

Applicant after: HAIER UPLUS INTELLIGENT TECHNOLOGY (BEIJING) Co.,Ltd.

Applicant after: Qingdao Haier Technology Co., Ltd.

Address before: 100086, room 601-606, room 6, Pacific International Building, No. 106, Haidian District, Beijing, Zhichun Road

Applicant before: HAIER UPLUS INTELLIGENT TECHNOLOGY (BEIJING) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210210

Address after: 266101 Haier Industrial Park, 1 Haier Road, Laoshan District, Shandong, Qingdao

Patentee after: Qingdao Haier Technology Co., Ltd.

Patentee after: HAIER UPLUS INTELLIGENT TECHNOLOGY (BEIJING) Co.,Ltd.

Patentee after: Haier Smart Home Co., Ltd.

Address before: Room 601-606, 6 / F, Pacific International Building, 106 Zhichun Road, Haidian District, Beijing 100086

Patentee before: HAIER UPLUS INTELLIGENT TECHNOLOGY (BEIJING) Co.,Ltd.

Patentee before: Qingdao Haier Technology Co., Ltd.