CN110928491A - 存储分区动态选择方法、系统、计算机设备及存储介质 - Google Patents

存储分区动态选择方法、系统、计算机设备及存储介质 Download PDF

Info

Publication number
CN110928491A
CN110928491A CN201911047652.XA CN201911047652A CN110928491A CN 110928491 A CN110928491 A CN 110928491A CN 201911047652 A CN201911047652 A CN 201911047652A CN 110928491 A CN110928491 A CN 110928491A
Authority
CN
China
Prior art keywords
storage partition
message
transmitted
storage
information
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.)
Granted
Application number
CN201911047652.XA
Other languages
English (en)
Other versions
CN110928491B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201911047652.XA priority Critical patent/CN110928491B/zh
Priority to PCT/CN2019/117800 priority patent/WO2021082073A1/zh
Publication of CN110928491A publication Critical patent/CN110928491A/zh
Application granted granted Critical
Publication of CN110928491B publication Critical patent/CN110928491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了存储分区动态选择方法、系统、计算机设备及存储介质。方法包括:若接收到所输入的待传输消息,根据待传输消息生成消息传输请求并发送至Kafka集群服务器,获取与所述消息传输请求相匹配的存储分区信息反馈至用户终端;接收存储分区信息;根据预置的存储分区选择规则从存储分区信息中动态选择一个存储分区作为目标存储分区;根据存储分区信息中与目标存储分区对应的存储地址信息将待传输消息传输至目标存储分区进行存储。本发明基于集群存储,可从存储分区信息中动态选择得到目标存储分区,确保待传输消息及时、准确地传输至目标存储分区进行存储,大幅提升待传输消息传输的成功率及时效性,减小了集群服务器的处理压力。

Description

存储分区动态选择方法、系统、计算机设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种存储分区动态选择方法、系统、计算机设备及存储介质。
背景技术
Kafka集群服务器中包含若干个存储分区,用户终端在将消息发送至Kafka集群服务器进行存储时,由于网络波动或某一存储分区对应的存储服务器怠机,而消息则通过随机发送的方式选择一个存储分区并进行发送,这一过程中可能存在消息重复发送至某一存储分区多次依然无法成功发送,重复发送同一消息至Kafka集群服务器会占用较多网络资源,这一传输方法导致消息传输的时效性受到极大影响,无法保障消息及时、高效地完成传输。
发明内容
本发明实施例提供了一种存储分区动态选择方法、系统、计算机设备及存储介质,旨在解决现有技术方法中所存在的无法保障消息及时、高效传输至集群服务器的问题。
第一方面,本发明实施例提供了一种存储分区动态选择方法,其包括:
若接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器;
接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端;
接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址;
根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区;
根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
第二方面,本发明实施例提供了一种存储分区动态选择系统,其包括:
消息传输请求发送单元,用于若接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器;
存储分区信息反馈单元,用于接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端;
存储分区信息接收单元,用于接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址;
目标存储分区获取单元,用于根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区;
待传输消息发送单元,用于根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的存储分区动态选择方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的存储分区动态选择方法。
本发明实施例提供了一种存储分区动态选择方法、系统、计算机设备及存储介质。根据用户所输入的待传输消息生成消息传输请求并发送至Kafka集群服务器,获取Kafka集群服务器所反馈的存储分区信息,并根据存储分区选择规则从存储分区信息中动态选择一个存储分区作为目标存储分区,根据存储分区信息中与目标存储分区对应的存储地址信息将待传输消息发送至目标存储分区进行存储。通过上述方法,可从存储分区信息中动态选择得到目标存储分区,确保待传输消息及时、准确地传输至目标存储分区进行存储,大幅提升待传输消息传输的成功率及时效性,减小了集群服务器的处理压力。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的存储分区动态选择方法的流程示意图;
图2为本发明实施例提供的存储分区动态选择方法的应用场景示意图;
图3为本发明实施例提供的存储分区动态选择方法的子流程示意图;
图4为本发明实施例提供的存储分区动态选择方法的另一流程示意图;
图5为本发明实施例提供的存储分区动态选择方法的另一子流程示意图;
图6为本发明实施例提供的存储分区动态选择系统的示意性框图;
图7为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本发明实施例提供的存储分区动态选择方法的流程示意图,图2为本发明实施例提供的存储分区动态选择方法的应用场景示意图。该存储分区动态选择方法应用于用户终端10及Kafka集群服务器中,该方法通过安装于用户终端10及Kafka集群服务器中的应用软件进行执行,Kafka集群服务器20通过与用户终端10建立网络连接实现数据信息的传输。用户终端10即是用于执行存储分区动态选择方法以实现对存储分区进行动态选择的终端设备,例如台式电脑、笔记本电脑、平板电脑或手机等,Kafka集群服务器20即是用于向用户终端10发送数据信息的服务器端。图2中仅仅示意出一台用户终端10与Kafka集群服务器20进行信息传输,在实际应用中,Kafka集群服务器20也可与多台用户终端10同时进行信息传输。
如图1所示,该方法包括步骤S110~S150。
S110、若用户终端接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器。
若用户终端接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器,用户可通过用户终端输入待传输消息,用户终端即为消息生产者(produce),待传输消息可通过互联网传输至Kafka集群服务器中进行存储,Kafka集群服务器中包含多个服务器(broker),每一服务器(broker)中对应包含多个存储分区(partition),Kafka集群服务器中还包含多个队列(topic),每一队列对应存储一种类别的消息,每一队列对应包含一台或多台服务器,例如,可根据该消息的消费方式确定待传输消息的具体类别,根据消费方式的不同可将待传输消息对应分为生产者类或消费者类两种类别。为将待传输消息发送至与该待传输消息对应类别的存储分区中进行存储,需根据待传输消息生成对应的消息传输请求,并发送至集群服务器。消息传输请求中包含与待传输消息对应的类别信息、用户终端的网络地址信息及当前时间,用户终端的网络地址信息即是互联网中用于对用户终端进行标识的IP地址信息,集群服务器可通过网络地址信息对相应用户终端进行识别并向该用户终端反馈信息。
待传输消息中包含键值,可采用Key进行表示,Key的所包含的键值可采用value进行表示。若待传输消息中的Key中指定了具体的键值(Key=value),则可采用下述方式选择对应的目标存储分区对待传输消息进行存储;若待传输消息中的Key中未指定键值(Key=null),则无法采用下述方式选择目标存储分区,可采用随机选择的方式选择得到目标存储分区。
S120、Kafka集群服务器接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端。
Kafka集群服务器接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端。具体的,存储分区信息即是Kafka集群服务器所反馈的与消息传输请求对应的存储分区的具体信息,Kafka集群服务器中包含多个队列,每一队列对应存储一种类别的信息,每一队列对应包含一台或多台服务器,每一服务器均包含相应的服务器地址信息,每一服务器中对应包含多个存储分区。消息传输请求中包含待传输消息对应的类别信息,根据待传输消息的类别信息与Kafka集群服务器中所包含的队列进行匹配,即可获取与该消息类别对应队列所包含的服务器,将相应队列所包含所有服务器对应的服务器地址信息及其中所包含的存储分区作为存储分区信息,并根据消息传输请求将该存储分区信息反馈至消息存储请求中网络地址信息对应的用户终端。
S130、用户终端接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址。
用户终端接收所述Kafka集群服务器根据所述消息传输请求所反馈的存储分区信息,存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址。
例如,所接收到的存储分区信息如表1所示。
Figure BDA0002254523390000051
表1
S140、用户终端根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区。
用户终端根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区。存储分区选择规则即是用于从存储分区信息中选择对应目标存储分区的规则信息,从存储分区信息中多次选择得到的目标存储分区均不相同,因此获取目标存储分区即为对存储分区进行动态选择的过程,其中,所述存储分区选择规则中包含哈希值生成规则、第一计算公式及第二计算公式。哈希值生成规则即可根据待传输消息中的键值计算得到对应的哈希值,第一计算公式用于对待传输消息进行首次发送时计算并获取对应的一个存储分区作为目标存储分区,第二计算公式用于对待传输消息进行再次发送时计算并获取对应的一个存储分区作为目标存储分区。传统的技术方法均是通过集群服务器自行选择得到一个存储分区用于对消息进行存储,然而这一选择过程需占用集群服务器的系统资源,因此加大了集群服务器的处理压力,而本案对存储分区进行选择得到目标存储分区的过程在用户终端中,因此极大缓解Kafka集群服务器的处理压力。
在一实施例中,如图3所示,步骤S140包括子步骤S141、S142、S143和S144。
S141、根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值。
根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值。哈希值生成规则即可通过哈希运算实现,具体的,获取待传输消息的键值,根据哈希值生成规则对键值进行哈希运算即得到对应的哈希值,其中,哈希运算为安全散列算法256,哈希运算可将任意长度的输入通过哈希运算变换为固定长度的输出。
在本实施例中,即Utils.murmur2(keyBytes)=哈希值,键值即为keyBytes,可采用K进行表示,即对键值进行哈希运算即可得到对应的哈希值,哈希值可采用f(K)进行表示,例如,f(K)=Utils.murmur2(F16C372A0BB193)=1840589654。Utils.murmur2即为SHA256,对于任意长度(按bit计算)的信息,SHA256(安全散列算法256)都会产生一个32个字节长度的二进制数据,将该二进制数据转换为十进制数据即可得到哈希值,SHA256始终把信息当成一个位(bit)字符串来处理。根据所获取到的哈希值即可从存储分区信息中选择得到对应的一个存储分区。
S142、判断所述待传输消息是否为首次发送。
判断所述待传输消息是否为首次发送。具体的,用户终端每发送一次待传输消息,都会记录该待传输消息的发送次数,也即是待传输消息已被发送的次数,可通过对发送次数是否为零进行判断,以得到待传输消息是否为再次发送的判断结果,若发送次数为零,则表明在本次发送前该待传输消息未被发送,待传输消息不是再次发送;若发送次数大于零,则表明在本次发送前该待传输消息已被发送,待传输消息是再次发送。
S143、若所述待传输消息为首次发送,选择对应的第一计算公式,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
若所述待传输消息为首次发送,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区。具体的,第一计算公式为:N1=f(K)%n,其中,N1为所述第一计算公式的计算结果,n为所述存储分区信息中所包含存储分区的数量,f(K)为所述哈希值,K为所述待传输消息的键值,根据计算结果即可从存储分区信息中选择对应的存储分区,即为所得到的目标存储分区,目标存储分区仅包含一个存储分区。
例如,表1中的存储分区信息对应包含6个存储分区,也即是n=6,若对某一键值K进行计算得到N1=3,则对应选择表1中的第四个存储区间作为目标存储区间,也即是将服务器地址信息为153.61.0.2:2818中Partition:3的存储区间作为目标存储区间。
S144、若所述待传输消息非首次发送,选择对应的第二计算公式,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
若所述判断结果为是,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的一个存储分区作为目标存储分区。具体的,第二计算公式为:N1=(f(K)+S)%n,其中,N2为所述第二计算公式的计算结果,n为所述存储分区信息中所包含存储分区的数量,f(K)为所述哈希值,K为所述待传输消息的键值,S为所述待传输消息的发送次数,根据计算结果即可从存储分区信息中选择对应的一个存储分区,即为所得到的目标存储分区。
S150、用户终端根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
用户终端根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。存储分区信息中包含多个存储分区以及每一存储分区对应服务器的服务器地址信息,根据存储分区信息即可获取与目标存储分区对应的存储地址信息,以将待传输消息传输至Kafka集群服务器中的目标存储分区进行存储。
例如,若计算得到N1=3,则对应选择表1中的第四个存储区间作为目标存储区间,存储分区信息中与该目标存储区间对应的存储地址信息为:153.61.0.2:2818-Partition:3。
在一实施例中,如图4所示,步骤S150之后还包括步骤S160、S170和S180。
S160、判断所述待传输消息是否传输成功。
在一实施例中,如图5所示,步骤S160包括子步骤S161和S162。
S161、判断在反馈时限内是否接收到所述Kafka集群服务器所反馈的传输反馈信息,所述反馈时限为与所述待传输消息的传输时间间隔预置时限的时间。
S162、若在反馈时限内未接收到所述Kafka集群服务器所反馈的传输反馈信息,判定所述待传输消息未传输成功。
具体的,Kafka集群服务器接收待传输消息并对其进行存储,则会反馈传输反馈信息至对应的用户终端;若在反馈时限内接收到Kafka集群服务器所反馈的传输反馈信息,则表明待传输信息已传输至Kafka集群服务器,判定所述待传输消息传输成功;若在反馈时限内未接收到Kafka集群服务器所反馈的传输反馈信息,则表明待传输消息在传输并间隔预置时限后,Kafka集群服务器未成功接收该待传输信息,判定所述待传输消息未传输成功。其中,反馈时限可由用户预先配置。
例如,预置时限为30秒,则在待传输消息传输后的30秒内,判断是否接收到Kafka集群服务器所反馈的传输反馈信息,即可得到传输判断结果。
S170、若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数。
若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数。若待传输消息未传输成功,则需对该待传输消息进行再次发送,在再次发送之前,需先对待传输消息的发送次数进行更新,也即是对发送次数自加一得到更新后的发送次数。
S180、返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,以再次获取所述待传输消息的目标存储分区。
返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,也即是再次执行步骤S140,以再次获取所述待传输消息的目标存储分区并对待传输消息进行存储。若传输判断结果为否,则表明待传输消息未传输成功,需再次发送该待传输消息,由于该待传输消息的发送次数已被更新,因此若待传输消息传输至某一存储分区并未传输成功,则更换另一存储分区再次进行传输,可大幅提升待传输消息传输的成功率,避免重复传输同一消息至某一不可用存储分区而导致占用较多网络资源。因此,这一传输方法可大幅提高消息传输的时效性,保障消息及时、高效地完成传输。
在本发明实施例所提供的存储分区动态选择方法中,根据用户所输入的待传输消息生成消息传输请求并发送至Kafka集群服务器,获取Kafka集群服务器所反馈的存储分区信息,并根据存储分区选择规则从存储分区信息中动态选择一个存储分区作为目标存储分区,根据存储分区信息中与目标存储分区对应的存储地址信息将待传输消息发送至目标存储分区进行存储。通过上述方法,可从存储分区信息中动态选择得到目标存储分区,确保待传输消息及时、准确地传输至目标存储分区进行存储,大幅提升待传输消息传输的成功率及时效性,减小了集群服务器的处理压力。
本发明实施例还提供一种存储分区动态选择系统,该存储分区动态选择系统用于执行前述存储分区动态选择方法的任一实施例,该系统包括用户终端10及Kafka集群服务器20。具体地,请参阅图6,图6是本发明实施例提供的存储分区动态选择系统的示意性框图。
如图6所示,Kafka集群服务器20包括存储分区信息反馈单元120,用户终端10包括消息传输请求发送单元110、存储分区信息接收单元130、目标存储分区获取单元140及待传输消息发送单元150。
消息传输请求发送单元110,用于若接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器。
若接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器,用户可通过用户终端输入待传输消息,用户终端即为消息生产者(produce),待传输消息可通过互联网传输至Kafka集群服务器中进行存储,Kafka集群服务器中包含多个服务器(broker),每一服务器(broker)中对应包含多个存储分区(partition),Kafka集群服务器中还包含多个队列(topic),每一队列对应存储一种类别的消息,每一队列对应包含一台或多台服务器,例如,可根据该消息的消费方式确定待传输消息的具体类别,根据消费方式的不同可将待传输消息对应分为生产者类或消费者类两种类别。为将待传输消息发送至与该待传输消息对应类别的存储分区中进行存储,需根据待传输消息生成对应的消息传输请求,并发送至集群服务器。消息传输请求中包含与待传输消息对应的类别信息、用户终端的网络地址信息及当前时间,用户终端的网络地址信息即是互联网中用于对用户终端进行标识的IP地址信息,集群服务器可通过网络地址信息对相应用户终端进行识别并向该用户终端反馈信息。
待传输消息中包含键值,可采用Key进行表示,Key的所包含的键值可采用value进行表示。若待传输消息中的Key中指定了具体的键值(Key=value),则可采用下述方式选择对应的目标存储分区对待传输消息进行存储;若待传输消息中的Key中未指定键值(Key=null),则无法采用下述方式选择目标存储分区,可采用随机选择的方式选择得到目标存储分区。
存储分区信息反馈单元120,用于接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端。
Kafka集群服务器接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端。具体的,存储分区信息即是Kafka集群服务器所反馈的与消息传输请求对应的存储分区的具体信息,Kafka集群服务器中包含多个队列,每一队列对应存储一种类别的信息,每一队列对应包含一台或多台服务器,每一服务器均包含相应的服务器地址信息,每一服务器中对应包含多个存储分区。消息传输请求中包含待传输消息对应的类别信息,根据待传输消息的类别信息与Kafka集群服务器中所包含的队列进行匹配,即可获取与该消息类别对应队列所包含的服务器,将相应队列所包含所有服务器对应的服务器地址信息及其中所包含的存储分区作为存储分区信息,并根据消息传输请求将该存储分区信息反馈至消息存储请求中网络地址信息对应的用户终端。
存储分区信息接收单元130,用于接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址。
用户终端接收所述Kafka集群服务器根据所述消息传输请求所反馈的存储分区信息,存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址。
目标存储分区获取单元140,用于根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区。
根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区。存储分区选择规则即是用于从存储分区信息中选择对应目标存储分区的规则信息,从存储分区信息中多次选择得到的目标存储分区均不相同,因此获取目标存储分区即为对存储分区进行动态选择的过程,其中,所述存储分区选择规则中包含哈希值生成规则、第一计算公式及第二计算公式。哈希值生成规则即可根据待传输消息中的键值计算得到对应的哈希值,第一计算公式用于对待传输消息进行首次发送时计算并获取对应的一个存储分区作为目标存储分区,第二计算公式用于对待传输消息进行再次发送时计算并获取对应的一个存储分区作为目标存储分区。传统的技术方法均是通过集群服务器自行选择得到一个存储分区用于对消息进行存储,然而这一选择过程需占用集群服务器的系统资源,因此加大了集群服务器的处理压力,而本案对存储分区进行选择得到目标存储分区的过程在用户终端中,因此极大缓解Kafka集群服务器的处理压力。
其他发明实施例中,所述目标存储分区获取单元140包括子单元:哈希值获取单元141、发送判断单元142、第一计算单元143和第二计算单元144。
哈希值获取单元141,用于根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值。
根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值。哈希值生成规则即可通过哈希运算实现,具体的,获取待传输消息的键值,根据哈希值生成规则对键值进行哈希运算即得到对应的哈希值,其中,哈希运算为安全散列算法256,哈希运算可将任意长度的输入通过哈希运算变换为固定长度的输出。
在本实施例中,即Hash(键值)=哈希值,可采用keyBytes进行表示,即对键值进行哈希运算即可得到对应的哈希值,例如,keyBytes=Hash(F16C372A0BB193)=1840589654。对于任意长度(按bit计算)的信息,SHA256(安全散列算法256)都会产生一个32个字节长度的二进制数据,将该二进制数据转换为十进制数据即可得到哈希值,SHA256始终把信息当成一个位(bit)字符串来处理。根据所获取到的哈希值即可从存储分区信息中选择得到对应的一个存储分区。
判断单元142,用于判断所述待传输消息是否为首次发送。
判断所述待传输消息是否为首次发送。具体的,用户终端每发送一次待传输消息,都会记录该待传输消息的发送次数,也即是待传输消息已被发送的次数,可通过对发送次数是否为零进行判断,以得到待传输消息是否为再次发送的判断结果,若发送次数为零,则表明在本次发送前该待传输消息未被发送,待传输消息不是再次发送;若发送次数大于零,则表明在本次发送前该待传输消息已被发送,待传输消息是再次发送。
第一计算单元143,用于若所述待传输消息为首次发送,选择对应的第一计算公式,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
若所述待传输消息为首次发送,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区。具体的,第一计算公式为:N1=f(K)%n,其中,N1为所述第一计算公式的计算结果,n为所述存储分区信息中所包含存储分区的数量,f(K)为所述哈希值,K为所述待传输消息的键值,根据计算结果即可从存储分区信息中选择对应的存储分区,即为所得到的目标存储分区,目标存储分区仅包含一个存储分区。
第二计算单元144,用于若所述待传输消息非首次发送,选择对应的第二计算公式,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
若所述判断结果为是,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的一个存储分区作为目标存储分区。具体的,第二计算公式为:N1=(f(K)+S)%n,其中,N2为所述第二计算公式的计算结果,n为所述存储分区信息中所包含存储分区的数量,f(K)为所述哈希值,K为所述待传输消息的键值,S为所述待传输消息的发送次数,根据计算结果即可从存储分区信息中选择对应的一个存储分区,即为所得到的目标存储分区。
待传输消息发送单元150,用于根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。存储分区信息中包含多个存储分区以及每一存储分区对应服务器的服务器地址信息,根据存储分区信息即可获取与目标存储分区对应的存储地址信息,以将待传输消息传输至Kafka集群服务器中的目标存储分区进行存储。
其他发明实施例中,所述存储分区动态选择系统100还包括子单元:传输判断单元160、发送次数更新单元170和存储分区再次获取单元180。
传输判断单元160,用于判断所述待传输消息是否传输成功。
其他发明实施例中,所述传输判断单元160包括:反馈判断单元161和判定单元162。
反馈判断单元161,用于判断在反馈时限内是否接收到所述Kafka集群服务器所反馈的传输反馈信息,所述反馈时限为与所述待传输消息的传输时间间隔预置时限的时间。
判定单元162,用于若在反馈时限内未接收到所述Kafka集群服务器所反馈的传输反馈信息,判定所述待传输消息未传输成功。
具体的,Kafka集群服务器接收待传输消息并对其进行存储,则会反馈传输反馈信息至对应的用户终端;若在反馈时限内接收到Kafka集群服务器所反馈的传输反馈信息,则表明待传输信息已传输至Kafka集群服务器,判定所述待传输消息传输成功;若在反馈时限内未接收到Kafka集群服务器所反馈的传输反馈信息,则表明待传输消息在传输并间隔预置时限后,Kafka集群服务器未成功接收该待传输信息,判定所述待传输消息未传输成功。其中,反馈时限可由用户预先配置。
发送次数更新单元170,用于若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数。
若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数。若待传输消息未传输成功,则需对该待传输消息进行再次发送,在再次发送之前,需先对待传输消息的发送次数进行更新,也即是对发送次数自加一得到更新后的发送次数。
存储分区再次获取单元180,用于返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,以再次获取所述待传输消息的目标存储分区。
返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,也即是再次执行目标存储分区获取单元140中的步骤,以再次获取所述待传输消息的目标存储分区并对待传输消息进行存储。若传输判断结果为否,则表明待传输消息未传输成功,需再次发送该待传输消息,由于该待传输消息的发送次数已被更新,因此若待传输消息传输至某一存储分区并未传输成功,则更换另一存储分区再次进行传输,可大幅提升待传输消息传输的成功率,避免重复传输同一消息至某一不可用存储分区而导致占用较多网络资源。因此,这一传输方法可大幅提高消息传输的时效性,保障消息及时、高效地完成传输。
在本发明实施例所提供的存储分区动态选择系统用于执行上述存储分区动态选择方法,根据用户所输入的待传输消息生成消息传输请求并发送至Kafka集群服务器,获取Kafka集群服务器所反馈的存储分区信息,并根据存储分区选择规则从存储分区信息中动态选择一个存储分区作为目标存储分区,根据存储分区信息中与目标存储分区对应的存储地址信息将待传输消息发送至目标存储分区进行存储。通过上述方法,可从存储分区信息中动态选择得到目标存储分区,确保待传输消息及时、准确地传输至目标存储分区进行存储,大幅提升待传输消息传输的成功率及时效性,减小了集群服务器的处理压力。
上述存储分区动态选择系统可以实现为计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。
请参阅图7,图7是本发明实施例提供的计算机设备的示意性框图。
参阅图7,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行存储分区动态选择方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行存储分区动态选择方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:若接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器;接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端;接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址;根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区;根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
在一实施例中,处理器502在执行根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区的步骤时,执行如下操作:根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值;判断所述待传输消息是否为首次发送;若所述待传输消息为首次发送,选择对应的第一计算公式,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区;若所述待传输消息非首次发送,选择对应的第二计算公式,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
在一实施例中,处理器502还执行如下操作:判断所述待传输消息是否传输成功;若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数;返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,以再次获取所述待传输消息的目标存储分区。
在一实施例中,处理器502在执行判断所述待传输消息是否传输成功的步骤时,执行如下操作:判断在反馈时限内是否接收到所述Kafka集群服务器所反馈的传输反馈信息,所述反馈时限为与所述待传输消息的传输时间间隔预置时限的时间;若在反馈时限内未接收到所述Kafka集群服务器所反馈的传输反馈信息,判定所述待传输消息未传输成功。
在一实施例中,处理器502还执行如下操作:所述第一计算公式计算为N1=f(K)%n,其中,N1为所述第一计算公式的计算结果,n为所述存储分区信息中所包含存储分区的数量,f(K)为所述哈希值,K为所述待传输消息的键值;所述第二计算公式计算为N1=(f(K)+S)%n,其中,N2为所述第二计算公式的计算结果,S为所述待传输消息的发送次数。
本领域技术人员可以理解,图7中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图7所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现以下步骤:若接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器;接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端;接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址;根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区;根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
在一实施例中,所述根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区的步骤,包括:根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值;判断所述待传输消息是否为首次发送;若所述待传输消息为首次发送,选择对应的第一计算公式,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区;若所述待传输消息非首次发送,选择对应的第二计算公式,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
在一实施例中,还包括:判断所述待传输消息是否传输成功;若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数;返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,以再次获取所述待传输消息的目标存储分区。
在一实施例中,所述判断所述待传输消息是否传输成功的步骤,包括:判断在反馈时限内是否接收到所述Kafka集群服务器所反馈的传输反馈信息,所述反馈时限为与所述待传输消息的传输时间间隔预置时限的时间;若在反馈时限内未接收到所述Kafka集群服务器所反馈的传输反馈信息,判定所述待传输消息未传输成功。
在一实施例中,还包括:所述第一计算公式计算为N1=f(K)%n,其中,N1为所述第一计算公式的计算结果,n为所述存储分区信息中所包含存储分区的数量,f(K)为所述哈希值,K为所述待传输消息的键值;所述第二计算公式计算为N1=(f(K)+S)%n,其中,N2为所述第二计算公式的计算结果,S为所述待传输消息的发送次数。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
而前述的存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种存储分区动态选择方法,其特征在于,应用于存储分区动态选择系统,所述系统包括Kafka集群服务器及用户终端,所述方法包括:
若所述用户终端接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器;
所述Kafka集群服务器接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端;
所述用户终端接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址;
所述用户终端根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区;
所述用户终端根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
2.根据权利要求1所述的存储分区动态选择方法,其特征在于,所述存储分区选择规则包含哈希值生成规则、第一计算公式及第二计算公式,所述根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区,包括:
根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值;
判断所述待传输消息是否为首次发送;
若所述待传输消息为首次发送,选择对应的第一计算公式,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区;
若所述待传输消息非首次发送,选择对应的第二计算公式,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
3.根据权利要求1所述的存储分区动态选择方法,其特征在于,所述根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区之前,所述方法还包括:
判断所述待传输消息是否传输成功;
若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数;
返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,以再次获取所述待传输消息的目标存储分区。
4.根据权利要求3所述的存储分区动态选择方法,其特征在于,所述判断所述待传输消息是否传输成功,包括:
判断在反馈时限内是否接收到所述Kafka集群服务器所反馈的传输反馈信息,所述反馈时限为与所述待传输消息的传输时间间隔预置时限的时间;
若在反馈时限内未接收到所述Kafka集群服务器所反馈的传输反馈信息,判定所述待传输消息未传输成功。
5.根据权利要求2所述的存储分区动态选择方法,其特征在于,所述第一计算公式计算为N1=f(K)%n,其中,N1为所述第一计算公式的计算结果,n为所述存储分区信息中所包含存储分区的数量,f(K)为所述哈希值,K为所述待传输消息的键值;
所述第二计算公式计算为N1=(f(K)+S)%n,其中,N2为所述第二计算公式的计算结果,S为所述待传输消息的发送次数。
6.一种存储分区动态选择系统,其特征在于,包括Kafka集群服务器及用户终端,所述Kafka集群服务器包括存储分区信息反馈单元,所述用户终端包括消息传输请求发送单元、存储分区信息接收单元、目标存储分区获取单元及待传输消息发送单元,其中,
所述消息传输请求发送单元,用于若接收到待传输消息,根据所述待传输消息生成消息传输请求并发送至Kafka集群服务器;
所述存储分区信息反馈单元,用于接收所述消息传输请求,根据所述Kafka集群服务器所包含的队列,获取与所述消息传输请求相匹配的服务器的服务器地址信息及存储分区,基于所述服务器地址信息及所述存储分区生成存储分区信息反馈至所述用户终端;
所述存储分区信息接收单元,用于接收所述存储分区信息,其中,所述存储分区信息包括多个存储分区以及每一所述存储分区所对应的存储地址;
所述目标存储分区获取单元,用于根据预置的存储分区选择规则从所述存储分区信息中动态选择一个存储分区作为目标存储分区;
所述待传输消息发送单元,用于根据所述存储分区信息中与所述目标存储分区对应的存储地址信息将所述待传输消息传输至所述目标存储分区进行存储。
7.根据权利要求6所述的存储分区动态选择系统,其特征在于,所述目标存储分区获取单元,包括:
哈希值获取单元,用于根据所述哈希值生成规则生成与所述待传输消息的键值对应的哈希值;
发送判断单元,用于判断所述待传输消息是否为首次发送;
第一计算单元,用于若所述待传输消息为首次发送,选择对应的第一计算公式,将所述存储分区信息及所述哈希值输入所述第一计算公式计算,以将计算结果对应的存储分区作为目标存储分区;
第二计算单元,用于若所述待传输消息非首次发送,选择对应的第二计算公式,将所述存储分区信息、所述哈希值及所述待传输消息的发送次数输入所述第二计算公式计算,以将计算结果对应的存储分区作为目标存储分区。
8.根据权利要求6所述的存储分区动态选择系统,其特征在于,还包括:
传输判断单元,用于判断所述待传输消息是否传输成功;
发送次数更新单元,用于若所述待传输消息未传输成功,获取所述待传输消息的发送次数并自加一以得到更新后的发送次数;
存储分区再次获取单元,用于返回执行所述根据预置的存储分区选择规则从所述存储分区信息中选择一个存储分区作为目标存储分区的步骤,以再次获取所述待传输消息的目标存储分区。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的存储分区动态选择方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至5任一项所述的存储分区动态选择方法。
CN201911047652.XA 2019-10-30 2019-10-30 存储分区动态选择方法、系统、计算机设备及存储介质 Active CN110928491B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911047652.XA CN110928491B (zh) 2019-10-30 2019-10-30 存储分区动态选择方法、系统、计算机设备及存储介质
PCT/CN2019/117800 WO2021082073A1 (zh) 2019-10-30 2019-11-13 存储分区动态选择方法、系统、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911047652.XA CN110928491B (zh) 2019-10-30 2019-10-30 存储分区动态选择方法、系统、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN110928491A true CN110928491A (zh) 2020-03-27
CN110928491B CN110928491B (zh) 2022-04-19

Family

ID=69849911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911047652.XA Active CN110928491B (zh) 2019-10-30 2019-10-30 存储分区动态选择方法、系统、计算机设备及存储介质

Country Status (2)

Country Link
CN (1) CN110928491B (zh)
WO (1) WO2021082073A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148500A (zh) * 2020-05-18 2020-12-29 南方电网数字电网研究院有限公司 一种基于Netty的远程数据传输方法
CN112307064A (zh) * 2020-10-29 2021-02-02 上海达梦数据库有限公司 一种数据管理系统、方法及存储介质
CN114500546A (zh) * 2022-01-25 2022-05-13 中国农业银行股份有限公司 基于负载均衡集群的通信消息发送方法、装置及设备
CN112015818B (zh) * 2020-08-31 2024-01-30 杭州欧若数网科技有限公司 分布式图数据库uuid生成方法、装置、设备及介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174423A (zh) * 2022-07-12 2022-10-11 中国建设银行股份有限公司 Kafka的查询方法、装置、存储介质及设备
CN115242787B (zh) * 2022-07-22 2023-09-05 恒生电子股份有限公司 消息处理系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080034051A1 (en) * 2006-08-04 2008-02-07 Graham Derek Wallis Redistributing Messages in a Clustered Messaging Environment
CN102981911A (zh) * 2012-11-05 2013-03-20 北京奇虎科技有限公司 一种分布式消息处理系统及其中的设备和方法
CN108874562A (zh) * 2018-06-21 2018-11-23 北京顺丰同城科技有限公司 分布式高并发消息队列推送系统
CN109271106A (zh) * 2018-08-31 2019-01-25 华为技术有限公司 消息存储、读取方法及装置、服务器、存储介质
CN110019240A (zh) * 2017-12-29 2019-07-16 中国移动通信集团北京有限公司 一种业务数据交互方法、装置及系统
CN110071873A (zh) * 2019-04-09 2019-07-30 华为技术有限公司 一种发送数据的方法、装置及相关设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955717B (zh) * 2012-11-05 2015-05-20 北京奇虎科技有限公司 在分布式消息处理系统中的消息管理设备和方法
US10262032B2 (en) * 2016-02-24 2019-04-16 Salesforce.Com, Inc. Cache based efficient access scheduling for super scaled stream processing systems
CN109861878B (zh) * 2019-01-17 2022-03-25 平安科技(深圳)有限公司 kafka集群的topic数据的监控方法及相关设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080034051A1 (en) * 2006-08-04 2008-02-07 Graham Derek Wallis Redistributing Messages in a Clustered Messaging Environment
CN102981911A (zh) * 2012-11-05 2013-03-20 北京奇虎科技有限公司 一种分布式消息处理系统及其中的设备和方法
CN110019240A (zh) * 2017-12-29 2019-07-16 中国移动通信集团北京有限公司 一种业务数据交互方法、装置及系统
CN108874562A (zh) * 2018-06-21 2018-11-23 北京顺丰同城科技有限公司 分布式高并发消息队列推送系统
CN109271106A (zh) * 2018-08-31 2019-01-25 华为技术有限公司 消息存储、读取方法及装置、服务器、存储介质
CN110071873A (zh) * 2019-04-09 2019-07-30 华为技术有限公司 一种发送数据的方法、装置及相关设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148500A (zh) * 2020-05-18 2020-12-29 南方电网数字电网研究院有限公司 一种基于Netty的远程数据传输方法
CN112015818B (zh) * 2020-08-31 2024-01-30 杭州欧若数网科技有限公司 分布式图数据库uuid生成方法、装置、设备及介质
CN112307064A (zh) * 2020-10-29 2021-02-02 上海达梦数据库有限公司 一种数据管理系统、方法及存储介质
CN114500546A (zh) * 2022-01-25 2022-05-13 中国农业银行股份有限公司 基于负载均衡集群的通信消息发送方法、装置及设备
CN114500546B (zh) * 2022-01-25 2024-04-30 中国农业银行股份有限公司 基于负载均衡集群的通信消息发送方法、装置及设备

Also Published As

Publication number Publication date
CN110928491B (zh) 2022-04-19
WO2021082073A1 (zh) 2021-05-06

Similar Documents

Publication Publication Date Title
CN110928491B (zh) 存储分区动态选择方法、系统、计算机设备及存储介质
US10992512B2 (en) File sharing method, apparatus, and storage medium
CN109586969B (zh) 内容分发网络容灾方法、装置、计算机设备及存储介质
CN111131317B (zh) 一种基于区块链的数据处理方法、装置、设备和介质
US20130111031A1 (en) Adjustment of end user response times according to user expectations for server applications under load
CN109462650A (zh) 数据文件下载方法、装置、计算机设备及存储介质
US20160219058A1 (en) System and method for file sharing
CN112311720B (zh) 数据的传输方法及装置
CN112654003A (zh) 一种发送消息的方法、装置、存储介质及电子设备
CN110826001A (zh) 数据获取请求处理方法、装置、计算机设备及存储介质
US9137331B2 (en) Adaptive replication
JP5416135B2 (ja) フィンガープリント技術の実現方法、装置、及びシステム
CN109471713B (zh) 用于查询信息的方法和装置
CN111131375B (zh) 接口服务获取方法、装置、计算机设备及存储介质
WO2021068605A1 (zh) 数据持久化存储方法、装置、计算机设备及存储介质
CN107643906B (zh) 数据处理方法及装置
WO2019041284A1 (zh) 资源搜索方法及相关产品
CN110930253A (zh) 智能合约内部主键生成方法、装置、计算机设备及存储介质
CN114500368B (zh) 数据传输方法和装置及采用该装置的路由器
CN111049751A (zh) 数据传输优化方法、装置、设备及可读存储介质
JP2007281783A (ja) 通信制御方法及び通信制御装置
KR102622252B1 (ko) 콘텐츠 전송 장치 및 방법
TWI736065B (zh) 用於在私人群組中之委外取冪服務之方法及系統
CN114201573A (zh) 用于生成和查询与目标通信相关联的索引的系统和方法
CN111142661B (zh) 信源识别方法、装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40020784

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant