CN110019240A - 一种业务数据交互方法、装置及*** - Google Patents
一种业务数据交互方法、装置及*** Download PDFInfo
- Publication number
- CN110019240A CN110019240A CN201711479774.7A CN201711479774A CN110019240A CN 110019240 A CN110019240 A CN 110019240A CN 201711479774 A CN201711479774 A CN 201711479774A CN 110019240 A CN110019240 A CN 110019240A
- Authority
- CN
- China
- Prior art keywords
- operation system
- business datum
- key
- value pair
- kafka
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种业务数据交互方法、装置及***,在该***中包括Kafka集群、第一业务***和第二业务***,第一业务***获取第一业务***与第二业务***之间共享的键值对,依据键值对以及Kafka集群的分区机制确定目标分区,并将业务数据发布至目标分区。Kafka集群将业务数据存储至目标分区,并接收第二业务***发送的键值对,依据键值对以及Kafka集群的分区机制确定目标分区,并在目标分区内获取业务数据,将业务数据发送至第二业务***。第二业务***接收Kafka集群发送的业务数据。通过本发明可以降低业务***交互过程的复杂度以及开销。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种业务数据交互方法、装置及***。
背景技术
Kafka作为一种开源的消息中间件,广泛运用在分布式***中用于业务数据的交互。
基于Kafka的业务数据交互***主要包括消息生产者(Producer)、服务器(Broker)组成的Kafka集群和消息消费者(Consumer)。消息生产者发布消息到Kafka集群,并且每个发布到Kafka集群的消息都有一个类别,这个类别可称为主题(topic)。每个topic包含一个或多个分区(partition),每个partition由一系列有序、不可变的消息组成。Kafka集群以topic管理消息,将消息生产者发布的消息连续追加到partition中,partition中的每个消息都被分配一个连续的序号,这个序号可称为偏移量(offset),offset可用于partition唯一标识一个消息。Kafka集群将消息发送给消息消费者,消息消费者对消息进行处理。
基于Kafka的业务数据交互***通常采用发布/订阅模式进行业务数据的交互。在发布/订阅模式下,需要建立多个发布者和订阅者,其中,发布者和订阅者均包含消息生产者和消息消费者,都具有向Kafka集群发布和从Kafka集群获取消息的能力。发布者向某个topic发布消息,订阅者则向Kafka集群订阅并获取某个topic下的消息。其中,topic可以理解为是Kafka集群维护的按照不同分类进行区分的消息流。每个发布者需要维护消息流标识与外部消息流映射关系的消息流标识哈希表,每个订阅者也需要维护消息流标识与发布者标识之间映射关系的发布者标识哈希表,以及发布者标识与订阅者主题之间映射关系的发布者主题哈希表,且发布者、发布者标识及发布者主题具有一一对应关系且全局唯一。发布者发布消息或者订阅者订阅获取消息时,经过外部配置文件全文检索、映射关系哈希表初始化、消息标识的全库检索匹配、消息体的内容拼接等多个必需处理过程,实现消息的订阅与发布。
然而,采用上述方式进行大规模异构类数据的传输处理中,发布者和订阅者需要维护的映射关系哈希表内容复杂程度较高,并且读取外部配置文件、映射关系表初始化、全库检索映射关系哈希表的过程,需要复杂的计算处理过程,***消耗较大。
发明内容
本发明实施例提供一种业务数据交互方法、装置及***,以降低业务***交互过程的复杂度以及开销。
第一方面,本发明实施例提供一种业务数据交互***,该***包括Kafka集群以及至少一个业务***,所述至少一个业务***中包括实现Kafka生产者功能的第一业务***和实现Kafka消费者功能的第二业务***,所述第一业务***和所述第二业务***均具有向Kafka集群以Kafka消息形式发布业务数据和从Kafka集群以Kafka消息形式接收业务数据的能力,其中:
所述第一业务***,用于获取所述第一业务***与所述第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据,所述第一业务***依据所述键值对以及所述Kafka集群的分区机制确定目标分区,并将所述业务数据发布至所述目标分区。
所述Kafka集群,用于接收所述第一业务***发布的业务数据,并将所述业务数据存储至所述目标分区,并接收所述第二业务***发送的键值对,依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区,并在所述目标分区内获取所述业务数据,将所述业务数据发送至所述第二业务***。
所述第二业务***,用于获取所述键值对,并向所述Kafka集群发送所述键值对,订阅所述第一业务***与所述第二业务***之间交互的业务数据,并接收所述Kafka集群发送的业务数据。
可选的,所述第一业务***采用如下方式获取所述第一业务***与所述第二业务***之间共享的键值对:
对所述第一业务***的身份信息进行加密,生成所述第一业务***的第一身份标识;获取所述第二业务***的身份信息,并对所述第二业务***的身份信息进行加密,生成第二身份标识;对所述第一身份标识以及所述第二身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
所述第二业务***采用如下方式获取所述键值对:
对所述第二业务***的身份信息进行加密,生成第二身份标识;获取所述第一业务***的身份信息,并对所述第一业务***的身份信息进行加密,生成第一身份标识;依据所述第二身份标识以及所述第一身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
可选的,所述键值对为能够被解析为整数的标识码。所述第一业务***和所述Kafka集群采用如下方式依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
可选的,所述第一业务***为不同的业务***或者同一业务***中包括的不同子业务***。所述Kafka集群还用于:为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的主题。
可选的,所述第二业务***的数量为至少一个,且所述至少一个第二业务***与所述第一业务***共享相同的键值对。
可选的,所述第一业务***还用于:将业务数据的属性信息,与所述键值对和所述业务数据封装为Kafka消息体,并发布至所述目标分区,所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。所述Kafka集群还用于解析Kafka消息体,并存储所述业务数据的属性信息。
进一步的,所述第一业务***还用于对所述业务数据进行加密,并将加密后的业务数据发布至所述目标分区。所述第二业务***还用于接收加密的业务数据,并对所述业务数据进行解密。
具体的,所述Kafka集群采用如下方式将所述业务数据存储至所述目标分区:
将所述目标分区以切片为单位进行划分,将所述业务数据存储至所述目标分区的切片内,生成所述业务数据在所述切片中的偏移量,并利用所述偏移量标识所述业务数据在所述目标分区中的存储位置。
所述Kafka集群采用如下方式在所述目标分区内获取所述业务数据:
所述Kafka集群利用标识所述业务数据的所述偏移量,在所述目标分区内确定存储所述业务数据的分片,并在所述分片内获取所述业务数据。
更进一步的,所述Kafka集群还用于:若存储所述业务数据的分片的容量超出设定阈值,或者所述业务数据的存储时间超出设定时长,则删除所述业务数据。
第二方面,本发明实施例提供一种业务数据交互方法,该方法可应用于实现Kafka生产者功能的第一业务***中,所述方法包括:
获取第一业务***与第二业务***之间交互的业务数据,并获取所述第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
依据所述键值对以及所述Kafka集群的分区机制确定目标分区,并将所述业务数据发布至所述目标分区。
具体的,所述获取所述第一业务***与第二业务***之间共享的键值对,包括:
对所述第一业务***的身份信息进行加密,生成所述第一业务***的第一身份标识;
获取所述第二业务***的身份信息,并对所述第二业务***的身份信息进行加密,生成第二身份标识;
对所述第一身份标识以及所述第二身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
进一步的,所述键值对为能够被解析为整数的标识码;
所述依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区,包括:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;
将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
可选的,所述第二业务***的数量为至少一个,且所述至少一个第二业务***与所述第一业务***共享相同的键值对。
具体的,将所述业务数据发布至所述目标分区,包括:
将业务数据的属性信息,与所述键值对和所述业务数据封装为Kafka消息体,并发布至所述目标分区,所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
第三方面,本发明实施例提供一种业务数据交互方法,该方法可应用于Kafka集群,所述方法包括:
接收第一业务***发布的业务数据,并将所述业务数据存储至目标分区,所述目标分区为所述第一业务***依据键值对以及所述Kafka集群的分区机制确定的,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
接收第二业务***发送的键值对以及订阅请求,所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据;
依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区,并在所述目标分区内获取所述业务数据,将所述业务数据发送至所述第二业务***。
具体的,所述键值对为能够被解析为整数的标识码;
依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区,包括:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;
将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
进一步的,将所述业务数据存储至目标分区之前,所述方法还包括:
为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的主题。
具体的,将所述业务数据存储至目标分区,包括:
将业务数据的属性信息,与所述业务数据存储至目标分区;
所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
具体的,将所述业务数据存储至目标分区,包括:
将所述目标分区以切片为单位进行划分,将所述业务数据存储至所述目标分区的切片内,生成所述业务数据在所述切片中的偏移量,并利用所述偏移量标识所述业务数据在所述目标分区中的存储位置;
在所述目标分区内获取所述业务数据,包括:
所述Kafka集群利用标识所述业务数据的所述偏移量,在所述目标分区内确定存储所述业务数据的分片,并在所述分片内获取所述业务数据。
第四方面,本发明实施例提供一种业务数据交互方法,该方法可应用于实现Kafka消费者功能的第二业务***,包括:
获取第一业务***与所述第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
向Kafka集群发送所述键值对和订阅请求,并接收所述Kafka集群发送的业务数据;
所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据;
所述Kafka集群发送的业务数据由所述Kafka集群在目标分区内获取,所述目标分区由所述Kafka集群依据所述键值对以及所述Kafka集群的分区机制确定。
具体的,获取第一业务***与所述第二业务***之间共享的键值对,包括:
对所述第二业务***的身份信息进行加密,生成第二身份标识;
获取所述第一业务***的身份信息,并对所述第一业务***的身份信息进行加密,生成第一身份标识;
依据所述第二身份标识以及所述第一身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
第五方面,本发明实施例提供一种业务数据交互装置,该装置可应用于实现Kafka生产者功能的第一业务***中,包括:
获取单元,用于获取第一业务***与第二业务***之间交互的业务数据,以及第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
处理单元,用于依据所述获取单元获取的键值对以及Kafka集群的分区机制确定目标分区;
发布单元,用于将所述获取单元获取的业务数据发布至所述处理单元确定的所述目标分区。
其中,所述键值对为能够被解析为整数的标识码;
所述处理单元采用如下方式依据所述键值对以及Kafka集群的分区机制确定所述目标分区:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;
将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
可选的,所述获取单元采用如下方式获取所述第一业务***与第二业务***之间共享的键值对:
对所述第一业务***的身份信息进行加密,生成所述第一业务***的第一身份标识;
获取所述第二业务***的身份信息,并对所述第二业务***的身份信息进行加密,生成第二身份标识;
对所述第一身份标识以及所述第二身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
可选的,所述发布单元采用如下方式将所述业务数据发布至所述目标分区:
将业务数据的属性信息,与所述键值对和所述业务数据封装为Kafka消息体,并发布至所述目标分区,所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
第六方面,本发明实施例提供一种业务数据交互装置,该装置可应用于Kafka集群,包括:
接收单元,用于接收第一业务***发布的业务数据,并接收第二业务***发送的键值对以及订阅请求;
存储单元,用于将所述接收单元接收的业务数据存储至目标分区,所述目标分区为所述第一业务***依据键值对以及所述Kafka集群的分区机制确定的,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
处理单元,用于依据所述接收单元接收到的键值对以及所述Kafka集群的分区机制确定目标分区,并在所述目标分区内获取所述业务数据;
发送单元,用于将所述处理单元确定的业务数据发送至所述第二业务***。
其中,所述键值对为能够被解析为整数的标识码。所述处理单元采用如下方式依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;
将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
可选的,所述处理单元还用于:在所述存储单元将所述业务数据存储至目标分区之前,为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的主题。
进一步的,所述存储单元采用如下方式将所述业务数据存储至目标分区:
将业务数据的属性信息,与所述业务数据存储至目标分区;所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
进一步的,所述存储单元采用如下方式将所述业务数据存储至目标分区:
将所述目标分区以切片为单位进行划分,将所述业务数据存储至所述目标分区的切片内,生成所述业务数据在所述切片中的偏移量,并利用所述偏移量标识所述业务数据在所述目标分区中的存储位置。
所述处理单元采用如下方式在所述目标分区内获取所述业务数据:利用标识所述业务数据的所述偏移量,在所述目标分区内确定存储所述业务数据的分片,并在所述分片内获取所述业务数据。
第七方面,本发明实施例提供一种业务数据交互装置,该装置可应用于实现Kafka消费者功能的第二业务***,包括:
处理单元,用于获取第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
发送单元,用于向Kafka集群发送所述键值对和订阅请求,所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据;
接收单元,用于接收Kafka集群发送的业务数据,所述Kafka集群发送的业务数据由所述Kafka集群在目标分区内获取,所述目标分区由所述Kafka集群依据所述键值对以及所述Kafka集群的分区机制确定。
可选的,所述处理单元采用如下方式获取第一业务***与第二业务***之间共享的键值对:
对所述第二业务***的身份信息进行加密,生成第二身份标识;
获取所述第一业务***的身份信息,并对所述第一业务***的身份信息进行加密,生成第一身份标识;
依据所述第二身份标识以及所述第一身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
本发明实施例提供的业务数据交互方法、装置及***,通过交互数据的业务***之间共享键值对,并利用键值对和Kafka集群的分区机制确定目标分区,将业务数据发布以及存储在确定的目标分区,无需维护映射关系哈希表,并且无需执行映射关系表初始化、全库检索映射关系哈希表的过程,故一定程度上能够降低业务***交互过程的复杂度以及开销。
附图说明
图1为本发明实施例应用的产品运营***架构图;
图2为本发明实施例应用的Kafka消息***示意图;
图3为本发明实施例提供的业务数据交互***构成示意图;
图4为本发明实施例提供的发布业务数据至目标分区的示意图;
图5为本发明实施例提供的Partition存储消息的示意图;
图6为本发明实施例提供的Producer发送消息的过程示意图;
图7为本发明实施例提供的应用Kafka的产品运营***消息推送组网示意图;
图8为本发明实施例提供的业务数据存储至所述目标partition的切片的示意图;
图9为本发明实施例提供的segment文件命名示意图;
图10为本发明实施例提供的“.index”文件和“.log”文件的对应的关系示意图;
图11为本发明实施例提供的FileMessageSet类存储文件示意图;
图12为本发明实施例提供的一种应用于第一业务***的业务数据交互方法实施流程图;
图13为本发明实施例提供的第一业务***获取键值对的流程示意图;
图14为本发明实施例提供的第一业务***确定目标分区的流程示意图;
图15为本发明实施例提供的一种应用于Kafka集群的业务数据交互方法实施流程图;
图16为本发明实施例提供的一种应用于第二业务***的业务数据交互方法实施流程图;
图17为本发明实施例提供的一种应用于第一业务***的业务数据交互装置结构示意图;
图18为本发明实施例提供的一种应用于Kafka集群的业务数据交互装置结构示意图;
图19为本发明实施例提供的一种应用于第二业务***的业务数据交互装置结构示意图;
图20为本发明实施例提供的一种业务数据交互设备结构示意图。
具体实施方式
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明实施例主要应用于多个业务***之间进行业务数据进行交互的场景,在该应用场景下业务***之间可进行业务数据的广播,也可能进行业务数据的单播,例如可应用于图1所示的产品运营***中,该产品运营***中包括产品运营平台以及与该产品运营平台进行合作的各个业务平台。为实现产业链中合作伙伴的能力引入和商务模式的承载,产品运营平台需要为各业务平台提供包含产品管理、套餐管理、资费管理、分成管理、计费管理在内的多种管理方式和手段,并确保各业务平台可以将其最优产品放置于产品运营平台上进行推介售卖。其中,产品运营平台与各业务平台之间传输业务数据的数据格式和传输方式也不同。例如,产品运营平台与中移在线电子***、帜讯信息移动政务、小源科技金融智能短信等***间由于涉及财务、政务、金融等信息传递,出于实时性和安全性的双重考虑,广泛采用了同步传输数据方式,并使用META、文件、XML、JSON、图片等数据格式,完成必要展示信息的获取和业务流程的流转。产品运营平台与若为科技流量银行、玄武科技玄讯快消、亚信科技邻乐汇等***间由于售卖产品在订购后需要预留定制处理时间,出于对产品可靠性的考虑,广泛采用了异步传输数据方式,并使用OFFICE、文件、JSON、图片等数据格式,完成必要展示信息的获取和业务流程的流转。
由于业务平台数量庞大,故产品运营平台与业务平台进行交互的业务数据量也较大,并且各业务平台使用的数据格式各异,因此,本发明实施例中可在图1所示的产品运营***中内嵌图2所示的Kafka消息***,将Kafka消息***作为数据管道和消息***,为各业务模块之间的消息驱动提供数据传输能力支持,并实现不同数据格式的业务数据的发送和接收,以及产品运营平台与不同类型业务平台之间同步或异步传输需求。
图2中,Broker可以理解为是Kafka集群中包含的一个或多个独立服务器,这些服务器通常被称为Broker。Producer,可以理解为是消息生产者,负责发布消息到KafkaBroker。Consumer,可以理解为是消息消费者,负责从Kafka Broker接收消息。一个或多个Consumer可以被划分为消费者分组(Consumer Group),通常可根据实际业务需要划分Consumer Group。Producer发布到Kafka集群的每条消息都有一个类别,这个类别即为Topic。物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个Broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处。Kafka以Topic进行消息管理,采用分区(Partition)机制,将每个Topic划分为多个Partition,每个Partition对应一个逻辑Log,由多个Segment组成。每个Segment中存储多条Message(消息)。Message是Kafka消息***中通信的基本单位,每个Producer可以向一个Topic发布任意多条消息。每个Partition在内存中对应一个索引(Index),用以记录每个Segment中的第一条消息偏移。Producer发布到某个Topic的消息会被均匀的分布到多个Partition上,Broker收到发布消息后在对应Partition的最后一个Segment上添加该消息。当某个Segment上的消息条数达到配置值或消息发布时间超过阈值时,这些消息会被自动写入到磁盘上。Segment体量达到一定大小后将不会再往该Segment中写入数据,Broker会适时创建新的Segment。每个Partition都由一系列有序、不可变的消息组成,这些消息被连续追加到Partition中。Partition中的每个消息都有一个连续的被分配序列号叫做Offset,用于Partition唯一标识一条消息,Kafka集群可通过消息标识定位到消息的存储位置,有效避免了标识到位置的额外映射。Broker和Consumer之间可以使用Zookeeper实现负载均衡。所有Broker和Consumer都会在Zookeeper中注册,Zookeeper会自动保存一些元数据信息。如果某个Broker和Consumer发生变化,其他的Broker和Consumer都会得到通知。
上述内嵌有Kafka消息***的产品运营***,可以理解为是基于Kafka的业务数据交互***,在该业务数据交互***中包括Kafka集群以及多个业务***(例如图1中的各业务平台)。本发明实施例中涉及的业务***可具有Producer功能,也可具有Consumer功能,并具有向Kafka集群以Kafka消息形式发布业务数据和从Kafka集群以Kafka消息形式接收业务数据的能力。本发明实施例中为描述方便将具有Producer功能的业务***称为第一业务***,将具有Consumer功能的业务***称为第二业务***,其中,第一业务***和第二业务***可以为相同的业务***,也可为不同的业务***。
图3所示为本发明实施例提供的一种基于Kafka的业务数据交互***示意图。图3中,第一业务***具有Producer功能,用于获取所述第一业务***与所述第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据,所述第一业务***依据所述键值对以及所述Kafka集群的分区机制确定目标Partition,并将所述业务数据发布至所述目标Partition。所述Kafka集群,用于接收所述第一业务***发布的业务数据,并将所述业务数据存储至所述目标Partition。所述第二业务***具有Consumer功能,用于获取所述键值对,并向所述Kafka集群发送所述键值对,订阅所述第一业务***与所述第二业务***之间交互的业务数据。所述Kafka集群用于接收所述第二业务***发送的键值对,依据所述键值对以及所述Kafka集群的Partition机制确定所述目标Partition,并在所述目标Partition内获取所述业务数据,将所述业务数据发送至所述第二业务***。所述第二业务***接收所述Kafka集群发送的业务数据。
本发明实施例中,第一业务***和第二业务***之间共享键值对,并利用键值对和Kafka集群的分区机制确定目标Partition,将业务数据发布以及存储在确定的目标Partition,无需维护映射关系哈希表,并且无需执行映射关系表初始化、全库检索映射关系哈希表的过程,故一定程度上能够降低业务***交互过程的复杂度以及开销。
本发明实施例中为描述方便,有时第一业务***和Producer经常交替使用,第二业务***和Consumer经常交替使用,本领域技术人员应理解其含义为相同的概念。
具体的,Consumer接收数据是按照分组(Customer Group)来进行的,故,本发明实施例中,上述涉及的键值对可以理解为是Producer与Consumer组中的各Consumer之间共享的键值,其中Consumer组中包括的Consumer数量可以为一个,也可为多个。其中,上述涉及的共享键值对可以是Producer和Consumer之间预先协商好的,也可以是采用预定的生成规则生成。例如,第一业务***可采用如下方式获取所述第一业务***与所述第二业务***之间共享的键值对:对所述第一业务***的身份信息进行加密,生成所述第一业务***的第一身份标识,该第一身份标识可以理解为是第一业务***在基于Kafka的业务数据交互***中唯一的身份标识。获取所述第二业务***的身份信息,并对所述第二业务***的身份信息进行加密,生成第二身份标识,该第二身份标识可以理解为是第一业务***在基于Kafka的业务数据交互***中唯一的信息推送标识,即通过该第二身份标识可以确定第一业务***将消息推送至第二业务***。对所述第一身份标识以及所述第二身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。类似的,所述第二业务***可采用如下方式获取所述键值对:对所述第二业务***的身份信息进行加密,生成第二身份标识,该第二身份标识可以理解为是第二业务***在基于Kafka的业务数据交互***中唯一的身份标识。获取所述第一业务***的身份信息,并对所述第一业务***的身份信息进行加密,生成第一身份标识,该第二身份标识可以理解为是第一业务***在基于Kafka的业务数据交互***中唯一的信息推送标识。依据所述第二身份标识以及所述第一身份标识进行加密,生成消息队列标识码(Key),将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
一种可能的实施方式中,第一业务***和第二业务***生成上述涉及的消息队列标识码(Key)同步至Kafka集群中包括的各数据库中,以便Kafka集群可基于该消息队列标识码(Key)进行消息的推送。
本发明实施例中第一业务***和第二业务***可使用诸如MD5加密算法生成第一身份标识和第二身份标识。具体的加密实现过程,可采用现有已有技术实现,本发明实施例不再详述。
一种可能的实施方式中,本发明实施例中键值对可设置为能够被解析为整数的标识码。Producer在根据该能够被解析为整数的键值对,确定业务数据存储的目标Partition时,可解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的Partition数量进行取余操作;将Partition序号与取余操作得到的数值一致的Partition,作为所述目标Partition。
其中,所述Kafka集群为所述业务数据划分的主题内包括的Partition数量可通过Producer的Paritition.Class这一参数来指定,该Paritition.Class必须实现Kafka.Producer.Partitioner接口。本发明实施例中,Key可以被解析为整数,故可将解析Key得到的整数与所述业务数据划分的主题内包括的Partition总数取余,该消息会被发送到序号为取余后得到的数值对应的Partition。如果将图4所示代码中的类作为Partition.Class,并通过图4所示代码发送20条消息(Key分别为0,1,2,3)至Topic3(包含4个Partition),每个Parition都会有个序号,序号从0开始,则Key相同的消息会被发送并存储到同一个Partition里,而且Key的序号正好和Partition序号相同。其中,Partition序号从0开始,本例中的Key也从0开始。
本发明实施例中上述通过第一业务***与第二业务***,按业务规则预置唯一约定Key、直接执行数据传输的实现方式不但可以省去读取外部配置文件、映射关系表初始化、全库检索映射Hash表等复杂程度高、***消耗大的计算过程,还可以利用Kafka内在的分布式特性使得***性能得以线性提高。
本发明实施例中上述涉及的第一业务***可以为不同的业务***或者同一业务***中包括的不同子业务***,此种情况下第一业务***发布的消息可能是多类型的,故本发明实施例中Kafka集群可为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的Topic,不同Topic之间是相互独立的。由于Kafka本身具有内在的分布式特性,为了实现***的高扩展性,本发明实施例中可将每个具有广泛含义的主题(例如,客户信息同步、产品信息展示、支付订购确认等)分布到Kafka集群中的多个Kafka服务器(即Broker)上,同时为每个主题Topic建立多个不同的Partition,且在Topic创建时指定对应创建的Partition。每个Partition都是一个异步有序队列,负责存储、传输已分配的异步消息体(Message),同一个Partition可以确保其中的推送消息按顺序自持方式发送给Consumer,但多个Partition间是相互独立的,具体如图5所示。其中,Partition序号从0开始。
本发明实施例中,Kafka集群对Topic划分为一个或多个Partition,并且Partition中的消息是具有键值对的消息,具有相同键值对的消息会进入到同一个Partition,同一个Partition的消息会发送到相同的Consumer。这样具有相同键值的消息、主题、Partition和Consumer会有一定的映射关系,如图6所示,Producera通过Partition1将消息0和消息1发送给Consumera,通过Partition2将消息0、消息1和消息2发送给Consumerb。Producerb通过Partition3将消息0和消息1发送给Consumerc。
具体实施时,Consumer接收数据是按照分组(Customer Group)来进行的,Kafka集群可以确保每个Partition传输的数据被同一个Customer Group中的同一个Consumer所消费。如果想要重复消费,那么需要其他Customer Group来消费。每个Topic中的Partition数量决定此Topic在同一Customer Group中被可均衡的程度,越多的Partitions意味着可以容纳更多的Consumer,也就有效提升了并发消费的能力。例如,本发明实施例提供的基于Kafka的业务数据交互***应用于诸如图2所示的生产交互***时,产品运营平台需要从红云视频通、流量银行、微信普适OA等业务平台中获取产品分成信息,则将它们放置于同一个Customer Group中,类似的,可将电子***、金融智能通信放置于同一个Customer Group中,然后使用同一Topic下的同一个Partition,向Customer Group中的Consumer发送,从而实现一个Topic消息对于若干Consumer的广播。若需要从智能警务穿戴设备中获取穿戴设备唯一编码,可将该智能警务穿戴设备单独放置于一个Customer Group中,从而实现一个Topic消息对于一个Consumer的单播,具体的消息推送组网示意图可如图7所示。
具体的,本发明实施例中第一业务***(Producer)向Kafka集群发布业务数据时,可将业务数据封装为Kafka消息体发布到Kafka集群中确定的目标Partition。
进一步的,本发明实施例中第一业务***(Producer)可将业务数据的属性信息,与所述键值对和所述业务数据封装为Kafka消息体,并发布至所述目标Partition,所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。所述Kafka集群还用于解析Kafka消息体,并存储所述业务数据的属性信息,以便后续Consumer可以根据Kafka集群中记录的业务数据的属性信息订阅相关的信息,Kafka集群也可根据记录的业务数据的属性信息灵活组合Consumer订阅的消息队列,使的该业务***可实现不同业务***之间进行不同类型业务数据的交互,以及同步或异步的传输。
本发明实施例中业务数据的传输模式可由Producer通过配置参数Producer.Type指定。具体的,配置参数Producer.Type可指示在后台线程中消息的发送方式是同步的还是异步的,默认是同步的方式,即Producer.Type=Sync。若业务数据需要异步发送,只需将其设置成异步模式,即Producer.Type=Async。本发明实施例中还可由Producer通过设置Batch属性,使Producer以批量形式发布业务数据,从而极大提升Broker的数据处理和传输性能,但这样也会增加数据丢失的风险。如果是对于流量银行、电子***、在线金融这类对于数据传输准确度、数据实时响应、返回结果可靠等高要求,则必须将该参数设置为同步方式Sync。
本发明实施例中以批量(Batch)方式异步推送数据可以提高处理效率,Producer可以将消息在内存中累计到一定数量后作为一个Batch发送异步请求。Batch的数量大小可以通过Producer的参数(Batch.Num.Messages)控制。通过增加Batch的大小,可以减少网络请求和磁盘IO的次数,当然具体参数设置需要在效率和时效性方面做一个权衡。本发明实施例中还可通过设置Batch.Size这个参数,配置发布业务数据的数量。
更进一步的,本发明实施例中,Producer还可通过设置Producer缓存消息时间,Producer缓存队列中最大缓存消息数量、Producer阻塞等待时间以及Producer缓存的消息数量等传输配置参数,配置业务数据的传输方式。
本发明实施例中通过上述对不同业务***或者不同业务子***进行主题划分,以及保存业务数据的属性信息的方式,可以实现消息队列的水平扩展,并实现分布式消息。
进一步的,本发明实施例中所述第一业务***还用于对所述业务数据进行加密,并将加密后的业务数据发布至所述目标Partition。所述第二业务***还用于接收加密的业务数据,并对所述业务数据进行解密。
具体的,本发明实施例中根据不同业务***的产品接入需要,同时考虑业务流程关键信息在生成、发送、转发、接收过程中存在被攻击和盗取的可能,可对部分关键业务数据进行加解密处理,以保证数据传输过程中的安全性和可靠性。
具体的,本发明实施例中Producer通过Topic向Kafka Broker发布业务数据,Kafka集群是以Topic进行消息分类的,Topic在物理层面又能以Partition进行分组,一个Topic可以分成若干个Partition。如果以Partition为最小存储单位,当任意多个生产***不断向产品运营平台发送消息时,必然会引起Partition文件的无限制扩张,这样对于消息文件的维护和已消费消息的清理带来严重的影响,故本发明实施例中Kafka集群采用如下方式将所述业务数据存储至所述目标Partition:将所述目标Partition以切片(Segment)为单位进行划分,将所述业务数据存储至所述目标Partition的切片内,例如图8所示。每个Partition相当于一个巨型文件被平均分配到多个大小相等的Segment数据文件中,当然每个Segment文件中消息数量不一定相等,这种特性也方便存储时间较长的Segment的删除,即方便已被消费的消息的清理,提高磁盘的利用率。
具体的,每个Partition需要支持顺序读写,Segment的文件生命周期由服务端配置参数(Log.Segment.Bytes,Log.Roll.{Ms,Hours}等若干参数)决定。Segment文件由两部分组成,分别为“.Index”文件和“.Log”文件,分别表示为Segment索引文件和数据文件。这两个文件的命名规则为:Partition全局的第一个Segment从0开始,后续每个Segment文件名为上一个Segment文件最后一条消息的Offset值,数值大小为64位,20位数字字符长度,没有数字用0填充,具体如图9所示。其中,.Index”文件和“.Log”文件具有对应管理,以图9所示的Segment文件为例进行说明,图10示出了Segment:00000000000000170410的“.Index”文件和“.Log”文件的对应的关系。
本发明实施例中,“.Index”索引文件存储大量的元数据,“.Log”数据文件存储大量的消息,索引文件中的元数据指向对应数据文件中Message的物理偏移地址。其中以“.Index”索引文件中的元数据[3,348]为例,在“.Log”数据文件表示第3个消息,即在Partition中表示170410+3=170413个消息,该消息的物理偏移地址为348。
本发明实施例中Kafka集群可生成所述业务数据在Segment中的偏移量(Offset),并利用所述偏移量标识所述业务数据在所述目标Partition中的存储位置。具体的,Kafka集群接收到Producer发布的业务数据后,可将其放置于某一Partition中。每条消息(业务数据)在Partition中的都是由Offset来表示它在这个Partition中的存储位置当然,这个Offset不是该消息在Partition数据文件中的实际存储位置,而是一个逻辑值。本发明实施例中还可将业务数据封装为Message类,具有Offset、Messagesize以及Data等属性信息。其中,Offset为Long型,Messagesize为Int32,表示数据大小,Data为Message的具体内容,格式与Kafka通讯协议中的Messageset保持一致。本发明实施例中整个数据文件则包含了符合上述格式的若干条消息实例,按Offset由小到大排列在一起。我们将其封装为Filemessageset类,其类图如图11所示。
本发明实施例中Kafka集群通过Offset标识业务数据后,可采用如下方式在所述目标Partition内获取所述业务数据:利用标识所述业务数据的Offset,在所述目标Partition内确定存储所述业务数据的Segment,并在所述Segment内获取所述业务数据,此种方式相对过接口编程的方式在发布者标识和消息流标识之间简单添加”:”字符并按字符串相连接的方式组合起来构成唯一接收Kafka消息的标识键,实现更为简单。例如,在Segment中读取Offset为170418的消息时,首先查找Segment文件,其中00000000000000000000.Index为最开始的文件,第二个文件为00000000000000170410.Index(起始偏移为170410+1=170411),而第三个文件为00000000000000239430.Index(起始偏移为239430+1=239431),所以这个Offset=170418就落到了第二个文件之中。其他后续文件可以依次类推,以其实际偏移量命名并排列这些文件,然后根据二分查找法就可以快速定位到具体文件位置。其次,根据索引文件:00000000000000170410.Index中的[8,1325]定位到00000000000000170410.Log文件中的1325的位置进行读取。
更进一步的,所述Kafka集群还用于基于设定的删除策略删除Segment中的业务数据,以释放存储空间。具体的,可在确定存储所述业务数据的分片的容量超出设定阈值时删除业务数据,或者所述业务数据的存储时间超出设定时长,则删除所述业务数据。
本发明实施例中Kafka集群还可定期删除设定的业务数据,本发明实施例中执行定期删除已消费文件与Kafka性能提升关系不大,即如何选择删除策略只与磁盘监控大小的具体需求有关。另外,***会为每一个Consumer Group保留一些元数据信息作为当前消费的记录信息(消息存储位置,也可以理解为是Offset)。这个Offset由Consumer控制,正常情况下Consumer会在消费完一条消息后线性增加这个Offset。因为Offset由Consumer控制,所以Kafka Broker是无状态的,它不需要标记哪些消息被哪些Consumer消费过,不需要通过Broker去保证同一个Consumer Group只有一个Consumer能消费某一条消息,因此不需要实现锁机制,这样就为Kafka的高数据吞吐率提供了有力保障。
基于上述提供的业务数据交互***,本发明实施例还提供了一种业务数据交互方法,该方法可应用于实现Producer功能的第一业务***中,也可以理解为是应用于Producer中。图12所示为本发明实施例提供的一种应用于第一业务***的业务数据交互方法实施流程图,参阅图12所示,该方法包括:
S101:获取第一业务***与第二业务***之间交互的业务数据。
S102:获取所述第一业务***与第二业务***之间共享的键值对。具体的,第二业务***的数量为至少一个,且所述至少一个第二业务***与所述第一业务***共享相同的键值对,即本发明实施例中第一业务***和一组第二业务***共享键值对,该组内的第二业务***数量可以为一个,也可以为多个。
本发明实施例中,第一业务***和第二业务***之间共享的键值对可用于标识所述第一业务***与所述第二业务***之间交互的业务数据。
S103:依据获取的键值对以及Kafka集群的分区机制确定目标分区,并将获取的业务数据发布至确定的目标分区。
本发明实施例中一种可能的实施方式中第一业务***可将包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项的业务数据属性信息,与所述键值对和所述业务数据封装为Kafka消息体,并发布至所述目标分区,以使Kafka集群存储所述业务数据的属性信息,以便后续依据业务数据的属性信息进行分组以及Topic的划分。
具体的,上述第一业务***获取第一业务***与第二业务***之间共享的键值对可采用图13所示的方法流程实现:
S1021:对第一业务***的身份信息进行加密,生成第一业务***的第一身份标识。
S1022:获取第二业务***的身份信息,并对第二业务***的身份信息进行加密,生成第二身份标识。
S1033:对第一身份标识以及第二身份标识进行加密,生成消息队列标识码,将消息队列标识码作为第一业务***与第二业务***之间共享的键值对。
进一步的,上述涉及的键值对可以是能够被解析为整数的标识码,第一业务***依据键值对以及Kafka集群的分区机制确定目标分区的具体实施过程可采用诸如图14所示的方法流程,参阅图14所示,包括:
S1031:解析获取到的键值对。
S1032:将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作。
具体的,第一业务***可以为不同的业务***或者同一业务***中包括的不同子业务***。Kafka集群可为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的主题。本发明实施例中可确定Kafka集群为第一业务***与第二业务***交互的业务数据划分的Topic,并确定该Topic内包括的分区数量。
S1033:将分区序号与取余操作得到的数值一致的分区,作为确定的目标分区。
本发明实施例提供的业务数据交互方法,第一业务***利用键值对和Kafka集群的分区机制确定目标分区,将业务数据发布以及存储在确定的目标分区,无需维护映射关系哈希表,并且无需执行映射关系表初始化、全库检索映射关系哈希表的过程,故一定程度上能够降低业务***交互过程的复杂度以及开销。
本发明实施例还提供了业务数据交互方法,该业务数据交互方法可应用于Kafka集群,也可以理解为是应用于Broker。图15所示为本发明实施例提供的一种应用于Kafka集群的业务数据交互方法,参阅图15所示,该方法包括:
S201:接收第一业务***发布的业务数据,并将所述业务数据存储至目标分区。
本发明实施例中,目标分区为所述第一业务***依据键值对以及所述Kafka集群的分区机制确定的,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据。
可选的,所述键值对为能够被解析为整数的标识码。
可选的,为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的主题。
具体的,Kafka集群可将业务数据的属性信息,与所述业务数据存储至目标分区。其中,所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
进一步的,Kafka集群也可将所述目标分区以切片为单位进行划分,将所述业务数据存储至所述目标分区的切片内,生成所述业务数据在所述切片中的偏移量,并利用所述偏移量标识所述业务数据在所述目标分区中的存储位置。
S202:接收第二业务***发送的键值对以及订阅请求。
本发明实施例中,订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据。
S203:依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区,并在所述目标分区内获取所述业务数据。
本发明实施例中,Kafka集群依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区可采用与第一业务***确定目标分区类似的方式确定,例如:解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作,将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
其中,Kafka集群可利用标识所述业务数据的所述偏移量,在所述目标分区内确定存储所述业务数据的分片,并在所述分片内获取所述业务数据。
S204:将获取到的业务数据发送至第二业务***。
本发明实施例提供的业务数据交互方法,Kafka集群利用第一业务***与第二业务***共享的键值对,以及Kafka集群的分区机制确定目标分区,将业务数据发布以及存储在确定的目标分区,无需维护映射关系哈希表,并且无需执行映射关系表初始化、全库检索映射关系哈希表的过程,故一定程度上能够降低业务***交互过程的复杂度以及开销。
本发明实施例还提供一种业务数据交互方法,该方法可应用于实现Consumer功能的第二业务***,也可以理解为该方法可应用于Consumer。图16所示为本发明实施例提供的一种应用于实现Consumer功能的第二业务***的方法实施流程图,参阅图16所示,该方法包括:
S301:获取第一业务***与所述第二业务***之间共享的键值对。
本发明实施例中,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据。
具体的,第二业务***可采用与第一***获取键值对类似的方式获取键值对,例如:对所述第二业务***的身份信息进行加密,生成第二身份标识;获取所述第一业务***的身份信息,并对所述第一业务***的身份信息进行加密,生成第一身份标识;依据所述第二身份标识以及所述第一身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
S302:向Kafka集群发送获取的键值对,并发送订阅请求。
其中,所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据。
S303:接收Kafka集群发送的业务数据。
具体的,所述Kafka集群发送的业务数据由所述Kafka集群在目标分区内获取,所述目标分区由所述Kafka集群依据所述键值对以及所述Kafka集群的分区机制确定。
本发明实施例提供的业务数据交互方法,第二业务***向Kafka集群发送键值对,以使Kafka集群利用键值对以及Kafka集群的分区机制确定目标分区,将获取业务数据发送给第二业务***,使得第二业务***无需维护映射关系哈希表,并且无需执行映射关系表初始化、全库检索映射关系哈希表的过程,故一定程度上能够降低业务***交互过程的复杂度以及开销。
基于相同的发明构思,本发明实施例提供一种业务数据交互装置,该业务数据交互装置可应用于实现Producer功能的第一业务***中。图17所示为本发明实施例提供的应用于实现Producer功能的第一业务***的业务数据交互装置结构示意图,参阅图17所示,该装置包括获取单元101、处理单元102和发布单元103。其中,获取单元101,用于获取第一业务***与第二业务***之间交互的业务数据,以及第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据。处理单元102,用于依据所述获取单元101获取的键值对以及Kafka集群的分区机制确定目标分区。发布单元103,用于将所述获取单元101获取的业务数据发布至所述处理单元102确定的所述目标分区。
一种可能的实施方式中,所述键值对为能够被解析为整数的标识码。所述处理单元102采用如下方式依据所述键值对以及Kafka集群的分区机制确定所述目标分区:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
可选的,所述获取单元101采用如下方式获取所述第一业务***与第二业务***之间共享的键值对:
对所述第一业务***的身份信息进行加密,生成所述第一业务***的第一身份标识;获取所述第二业务***的身份信息,并对所述第二业务***的身份信息进行加密,生成第二身份标识;对所述第一身份标识以及所述第二身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
可选的,所述发布单元103采用如下方式将所述业务数据发布至所述目标分区:
将业务数据的属性信息,与所述键值对和所述业务数据封装为Kafka消息体,并发布至所述目标分区,所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
基于相同的发明构思,本发明实施例提供一种业务数据交互装置,该业务数据交互装置可应用于Kafka集群中。图18所示为本发明实施例提供的应用于Kafka集群的业务数据交互装置结构示意图,参阅图18所示,该装置包括接收单元201、存储单元202、处理单元203和发送单元204。其中,接收单元201,用于接收第一业务***发布的业务数据,并接收第二业务***发送的键值对以及订阅请求。存储单元202,用于将所述接收单元201接收的业务数据存储至目标分区,所述目标分区为所述第一业务***依据键值对以及所述Kafka集群的分区机制确定的,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据。处理单元203,用于依据所述接收单元201接收到的键值对以及所述Kafka集群的分区机制确定目标分区,并在所述目标分区内获取所述业务数据。发送单元204,用于将所述处理单元203确定的业务数据发送至所述第二业务***。
其中,所述键值对为能够被解析为整数的标识码。所述处理单元203采用如下方式依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
可选的,所述处理单元203还用于:在所述存储单元202将所述业务数据存储至目标分区之前,为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的主题。
进一步的,所述存储单元202采用如下方式将所述业务数据存储至目标分区:
将业务数据的属性信息,与所述业务数据存储至目标分区;所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
进一步的,所述存储单元202采用如下方式将所述业务数据存储至目标分区:
将所述目标分区以切片为单位进行划分,将所述业务数据存储至所述目标分区的切片内,生成所述业务数据在所述切片中的偏移量,并利用所述偏移量标识所述业务数据在所述目标分区中的存储位置。
所述处理单元203采用如下方式在所述目标分区内获取所述业务数据:利用标识所述业务数据的所述偏移量,在所述目标分区内确定存储所述业务数据的分片,并在所述分片内获取所述业务数据。
基于相同的发明构思,本发明实施例还提供一种业务数据交互装置,该业务数据交互装置可应用于实现Consumer功能的第二业务***中。图19所示为本发明实施例提供的应用于实现Consumer功能的第二业务***的业务数据交互装置结构示意图,参阅图19所示,该装置包括处理单元301、发送单元302和接收单元304。其中,处理单元301,用于获取第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据。发送单元302,用于向Kafka集群发送处理单元301确定的键值对,并发送订阅请求。所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据。接收单元303,用于接收Kafka集群发送的业务数据,所述Kafka集群发送的业务数据由所述Kafka集群在目标分区内获取,所述目标分区由所述Kafka集群依据所述键值对以及所述Kafka集群的分区机制确定。
可选的,所述处理单元301采用如下方式获取第一业务***与第二业务***之间共享的键值对:
对所述第二业务***的身份信息进行加密,生成第二身份标识;获取所述第一业务***的身份信息,并对所述第一业务***的身份信息进行加密,生成第一身份标识;依据所述第二身份标识以及所述第一身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
本发明实施例还提供一种业务数据交互设备,该业务数据交互设备可以应用于Producer,也可以应用于Broker,还可以应用于Consumer。图20所示为本发明实施例提供的业务数据交互设备的一种结构示意图,参阅图20所示,本发明实施例中提供的业务数据交互设备包括存储器1001、处理器1002及存储在所述存储器上并可在所述处理器上运行的计算机程序1003,所述处理器1002执行所述程序时实现上述涉及的第一业务***、第二业务***或Kafka集群业务数据交互的方法。
需要说明的是,上述涉及的处理器可以是中央处理器(Central ProcessingUnit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
其中,所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
可以理解的是,本申请实施例附图中仅仅示出了业务数据交互装置及业务数据交互设备的简化设计。在实际应用中,并不限于上述结构。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的第一业务***、第二业务***或Kafka集群实现业务数据交互方法中的步骤。
本发明实施例提供的业务数据交互方法、装置及***,通过交互数据的业务***之间共享键值对,并利用键值对和Kafka集群的分区机制确定目标分区,将业务数据发布以及存储在确定的目标分区,无需维护映射关系哈希表,并且无需执行映射关系表初始化、全库检索映射关系哈希表的过程,故一定程度上能够降低业务***交互过程的复杂度以及开销。
本领域内的技术人员应明白,本发明实施例可提供为方法、***、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (20)
1.一种业务数据交互方法,其特征在于,应用于实现Kafka生产者功能的第一业务***中,所述方法包括:
获取第一业务***与第二业务***之间交互的业务数据,以及所述第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
依据所述键值对以及Kafka集群的分区机制确定目标分区,并将所述业务数据发布至所述目标分区。
2.如权利要求1所述的方法,其特征在于,所述获取所述第一业务***与第二业务***之间共享的键值对,包括:
对所述第一业务***的身份信息进行加密,生成所述第一业务***的第一身份标识;
获取所述第二业务***的身份信息,并对所述第二业务***的身份信息进行加密,生成第二身份标识;
对所述第一身份标识以及所述第二身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
3.如权利要求1或2所述的方法,其特征在于,所述键值对为能够被解析为整数的标识码;
所述依据所述键值对以及Kafka集群的分区机制确定所述目标分区,包括:
解析所述键值对,并将解析所述键值对得到的整数与Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;
将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
4.如权利要求1所述的方法,其特征在于,所述第二业务***的数量为至少一个,且所述至少一个第二业务***与所述第一业务***共享相同的键值对。
5.如权利要求1所述的方法,其特征在于,将所述业务数据发布至所述目标分区,包括:
将业务数据的属性信息,与所述键值对和所述业务数据封装为Kafka消息体,并发布至所述目标分区,所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
6.一种业务数据交互方法,其特征在于,应用于Kafka集群,所述方法包括:
接收第一业务***发布的业务数据,并将所述业务数据存储至目标分区,所述目标分区为所述第一业务***依据键值对以及所述Kafka集群的分区机制确定的,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
接收第二业务***发送的键值对以及订阅请求,所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据;
依据所述键值对以及所述Kafka集群的分区机制确定目标分区,并在所述目标分区内获取所述业务数据,将所述业务数据发送至所述第二业务***。
7.如权利要求6所述的方法,其特征在于,所述键值对为能够被解析为整数的标识码;
依据所述键值对以及所述Kafka集群的分区机制确定所述目标分区,包括:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;
将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
8.如权利要求7所述的方法,其特征在于,将所述业务数据存储至目标分区之前,所述方法还包括:
为不同的业务***发布的业务数据或者为同一业务***中包括的不同子业务***发布的业务数据,划分不同的主题。
9.如权利要求6所述的方法,其特征在于,将所述业务数据存储至目标分区,包括:
将业务数据的属性信息,与所述业务数据存储至目标分区;
所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
10.如权利要求6所述的方法,其特征在于,将所述业务数据存储至目标分区,包括:
将所述目标分区以切片为单位进行划分,将所述业务数据存储至所述目标分区的切片内,生成所述业务数据在所述切片中的偏移量,并利用所述偏移量标识所述业务数据在所述目标分区中的存储位置;
在所述目标分区内获取所述业务数据,包括:
利用标识所述业务数据的所述偏移量,在所述目标分区内确定存储所述业务数据的分片,并在所述分片内获取所述业务数据。
11.一种业务数据交互方法,其特征在于,应用于实现Kafka消费者功能的第二业务***,包括:
获取第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
向Kafka集群发送所述键值对和订阅请求,并接收所述Kafka集群发送的业务数据;
所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据;
所述Kafka集群发送的业务数据由所述Kafka集群在目标分区内获取,所述目标分区由所述Kafka集群依据所述键值对以及所述Kafka集群的分区机制确定。
12.如权利要求11所述的方法,其特征在于,获取第一业务***与所述第二业务***之间共享的键值对,包括:
对所述第二业务***的身份信息进行加密,生成第二身份标识;
获取所述第一业务***的身份信息,并对所述第一业务***的身份信息进行加密,生成第一身份标识;
依据所述第二身份标识以及所述第一身份标识进行加密,生成消息队列标识码,将所述消息队列标识码作为所述第一业务***与所述第二业务***之间共享的键值对。
13.一种业务数据交互装置,其特征在于,应用于实现Kafka生产者功能的第一业务***中,包括:
获取单元,用于获取第一业务***与第二业务***之间交互的业务数据,以及第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
处理单元,用于依据所述获取单元获取的键值对以及Kafka集群的分区机制确定目标分区;
发布单元,用于将所述获取单元获取的业务数据发布至所述处理单元确定的所述目标分区。
14.如权利要求13所述的装置,其特征在于,所述键值对为能够被解析为整数的标识码;
所述处理单元采用如下方式依据所述键值对以及Kafka集群的分区机制确定所述目标分区:
解析所述键值对,并将解析所述键值对得到的整数与所述Kafka集群为所述业务数据划分的主题内包括的分区数量进行取余操作;
将分区序号与取余操作得到的数值一致的分区,作为所述目标分区。
15.一种业务数据交互装置,其特征在于,应用于Kafka集群,包括:
接收单元,用于接收第一业务***发布的业务数据,并接收第二业务***发送的键值对以及订阅请求;
存储单元,用于将所述接收单元接收的业务数据存储至目标分区,所述目标分区为所述第一业务***依据键值对以及所述Kafka集群的分区机制确定的,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
处理单元,用于依据所述接收单元接收到的键值对以及所述Kafka集群的分区机制确定目标分区,并在所述目标分区内获取所述业务数据;
发送单元,用于将所述处理单元确定的业务数据发送至所述第二业务***。
16.如权利要求15所述的装置,其特征在于,所述处理单元还用于:
将业务数据的属性信息,与所述业务数据存储至目标分区;
所述业务数据的属性信息包括业务数据的传输模式、业务数据的存储格式以及业务数据类型中的至少一项。
17.一种业务数据交互装置,其特征在于,应用于实现Kafka消费者功能的第二业务***,包括:
处理单元,用于获取第一业务***与第二业务***之间共享的键值对,所述键值对用于标识所述第一业务***与所述第二业务***之间交互的业务数据;
发送单元,用于向Kafka集群发送所述键值对和订阅请求,所述订阅请求用于订阅所述第一业务***与所述第二业务***之间交互的业务数据;
接收单元,用于接收Kafka集群发送的业务数据,所述Kafka集群发送的业务数据由所述Kafka集群在目标分区内获取,所述目标分区由所述Kafka集群依据所述键值对以及所述Kafka集群的分区机制确定。
18.一种业务数据交互***,其特征在于,包括Kafka集群以及至少一个业务***,所述至少一个业务***中包括实现Kafka生产者功能的第一业务***和实现Kafka消费者功能的第二业务***;
所述第一业务***具有实现权利要求1至5任一项所述方法的功能;
所述Kafka集群具有实现权利要求6至10任一项所述方法的功能;
所述第二业务***具有实现权利要求11至12任一项所述方法的功能。
19.一种业务数据交互设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的业务数据交互方法,或实现如权利要求6至10任一项所述的业务数据交互方法,或实现如权利要求11至12任一项所述的业务数据交互方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一项所述的业务数据交互方法,或实现如权利要求6至10任一项所述的业务数据交互方法,或实现如权利要求11至12任一项所述的业务数据交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479774.7A CN110019240B (zh) | 2017-12-29 | 2017-12-29 | 一种业务数据交互方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479774.7A CN110019240B (zh) | 2017-12-29 | 2017-12-29 | 一种业务数据交互方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019240A true CN110019240A (zh) | 2019-07-16 |
CN110019240B CN110019240B (zh) | 2021-11-09 |
Family
ID=67187212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711479774.7A Active CN110019240B (zh) | 2017-12-29 | 2017-12-29 | 一种业务数据交互方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019240B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401721A (zh) * | 2019-08-06 | 2019-11-01 | 北京达佳互联信息技术有限公司 | 内容数据分发的方法、装置及*** |
CN110928491A (zh) * | 2019-10-30 | 2020-03-27 | 平安科技(深圳)有限公司 | 存储分区动态选择方法、***、计算机设备及存储介质 |
CN111078789A (zh) * | 2019-11-25 | 2020-04-28 | 泰康保险集团股份有限公司 | 数据共享方法及装置、存储介质、电子设备 |
CN111124703A (zh) * | 2019-11-25 | 2020-05-08 | 山东鲁能软件技术有限公司 | 一种集群环境下自动提醒处理工作的方法及*** |
CN111143332A (zh) * | 2019-12-31 | 2020-05-12 | 中电科华云信息技术有限公司 | 一种数据交换*** |
CN111142880A (zh) * | 2019-12-25 | 2020-05-12 | 北京奇艺世纪科技有限公司 | 消息***中分区的分配方法、装置及电子设备 |
CN111400065A (zh) * | 2020-03-13 | 2020-07-10 | 百融云创科技股份有限公司 | 一种分离全局zookeeper的pulsar消息异地多活方法及*** |
CN111555957A (zh) * | 2020-03-26 | 2020-08-18 | 孩子王儿童用品股份有限公司 | 一种基于Kafka的同步消息服务***及实现方法 |
CN111581253A (zh) * | 2020-05-04 | 2020-08-25 | 上海维信荟智金融科技有限公司 | 基于反欺诈模型的实时检测方法及*** |
CN112148782A (zh) * | 2020-09-24 | 2020-12-29 | 建信金融科技有限责任公司 | 市场数据接入方法及装置 |
CN112333083A (zh) * | 2020-10-30 | 2021-02-05 | 平安付科技服务有限公司 | 交易信息处理方法、装置、计算机设备及计算机可读介质 |
CN112565225A (zh) * | 2020-11-27 | 2021-03-26 | 北京百度网讯科技有限公司 | 用于数据发送的方法、装置、电子设备及可读存储介质 |
CN112671877A (zh) * | 2020-12-16 | 2021-04-16 | 中国建设银行股份有限公司 | 一种数据处理方法和装置 |
CN112822260A (zh) * | 2020-12-31 | 2021-05-18 | 北京天融信网络安全技术有限公司 | 文件传输方法及装置、电子设备、存储介质 |
CN113190528A (zh) * | 2021-04-21 | 2021-07-30 | 中国海洋大学 | 一种并行分布式大数据架构构建方法及*** |
CN113296972A (zh) * | 2020-07-20 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种信息的注册方法、计算设备及存储介质 |
CN114401269A (zh) * | 2021-12-08 | 2022-04-26 | 国电南瑞科技股份有限公司 | 一种业务数据分发方法、***及物联管理平台 |
CN114629925A (zh) * | 2020-12-11 | 2022-06-14 | 飞狐信息技术(天津)有限公司 | 一种数据传输方法、装置及电子设备 |
CN115473858A (zh) * | 2022-09-05 | 2022-12-13 | 上海哔哩哔哩科技有限公司 | 数据传输方法和流式数据传输*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理***及处理方法 |
CN105791431A (zh) * | 2016-04-26 | 2016-07-20 | 北京邮电大学 | 一种在线分布式监控视频处理任务调度方法及装置 |
US20160337465A1 (en) * | 2015-05-15 | 2016-11-17 | Cisco Technology, Inc. | Multi-datacenter message queue |
CN106293968A (zh) * | 2016-08-04 | 2017-01-04 | 华中科技大学 | 一种基于Kafka消息中间件的双向通信***及方法 |
US20170060622A1 (en) * | 2015-02-27 | 2017-03-02 | Savi Technology, Inc. | System and method for a data processing architecture |
CN106936896A (zh) * | 2017-02-20 | 2017-07-07 | 北京数字联盟网络科技有限公司 | Kafka集群的数据传送方法和装置 |
US20170310628A1 (en) * | 2016-04-21 | 2017-10-26 | Confluent, Inc. | Distributed message queue stream verification |
-
2017
- 2017-12-29 CN CN201711479774.7A patent/CN110019240B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170060622A1 (en) * | 2015-02-27 | 2017-03-02 | Savi Technology, Inc. | System and method for a data processing architecture |
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理***及处理方法 |
US20160337465A1 (en) * | 2015-05-15 | 2016-11-17 | Cisco Technology, Inc. | Multi-datacenter message queue |
US20170310628A1 (en) * | 2016-04-21 | 2017-10-26 | Confluent, Inc. | Distributed message queue stream verification |
CN105791431A (zh) * | 2016-04-26 | 2016-07-20 | 北京邮电大学 | 一种在线分布式监控视频处理任务调度方法及装置 |
CN106293968A (zh) * | 2016-08-04 | 2017-01-04 | 华中科技大学 | 一种基于Kafka消息中间件的双向通信***及方法 |
CN106936896A (zh) * | 2017-02-20 | 2017-07-07 | 北京数字联盟网络科技有限公司 | Kafka集群的数据传送方法和装置 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401721A (zh) * | 2019-08-06 | 2019-11-01 | 北京达佳互联信息技术有限公司 | 内容数据分发的方法、装置及*** |
CN110928491A (zh) * | 2019-10-30 | 2020-03-27 | 平安科技(深圳)有限公司 | 存储分区动态选择方法、***、计算机设备及存储介质 |
WO2021082073A1 (zh) * | 2019-10-30 | 2021-05-06 | 平安科技(深圳)有限公司 | 存储分区动态选择方法、***、计算机设备及存储介质 |
CN111124703B (zh) * | 2019-11-25 | 2024-03-22 | 山东鲁软数字科技有限公司 | 一种集群环境下自动提醒处理工作的方法及*** |
CN111078789A (zh) * | 2019-11-25 | 2020-04-28 | 泰康保险集团股份有限公司 | 数据共享方法及装置、存储介质、电子设备 |
CN111124703A (zh) * | 2019-11-25 | 2020-05-08 | 山东鲁能软件技术有限公司 | 一种集群环境下自动提醒处理工作的方法及*** |
CN111142880A (zh) * | 2019-12-25 | 2020-05-12 | 北京奇艺世纪科技有限公司 | 消息***中分区的分配方法、装置及电子设备 |
CN111142880B (zh) * | 2019-12-25 | 2024-03-12 | 北京奇艺世纪科技有限公司 | 消息***中分区的分配方法、装置及电子设备 |
CN111143332A (zh) * | 2019-12-31 | 2020-05-12 | 中电科华云信息技术有限公司 | 一种数据交换*** |
CN111143332B (zh) * | 2019-12-31 | 2024-02-23 | 中电科华云信息技术有限公司 | 一种数据交换*** |
CN111400065A (zh) * | 2020-03-13 | 2020-07-10 | 百融云创科技股份有限公司 | 一种分离全局zookeeper的pulsar消息异地多活方法及*** |
CN111555957A (zh) * | 2020-03-26 | 2020-08-18 | 孩子王儿童用品股份有限公司 | 一种基于Kafka的同步消息服务***及实现方法 |
CN111581253A (zh) * | 2020-05-04 | 2020-08-25 | 上海维信荟智金融科技有限公司 | 基于反欺诈模型的实时检测方法及*** |
CN113296972A (zh) * | 2020-07-20 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种信息的注册方法、计算设备及存储介质 |
CN112148782A (zh) * | 2020-09-24 | 2020-12-29 | 建信金融科技有限责任公司 | 市场数据接入方法及装置 |
CN112333083A (zh) * | 2020-10-30 | 2021-02-05 | 平安付科技服务有限公司 | 交易信息处理方法、装置、计算机设备及计算机可读介质 |
CN112565225A (zh) * | 2020-11-27 | 2021-03-26 | 北京百度网讯科技有限公司 | 用于数据发送的方法、装置、电子设备及可读存储介质 |
CN112565225B (zh) * | 2020-11-27 | 2022-08-12 | 北京百度网讯科技有限公司 | 用于数据发送的方法、装置、电子设备及可读存储介质 |
CN114629925A (zh) * | 2020-12-11 | 2022-06-14 | 飞狐信息技术(天津)有限公司 | 一种数据传输方法、装置及电子设备 |
CN112671877A (zh) * | 2020-12-16 | 2021-04-16 | 中国建设银行股份有限公司 | 一种数据处理方法和装置 |
CN112822260B (zh) * | 2020-12-31 | 2023-06-09 | 北京天融信网络安全技术有限公司 | 文件传输方法及装置、电子设备、存储介质 |
CN112822260A (zh) * | 2020-12-31 | 2021-05-18 | 北京天融信网络安全技术有限公司 | 文件传输方法及装置、电子设备、存储介质 |
CN113190528B (zh) * | 2021-04-21 | 2022-12-06 | 中国海洋大学 | 一种并行分布式大数据架构构建方法及*** |
CN113190528A (zh) * | 2021-04-21 | 2021-07-30 | 中国海洋大学 | 一种并行分布式大数据架构构建方法及*** |
CN114401269A (zh) * | 2021-12-08 | 2022-04-26 | 国电南瑞科技股份有限公司 | 一种业务数据分发方法、***及物联管理平台 |
CN115473858A (zh) * | 2022-09-05 | 2022-12-13 | 上海哔哩哔哩科技有限公司 | 数据传输方法和流式数据传输*** |
CN115473858B (zh) * | 2022-09-05 | 2024-03-01 | 上海哔哩哔哩科技有限公司 | 数据传输方法、流式数据传输***、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110019240B (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019240A (zh) | 一种业务数据交互方法、装置及*** | |
US11836533B2 (en) | Automated reconfiguration of real time data stream processing | |
US11321321B2 (en) | Record expansion and reduction based on a processing task in a data intake and query system | |
US11615087B2 (en) | Search time estimate in a data intake and query system | |
US11442935B2 (en) | Determining a record generation estimate of a processing task | |
US11921672B2 (en) | Query execution at a remote heterogeneous data store of a data fabric service | |
US11586627B2 (en) | Partitioning and reducing records at ingest of a worker node | |
US11580107B2 (en) | Bucket data distribution for exporting data to worker nodes | |
US11599541B2 (en) | Determining records generated by a processing task of a query | |
US10217256B2 (en) | Visually exploring and analyzing event streams | |
US20200050607A1 (en) | Reassigning processing tasks to an external storage system | |
US20190258631A1 (en) | Query scheduling based on a query-resource allocation and resource availability | |
US10122788B2 (en) | Managed function execution for processing data streams in real time | |
US20190138638A1 (en) | Task distribution in an execution node of a distributed execution environment | |
US9886486B2 (en) | Enriching events with dynamically typed big data for event processing | |
CN107515878B (zh) | 一种数据索引的管理方法及装置 | |
CN112307037B (zh) | 一种数据同步方法和装置 | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
US11394794B2 (en) | Fast ingestion of records in a database using data locality and queuing | |
US10574719B2 (en) | Aggregating streams matching a query into a single virtual stream | |
US20220253904A1 (en) | Method and device for providing real-time data service | |
CN109597810A (zh) | 一种任务切分方法、装置、介质及电子设备 | |
CN112182004A (zh) | 实时查看数据方法、装置、计算机设备及存储介质 | |
CN107276912B (zh) | 存储器、报文处理方法及分布式存储*** | |
CN110019085A (zh) | 一种基于HBase的分布式时序数据库 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |