CN112953757B - 数据分发方法、***和计算机设备 - Google Patents

数据分发方法、***和计算机设备 Download PDF

Info

Publication number
CN112953757B
CN112953757B CN202110105058.2A CN202110105058A CN112953757B CN 112953757 B CN112953757 B CN 112953757B CN 202110105058 A CN202110105058 A CN 202110105058A CN 112953757 B CN112953757 B CN 112953757B
Authority
CN
China
Prior art keywords
data
distribution
module
message queue
distributor
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
CN202110105058.2A
Other languages
English (en)
Other versions
CN112953757A (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.)
Beijing Mininglamp Software System Co ltd
Original Assignee
Beijing Mininglamp Software System 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 Beijing Mininglamp Software System Co ltd filed Critical Beijing Mininglamp Software System Co ltd
Priority to CN202110105058.2A priority Critical patent/CN112953757B/zh
Publication of CN112953757A publication Critical patent/CN112953757A/zh
Application granted granted Critical
Publication of CN112953757B publication Critical patent/CN112953757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及一种数据分发方法、***、计算机设备,其中,该数据分发方法包括:参数配置步骤,设置一分发管理装置的参数并启动一数据分发装置,分发管理装置根据参数生成入消息队列的消费者、出消息队列的生产者和对应的数据映射表;数据流入步骤,分发管理装置将流式数据源与一数据模型表进行匹配并获得流式数据源的各字段,根据消费者将流式数据源通过入消息队列进入数据分发装置;数据分发步骤,数据分发装置根据数据映射表选取流式数据源中的对应字段,并将对应字段根据生产者发送至对应数据服务模块。本申请通过仅将需要的数据维度写入消息队列,减少了冗余数据在网络传输中消耗的资源,提高了数据分发的效率。

Description

数据分发方法、***和计算机设备
技术领域
本申请涉及数据分发技术领域,特别是涉及数据分发方法、***和计算机设备。
背景技术
工业生产中重点维护对象包括设备,因设备的异常直接影响生产结果,故设备数据的实时性要求较高,前台业务应用需依赖设备数据进行状态与预警实时监控和管理,人工在机器之间复制、粘贴数据文件的方法已经难以跟上对数据实时分析的需求,需要一个实时数据传输***将设备与数据服务连接起来。
现有技术方案中基于发布-订阅的数据分发***:发布-订阅数据分发***是主流的数据分发***模型。在基于发布-订阅的数据分发***中,数据源生产者向主题中发布数据,消费者拉取主题数据或是主题向消费者推送数据。生产者发布的数据可以被所有的消费者获取到。上述现有技术具有以下缺点:在基于发布-订阅的数据分发***,生产者一经发布数据,所有的消费者都会获取到全量数据。在工业设备场景中,设备的数据包含大量字段,而消费者往往只需要其中一个维度的某几个字段,造成网络传输资源的大量浪费。同时,基于发布-订阅的数据分发***在推送模式下容错性能较低、单个消费者故障会影响整个***的性能;而在拉取模式下,多个消费者同时拉取数据会瞬时拉高***的网络I/O,无法有效应对数据流的峰谷。
目前针对相关技术中造成的网络传输资源浪费的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据分发方法、***和计算机设备,以至少解决相关技术中网络传输资源浪费的问题。
第一方面,本申请实施例提供了一种数据分发方法,应用于数据分发***,包括以下步骤:
参数配置步骤,设置一分发管理装置的参数并启动一数据分发装置,所述分发管理装置根据所述参数生成入消息队列的消费者、出消息队列的生产者和对应的数据映射表;
数据流入步骤,所述分发管理装置将流式数据源与一数据模型表进行匹配并获得所述流式数据源的各字段,根据所述消费者将所述流式数据源通过所述入消息队列进入所述数据分发装置;
数据分发步骤,所述数据分发装置根据所述数据映射表选取所述流式数据源中的对应所述字段,并将对应所述字段根据所述生产者发送至对应数据服务模块。
在其中一些实施例中,所述参数配置步骤中的参数包括入消息队列的数据模型、出消息队列元数据和每个数据映射模块的映射方式。
在其中一些实施例中,所述数据流入步骤中具体包括:
所述流式数据源通过所述入消息队列的分片进入所述数据分发装置的分发器,所述分发器与所述分片一一对应。
在其中一些实施例中,所述数据分发步骤,具体包括以下步骤:
数据接收步骤,将所述流式数据源根据预设分发目标数推送至对应数量的分发模块;
字段提取步骤,各所述分发模块的数据映射模块根据所述数据映射表对所述流式数据源进行字段提取;
数据发送步骤,将提取的所述字段根据所述生产者通过所述出消息队列发送至所述数据服务模块。
在其中一些实施例中,所述分发器与所述分发到分发模块之间的连接方式包括:
在分布式环境下,所述分发器与所述分发模块之间通过TCP协议进行通信;
在单机环境下,通过观察者模式进行所述分发器与所述分发模块之间的异步通信。
在其中一些实施例中,所述分发器和所述分发模块每经过一设定时间记录一次状态,在向下游发送所述字段的同时,所述分发器和所述分发模块将发出的所述字段写入到同一个缓存区;
在分布式环境下,所述分发器在多次重试失败后,由所述分发管理装置分配并启动一个新的所述分发单元,所述分发器将缓存区中的数据重新发送给新的所述分发单元。
第二方面,本申请实施例提供了一种数据分发***,应用第一方面所述的数据分发方法,包括分发管理装置、数据分发装置、入消息队列模块和出消息队列模块,其中:
所述分发管理装置存储有数据模型表、数据映射表和出消息队列元数据;
所述数据分发装置包括分发器和分发模块;
所述分发管理装置根据所述数据模型表与流式数据源匹配,并将所述流式数据源通过所述入消息队列模块进入所述分发器;
所述分发模块根据所述数据映射表对所述流式数据源进行提取,并将提取后的所述流式数据源根据所述出消息队列元数据通过所述出消息队列模块发送至一数据服务模块。
在其中一些实施例中,所述分发器和所述分发单元设置为一个或多个;
所述分发器与入消息队列模块中的分片一一对应,将所述分片中的所述流式数据源对应输送至所述分发器;
所述分发模块的个数与预设分发目标数相适应,所述分发模块根据对应的分发目标对所述流式数据源进行处理,并将处理后的所述流式数据源传输至对应的所述数据服务模块。
在其中一些实施例中,所述分发模块包括数据映射单元和数据发送单元,其中:
所述数据映射单元根据所述数据映射表对所述流式数据源的数据模型转换成出消息队列的数据模型,并将处理后的所述流式数据源发送至对应的所述数据发送单元;
所述数据发送单元将所述流式数据源发至对应的所述出消息队列模块。
在其中一些实施例中,包括:
在分布式环境下,所述分发器和所述分发模块之间设置有通讯单元,所述分发器和所述分发模块之间通过TCP协议通信;
单机环境中,使用观察者模式进行异步通信。
相比于相关技术,本申请实施例提供的数据分发方法、***和计算机设备,一方面,通过仅将需要的数据维度写入消息队列,减少了冗余数据在网络传输中消耗的资源,提高了数据分发的效率;另一方面,数据分发模块将数据分发到消息队列而不是直接分发到消费者中,在数据服务消费者发生反压时能够将一部分压力分散到消息队列上,增强了***的稳定性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据分发方法的流程图;
图2是根据本申请实施例的数据分发步骤的流程图;
图3是根据本申请优选实施例的数据分发方法的流程图;
图4是根据本申请实施例的数据分发***的结构框图;
图5是根据本申请实施例的数据分发***的优选结构框图;
图6为根据本申请实施例的计算机设备的硬件结构示意图。
附图说明:
分发管理装置1; 数据分发装置2; 入消息队列模块4;
分发器22; 分发模块23; 出消息队列模块5;
数据服务模块3; 数据映射单元231; 数据发送单元232;
通讯单元25; 数据分发模块251; 第一数据接收模块252;
第二数据接收模块221; 处理器81; 存储器82;
通信接口83; 总线80。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
消息队列(Message Queue),是分布式***中重要的组件,其通用的使用场景可以简单地描述为:
当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候。
消息队列主要解决了应用耦合、异步处理、流量削锋等问题。
当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq等,而部分数据库如Redis、Mysql以及phxsql也可实现消息队列的功能。
在实际的应用场景中,设备状态监控、预警等实时数据服务对数据分析的维度各不相同,实际只用到设备数据的某个或某几个字段;而设备数据往往拥有大量字段,单条数据的信息很大,且数据产生的频率高,如果向每个数据服务都发送全量数据,会大量消耗数据传输资源。因此需要一个数据分发***对设备数据进行分发,精确向每个数据服务发送其需要的数据维度,以实现数据传输的高效性。
另一方面,工业设备所处的网络环境较为复杂,且设备采集数据容易收到环境的影响,在采集端收到的设备数据通常在时间上分布不均匀,经常出现一大批数据集中到达的场景,给数据传输***带来处理性能和I/O的压力。因此,数据分发***必须具有较高的稳定性和容错能力。
实施例一:
本实施例提供了一种数据分发方法。图1是根据本申请实施例的数据分发方法的流程图,如图1所示,该流程包括如下步骤:
参数配置步骤S1,设置一分发管理装置的参数并启动一数据分发装置,分发管理装置根据参数生成入消息队列的消费者、出消息队列的生产者和对应的数据映射表;
数据流入步骤S2,分发管理装置将流式数据源与一数据模型表进行匹配并获得流式数据源的各字段,根据消费者将流式数据源通过入消息队列进入数据分发装置;
数据分发步骤S3,数据分发装置根据数据映射表选取流式数据源中的对应字段,并将对应字段根据生产者发送至对应数据服务模块。
通过上述步骤,本发明将发布-订阅分发***与消息队列相结合,通过发布-订阅分发***将数据源生产的数据分配到各个数据服务专属的消息队列中,并在向消息队列发布数据前,使用数据映射模块进行工业设备数据的映射,仅将需要的数据维度写入消息队列中,减少了冗余数据在网络传输中消耗的资源,提高了数据分发的效率。另一方面,分发管理装置将数据分发到消息队列而不是直接分发到消费者中,在数据服务消费者发生反压时能够将一部分压力分散到消息队列上,增强了***的稳定性。
本方法还有效地解决了现有发布-订阅方案冗余低效和***鲁棒性较低的问题,在装置内部完成分发和数据映射,使每个消费者仅获得其需要的数据维度,提高***的数据传输效率,并将消息队列同时用作向每个消费者发送数据的缓冲,提高***的稳定性。
在一些实际的应用中,在数据分发装置启动前,用户可以通过前端页面设置数据分发装置的参数,可以设置的参数配置包括入消息队列、出消息队列元数据和数据映射模型,其中:
入消息队列为接入流式数据源的数据通道,数据从入消息队列进入数据分发装置;
出消息队列元数据包括数据在出消息队列中存在的最大时长、出消息队列的分片数和出消息队列的复制分片数;
数据映射模型为数据映射模块将数据源的数据模型转换成出消息队列的数据模型的方法。
上述数据映射表中包含数据源的数据模型和出消息队列的数据模型,用户分发管理装置通过数据模型获取数据源的对应字段。
在其中一些实施例中,参数配置步骤S1中的参数包括入消息队列的数据模型、出消息队列元数据和每个数据映射模块的映射方式。
在其中一些实施例中,数据流入步骤S2中具体包括:
流式数据源通过入消息队列的分片进入数据分发装置的分发器,分发器与分片一一对应。
在实际应用中,根据入消息队列的分片数设置分片器的数量,并将分片与分片器一一对应,用于传递数据。
图2是根据本申请实施例的数据分发步骤的流程图,如图2所示,在其中一些实施例中,数据分发步骤S3,具体包括以下步骤:
数据接收步骤S31,将流式数据源根据预设分发目标数推送至对应数量的分发模块;
每个分发模块分别对应一个任务,避免出现干扰。
字段提取步骤S32,各分发模块的数据映射模块根据数据映射表对流式数据源进行字段提取;
数据发送步骤S33,将提取的字段根据生产者通过出消息队列发送至数据服务模块。
在实际的应用中,分发器与分发单元之间进行通信,分发器将流式数据源推送至各分发模块。
在其中一些实施例中,分发器与分发到分发模块之间的连接方式包括:
在分布式环境下,分发器与分发模块之间通过TCP协议进行通信;
在单机环境下,通过观察者模式进行分发器与分发模块之间的异步通信;
观察者模式(有时又被称为模型(Model)-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。
在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理***。
在实际的应用中,在分布式环境中,分发器和分发模块部署在不同的进程中,使用TCP协议通信;在单机环境中,分发器和分发模块位于同一进程的不同线程中,使用观察者模式进行线程间异步通信。
在其中一些实施例中,分发器和分发模块每经过一设定时间会记录一次状态,在向下游发送字段的同时,分发器和分发模块将发出的字段写入到同一个缓存区;
在分布式环境下,分发器在多次重试失败后,由分发管理装置分配并启动一个新的分发单元,分发器将缓存区中的数据重新发送给新的分发单元。
分发器和分发模块每经过一段时间会记录一次状态,在向下游(分发模块、出消息队列)发送数据的同时,分发器和分发模块将发出的数据写入一个缓存区中,用于在发生故障的场景下从上一个状态恢复。当每次记录状态时,都会清空缓存区。
需要说明的是,在分布式环境下,分布器多次重试失败后,由分发管理装置分配并启动一个新的分发模块,分发器将缓存区中的数据重新发送至新的分发模块。此后,即使故障的分发单元在一段时间后恢复,分发器也不会再向其发送数据。
下面通过优选实施例对本申请实施例进行描述和说明。
图3是根据本申请优选实施例的数据分发方法的流程图。
S301,分发管理装置参数配置步骤
在数据分发装置启动前,用户可以通过前端页面设置数据分发装置的参数。
S302,生成配置任务步骤
分发管理装置负责存储入消息队列(即数据源)的数据模型、出消息队列的元数据、以及每个数据映射模块的映射方式。在用户完成参数设置并启动数据分发装置后,分发管理装置会根据参数生成配置任务,配置任务包括:数据分发装置的内部拓扑结构、分配入消息队列的消费者和出消息队列的生产者,然后启动该装置进行数据分发。
S303,分发步骤
在分布式环境下,数据通过入消息队列进入分发器,分发器的数据分发模块将数据推送至各分发单元的对应的第一数据接收模块,各分发单元内部的数据映射模块对数据进行字段提取,将设定的数据字段通过出消息队列发送至数据服务模块。
需要说明的是,数据分发模块和第一数据接收模块在这里的作用为通讯作用,用于分发器和分发单元之间的数据传输。
在单机环境下,分发器与分发单元之间通过观察者模式实现线程之间的异步通信,其他部分相同,不加赘述。
S304,分发容错步骤
分发模块发生故障的场景:在分布式环境下,分发器在多次重试失败后,由分发管理装置分配并启动一个新的分发模块,分发器将缓存区中的数据重新发送给新的分发模块。即使故障分发模块在一段时间后恢复,分发器也不再向其分发数据。
需要说明的是,根据消息队列中的数据只能由一个消费者处理的原则,分发器的故障不会导致数据的丢失,原本由其负责接收的数据会由另一个分发器接收并分发,在该场景下仅***的吞吐量会有所下降,本发明不对此部分进行赘述。
且,在单机环境下,分发模块和分发器位于同一个进程中,几乎不可能单独发生故障,故本发明也不讨论此种情况。
在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种数据分发***,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的***较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本申请实施例的数据分发***的结构框图,如图4所示,该***包括:分发管理装置1、数据分发装置2,入消息队列模块4和出消息队列模块5其中:
分发管理装置1存储有数据模型表、数据映射表和出消息队列元数据;
数据分发装置2包括分发器22和分发模块23;
分发管理装置1根据数据模型表与流式数据源匹配,并将流式数据源通过入消息队列模块4进入分发器22;
分发模块23根据数据映射表对流式数据源进行提取,并将提取后的流式数据源根据出消息队列元数据通过出消息队列模块5发送至一数据服务模块3;
在其中一些实施例中,分发器22和分发单元23设置为一个或多个;
分发器22与入消息队列模块4中的分片一一对应,将分片中的流式数据源对应输送至分发器22;
分发模块23的个数与预设分发目标数相适应,分发模块23根据对应的分发目标对流式数据源进行处理,并将处理后的流式数据源传输至对应的数据服务模块3。
在实际的应用中,根据入消息队列的分片数,一个数据分发装置可以包含一个或多个分发器;根据分发目标数,可以包含一个或多个分发单元。每个分发器都会将接受到的数据发送给所有的分发单元。
数据分发模式采用推送模式,由分发器中的数据分发模块将数据流推送到每个分发单元的数据接收模块中。
在其中一些实施例中,分发模块23包括数据映射单元231和数据发送单元232,其中:
数据映射单元231根据数据映射表对流式数据源的数据模型转换成出消息队列的数据模型,并将处理后的流式数据源发送至对应的数据发送单元;
数据发送单元232将流式数据源发至对应的出消息队列模块5。
分布式环境下,分发器22和分发模块23位于不同的进程中;单机环境下,分发器22和分发模块23位于同一进程的不同线程中。
图5是根据本申请实施例的数据分发***的优选结构框图,如图5所示,该***包括图4所示的所有模块,此外还包括通讯单元25,具体为:
在分布式环境下,通讯单元25设置在分发器22和分发模块23上,包括数据分发模块251和第一数据接收模块252,分别位于分发器22和分发单元23。分发器22和分发模块23之间通过TCP协议通信。
分发器22还包括第二数据接收模块221,用于接收来自入消息队列的数据,
单机环境中,分发器22和分发模块23之间使用观察者模式进行异步通信,无需增加一个额外的模块进行通讯。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例数据分发方法可以由计算机设备来实现。图6为根据本申请实施例的计算机设备的硬件结构示意图。
计算机设备可以包括处理器81以及存储有计算机程序指令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种数据分发方法。
在其中一些实施例中,计算机设备还可包括通信接口83和总线80。其中,如图6所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、***组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该计算机设备可以基于获取到的分发管理装置的参数,执行本申请实施例中的参数配置步骤,从而实现结合图1描述的数据分发方法。
另外,结合上述实施例中的数据分发方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据分发方法。
实施例二:
在实施例一技术方案的基础上,将出消息队列可以替换为数据库***。
这样做的原因为,实施例一中,出消息队列中的数据是由数据映射模块生成的、具有固定的数据结构,因此出消息队列在逻辑上可以视作一个具有消息队列功能的数据库。当需要将数据分发到持久化的存储***中时,可以直接将出消息队列替换为数据库***。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种数据分发方法,其特征在于,应用于发布-订阅数据分发***,包括以下步骤:
参数配置步骤,设置一分发管理装置的参数并启动一数据分发装置,所述分发管理装置根据所述参数生成入消息队列的消费者、出消息队列的生产者和对应的数据映射表,所述数据映射表包括流式数据源的数据模型、出消息队列的数据模型,所述分发管理装置的参数包括入消息队列的数据模型、出消息队列元数据和每个数据映射模块的映射方式,所述数据映射模块将流式数据源的数据模型转换成所述出消息队列的数据模型的方法为数据映射模型,所述数据映射模型是在所述数据分发装置启动前设置的,所述入消息队列为接入流式数据源的数据通道;
数据流入步骤,所述分发管理装置将流式数据源与一数据模型表进行匹配并获得所述流式数据源的各字段,根据所述消费者将所述流式数据源通过所述入消息队列进入所述数据分发装置;
数据分发步骤,所述数据分发装置根据所述数据映射表的出消息队列的数据模型选取所述流式数据源中的对应所述字段,并将对应所述字段根据所述生产者发送至对应数据服务模块。
2.根据权利要求1所述的数据分发方法,其特征在于,所述数据流入步骤中具体包括:
所述流式数据源通过所述入消息队列的分片进入所述数据分发装置的分发器,所述分发器与所述分片一一对应。
3.根据权利要求2所述的数据分发方法,其特征在于,所述数据分发步骤,具体包括以下步骤:
数据接收步骤,将所述流式数据源根据预设分发目标数推送至对应数量的分发模块;
字段提取步骤,各所述分发模块的数据映射模块根据所述数据映射表对所述流式数据源进行字段提取;
数据发送步骤,将提取的所述字段根据所述生产者通过所述出消息队列发送至所述数据服务模块。
4.根据权利要求3所述的数据分发方法,其特征在于,所述分发器与所述分发模块之间的连接方式包括:
在分布式环境下,所述分发器与所述分发模块之间通过TCP协议进行通信;
在单机环境下,通过观察者模式进行所述分发器与所述分发模块之间的异步通信。
5.根据权利要求1-4任意一项所述的数据分发方法,其特征在于,
分发器和分发模块每经过一设定时间记录一次状态,在向下游发送所述字段的同时,所述分发器和所述分发模块将发出的所述字段写入到同一个缓存区;
在分布式环境下,所述分发器在多次重试失败后,由所述分发管理装置分配并启动一个新的分发单元,所述分发器将缓存区中的数据重新发送给新的所述分发单元。
6.一种数据分发***,应用上述权利要求1-5任意一项所述的数据分发方法,其特征在于,包括分发管理装置、数据分发装置、入消息队列模块和出消息队列模块,其中:
所述分发管理装置存储有数据模型表、数据映射表和出消息队列元数据;
所述数据分发装置包括分发器和分发模块;
所述分发管理装置根据所述数据模型表与流式数据源匹配,并将所述流式数据源通过所述入消息队列模块进入所述分发器;
所述分发模块根据所述数据映射表对所述流式数据源进行提取,并将提取后的所述流式数据源根据所述出消息队列元数据通过所述出消息队列模块发送至一数据服务模块。
7.根据权利要求6所述的数据分发***,其特征在于,所述分发器和分发单元设置为一个或多个;
所述分发器与入消息队列模块中的分片一一对应,将所述分片中的所述流式数据源对应输送至所述分发器;
所述分发模块的个数与预设分发目标数相适应,所述分发模块根据对应的分发目标对所述流式数据源进行处理,并将处理后的所述流式数据源传输至对应的所述数据服务模块。
8.根据权利要求7所述的数据分发***,其特征在于,所述分发模块包括数据映射单元和数据发送单元,其中:
所述数据映射单元根据所述数据映射表对所述流式数据源的数据模型转换成出消息队列的数据模型,并将处理后的所述流式数据源发送至对应的所述数据发送单元;
所述数据发送单元将所述流式数据源发至对应的所述出消息队列模块。
9.根据权利要求6-8任意一项所述的数据分发***,其特征在于,包括:
在分布式环境下,所述分发器和所述分发模块之间设置有通讯单元,所述分发器和所述分发模块之间通过TCP协议通信;
单机环境中,使用观察者模式进行异步通信。
CN202110105058.2A 2021-01-26 2021-01-26 数据分发方法、***和计算机设备 Active CN112953757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110105058.2A CN112953757B (zh) 2021-01-26 2021-01-26 数据分发方法、***和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110105058.2A CN112953757B (zh) 2021-01-26 2021-01-26 数据分发方法、***和计算机设备

Publications (2)

Publication Number Publication Date
CN112953757A CN112953757A (zh) 2021-06-11
CN112953757B true CN112953757B (zh) 2023-12-29

Family

ID=76237095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110105058.2A Active CN112953757B (zh) 2021-01-26 2021-01-26 数据分发方法、***和计算机设备

Country Status (1)

Country Link
CN (1) CN112953757B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342867A (zh) * 2021-07-05 2021-09-03 招商局金融科技有限公司 数据分发及管理方法、装置、电子设备及可读存储介质
CN115567557B (zh) * 2022-09-20 2024-04-16 中国联合网络通信集团有限公司 工业数据的多目标报送方法、装置及***
CN116894649B (zh) * 2023-09-11 2023-11-17 成都秦川物联网科技股份有限公司 一种工业物联网主服务平台数据分发***、方法和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973809A (zh) * 2014-05-22 2014-08-06 北京锐安科技有限公司 一种数据分发方法及***
CN105959151A (zh) * 2016-06-22 2016-09-21 中国工商银行股份有限公司 一种高可用的流式处理***及方法
CN106339435A (zh) * 2016-08-19 2017-01-18 中国银行股份有限公司 一种数据分发方法、装置及***
CN111866082A (zh) * 2020-06-22 2020-10-30 远光软件股份有限公司 一种基于目标***配置的数据分发方法和装置
CN111913821A (zh) * 2020-08-17 2020-11-10 武汉众邦银行股份有限公司 一种实现跨数据源实时数据流生产消费的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973809A (zh) * 2014-05-22 2014-08-06 北京锐安科技有限公司 一种数据分发方法及***
CN105959151A (zh) * 2016-06-22 2016-09-21 中国工商银行股份有限公司 一种高可用的流式处理***及方法
CN106339435A (zh) * 2016-08-19 2017-01-18 中国银行股份有限公司 一种数据分发方法、装置及***
CN111866082A (zh) * 2020-06-22 2020-10-30 远光软件股份有限公司 一种基于目标***配置的数据分发方法和装置
CN111913821A (zh) * 2020-08-17 2020-11-10 武汉众邦银行股份有限公司 一种实现跨数据源实时数据流生产消费的方法

Also Published As

Publication number Publication date
CN112953757A (zh) 2021-06-11

Similar Documents

Publication Publication Date Title
CN112953757B (zh) 数据分发方法、***和计算机设备
CN109542865B (zh) 分布式集群***配置文件同步方法、装置、***及介质
CN108712332B (zh) 一种通信方法、***和装置
CN110601903B (zh) 一种基于消息队列中间件的数据处理方法及装置
CN109376197B (zh) 一种数据同步方法、服务器及计算机存储介质
CN111831748B (zh) 数据同步方法、装置及存储介质
CN114363407B (zh) 消息服务方法及装置、可读存储介质及电子设备
CN105760519A (zh) 一种集群文件***及其文件锁分配方法
CN113742031A (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN109167819B (zh) 数据同步***、方法、装置及存储介质
JP2021524104A (ja) マスター・スタンドバイコンテナシステム切替
CN109815020B (zh) 指令处理对准***
EP3644182A1 (en) Container isolation method and device for netlink resource
CN113703954A (zh) 一种消息备份方法、装置、电子设备及计算机存储介质
CN113407637A (zh) 一种数据同步方法、装置、电子设备以及存储介质
CN112804332A (zh) 消息处理***、方法、装置、设备及计算机可读存储介质
CN110138753B (zh) 分布式消息服务***、方法、设备及计算机可读存储介质
CN114765706A (zh) 用于从OLT触发vOMCI功能发送OMCI消息的方法和装置
CN109614354B (zh) 接口分配方法、板卡、设备及存储介质
CN111427689A (zh) 集群保活方法、装置及存储介质
CN110807058B (zh) 一种导出数据的方法和***
CN108984105B (zh) 对网络存储设备中的复制任务进行分配的方法和设备
CN115629909A (zh) 业务数据处理的方法、装置、电子设备和存储介质
CN112416980B (zh) 数据业务处理方法、装置及设备
CN114661526A (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
GR01 Patent grant
GR01 Patent grant