CN107133231B - 一种数据获取方法和装置 - Google Patents
一种数据获取方法和装置 Download PDFInfo
- Publication number
- CN107133231B CN107133231B CN201610111356.1A CN201610111356A CN107133231B CN 107133231 B CN107133231 B CN 107133231B CN 201610111356 A CN201610111356 A CN 201610111356A CN 107133231 B CN107133231 B CN 107133231B
- Authority
- CN
- China
- Prior art keywords
- message
- shared memory
- data
- attribute
- message queue
- 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
Links
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据获取方法和装置,根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接;实时获取所述消息队列中的消息,当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存;根据消息解析属性配置信息表确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存;根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。
Description
技术领域
本发明涉及云计算领域的数据读取技术,尤其涉及一种数据获取方法和装置。
背景技术
现有技术中,获取云资源数据的方法包括:接口调用、安装侦听器。其中,接口调用方法中,通过频繁的接口调用,达到实时与云计算服务产品数据同步的目的,该方法中云资源数据对时效性要求很高;安装侦听器方法,通过侦听器监控用户使用的虚拟机的资源使用量和使用时长,且侦听器且需要同时侦听多个端口或文件,以达到读取计量信息的目的。
然而,现有技术的获取云资源数据的方法存在一定局限性,例如,接口调用方法,需要频繁的调用云服务接口才能保证信息的实时性,这样会对云平台造成很大的压力,降低云平台的性能,信息的时效性也难以得到保证;安装侦听器的方法,降低了系统本身的安全性,不能满足用户提出的无插件操作系统的要求,而且,当侦听器异常停止后,也无法获取精确的计量数据。
发明内容
为解决上述技术问题,本发明实施例提供一种数据获取方法和装置,在不安装任何插件的基础上,可以实现对消息队列中消息的实时获取、解析和存储,提高获取数据的时效性和稳定性。
本发明的技术方案是这样实现的:
本发明实施例提供一种数据获取方法,所述方法包括:
根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接;
实时获取所述消息队列中的消息,当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存;
根据消息解析属性配置信息表确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存;
根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。
进一步地,所述根据消息解析属性配置信息表确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存,包括:
获取所述消息解析属性配置信息表;
依次遍历所述第一共享内存,当所述第一共享内存中消息的Exchange和事件类型存在于所述消息解析属性配置表中时,根据所述消息解析属性配置表中的Exchange、事件类型和属性确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存。
进一步地,所述根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库,包括:
获取所述消息入库属性配置信息表;
根据所述消息入库属性配置信息表中的主键将所述第二共享内存中的解析数据存储到所述数据库中的不同表。
进一步地,所述第二共享内存中的解析数据包括:主键;
所述消息入库属性配置信息表中的主键与所述第二共享内存中的解析数据中的主键一一对应。
进一步地,所述消息队列信息包括:主机、用户名、密码、端口、Exchange、Routingkey和Exchange type。
本发明实施例提供一种数据获取装置,所述装置包括:确定单元、获取单元、存储单元,其中,
所述确定单元,用于根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接;
所述获取单元,用于实时获取所述消息队列中的消息;
所述存储单元,用于当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存;
所述确定单元,还用于根据消息解析属性配置信息表确定所述第一共享内存中消息的解析数据,
所述存储单元,还用于将所述第一共享内存中消息的解析数据存储在第二共享内存;还用于根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。
进一步地,所述获取单元,还用于获取所述消息解析属性配置信息表;
所述确定单元,还用于依次遍历所述第一共享内存,当所述第一共享内存中消息的Exchange和事件类型存在于所述消息解析属性配置表中时,根据所述消息解析属性配置表中的Exchange、事件类型和属性确定所述第一共享内存中消息的解析数据;
所述存储单元,还用于将所述第一共享内存中消息的解析数据存储在第二共享内存。
进一步地,所述获取单元,还用于获取所述消息入库属性配置信息表;
所述存储单元,还用于根据所述消息入库属性配置信息表中的主键将所述第二共享内存中的解析数据存储到所述数据库中的不同表。
进一步地,所述第二共享内存中的解析数据包括:主键;
所述消息入库属性配置信息表中的主键与所述第二共享内存中的解析数据中的主键一一对应。
进一步地,所述消息队列信息包括:主机、用户名、密码、端口、Exchange、Routingkey和Exchange type。
本发明实施例提供一种数据获取方法和装置,根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接;实时获取所述消息队列中的消息,当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存;根据消息解析属性配置信息表确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存;根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。本发明实施例提供的数据获取方法和装置,解决了频繁调用云平台接口带来的性能问题,以及安装插件带来的安全性问题,可以实现对消息队列中消息的获取、解析和存储操作,可以获取调用接口无法读取到的数据,例如资源弹性伸缩、虚拟机迁移等信息,提高获取数据的时效性和稳定性。
附图说明
图1为本发明实施例提供的数据获取方法流程示意图一;
图2为消息队列中消息的流转过程示意图;
图3为本发明实施例提供的基于OpenStack平台的数据获取方法示例图;
图4为本发明实施例提供的数据获取方法流程示意图二;
图5为本发明实施例提供的数据获取装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
本发明实施例提供一种数据读取方法,如图1所示,所述方法可以包括:
步骤101、数据获取装置根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接。
本发明实施例的数据获取方法可以实时获取云计算中资源数据,例如,获取OpenStack平台的云资源数据,可以通过多线程实时获取消息队列中不同Exchange的消息,根据事件的类型解析虚拟机、存储、网络、镜像等属性信息,将解析的数据存储到数据库中。
其中,OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
OpenStack是由多个行业共同发起的一系列开源技术项目,覆盖了网络、虚拟化、操作系统、服务器等各个方面,提供了可以在标准硬件上配置虚拟机的软件,企业或服务提供者可建立、运行自己的云计算和存储设施。截至Grizzly版本,OpenStack含七个核心项目:
OpenStack Compute(Nova)基础架构服务的核心组件,该服务创建一个抽象层,让CPU、内存、网络适配器和硬盘驱动器等商品服务器资源实现虚拟化,可实时管理虚拟机的启动、调整大小、挂起、停止和重新引导等功能。
OpenStack Networking(Neutron/Quantum),它提供了管理局域网的能力,用户可以定义网络、子网和路由器,以配置其内部拓扑,然后向这些网络分配IP地址和VLAN。
OpenStack Identity Management(Keystone),作为Openstack的核心模块,为其他模块提供认证服务,包括使用者账号密码、Token等多种验证方式。
OpenStack Object Storage(Swift)是一个分布式存储系统,可为Glance提供镜像存储,为Cinder提供卷备份服务。
OpenStack Block Storage(Cinder)管理计算实例所使用的块级存储,该系统提供了用于创建块设备、附加块设备到服务器和从服务器分离块设备的接口。
OpenStack Image Service(Glance)一套虚拟机镜像查找及检索系统,有创建上传镜像、删除镜像、编辑镜像基本信息的功能。
OpenStack中模块之间的通信是通过AMQP协议实现,消息队列在Openstack中发挥着中转站的作用,各个模块间的消息交互几乎都要通过消息队列完成。
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。
消息队列,是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行,它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。
以RabbitMQ为例进行说明,RabbitMQ是一个开源的高级消息队列协议的实现,是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息来通信,而无需专用连接来链接它们,主要用于在分布式系统中存储转发消息。
具体的,消息队列中消息的流转过程,如图2所示,Producer为消息队列中消息的发送者;Consumer为消息队列中消息的接收者;在发送者将消息发出后,消息发送的目的地由Exchange来决定,可以将Exchange看作一个交换机,它根据消息自带的特征信息进行发送。routing key为接收消息的特征信息。Queue为消息队列中存储消息的管道,一个Exchange可以对应多个Queue,每个Queue都会在定义时,声明自己要接收消息的routingkey。Exchange根据Queue和消息的routing key的匹配情况进行发送。消息到达Queue后,Consumer就可以将消息从Queue取出了。
例如,topic为Exchange的一种类型,RabbitMQ中常用的Exchange类型有fanout、direct、topic、headers。
消息队列中消息的流转过程包括:Producer将需要处理的消息发送到消息队列,Exchange将类型为topic的消息路由到与routing key相匹配的Queue中,Customer就可以从Queue中读取消息并进行处理。本发明实施例中的获取消息队列中的消息实现的是Customer的功能。
具体的,数据获取装置从消息队列属性表中读取需要连接的消息队列的信息,与所述消息队列的信息对应的消息队列连接,其中,消息队列属性表可以为动态配置存储在数据库中,示例性的,消息队列属性表如下表1所示。
表1 消息队列属性表
步骤102、数据获取装置实时获取所述消息队列中的消息,当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存。
具体的,数据获取装置获取所述消息队列中的消息可以理解为,数据获取装置启动获取线程,如图3所示,数据获取装置与所述消息队列的信息对应的消息队列连接,当成功连接到主机所在的消息队列服务器后,监听消息队列并实时获取消息队列中的消息,将获取的所有的消息记录在历史记录的共享内存中用于存储到历史表,即将获取的消息存储在数据库中,当确定Exchange和事件类型匹配到了需要解析的属性时,便会将获取到的消息存储到第一共享内存中用于解析。
步骤103、数据获取装置根据预设消息解析属性配置信息表确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存。
具体的,如图3所示,数据获取装置确定所述第一共享内存中消息的解析数据可以理解为,数据获取装置启动解析线程,解析线程动态解析第一共享内存中消息,处理完成后将解析结果存储到第二共享内存中。
具体的,数据获取装置读取消息获取线程写到第一共享内存中的数据,根据属性配置信息表要解析的字段解析消息队列中的数据,并将解析结果存储到第二共享内存中,等待入库线程读取,示例性的,消息解析属性配置信息表如下表2所示。
表2 消息解析属性配置信息表
步骤104、数据获取装置根据预设消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。
具体的,如图3所示,数据获取装置读取第二共享内存,对所述第二共享内存中的解析数据进行入库操作可以理解为,入库线程,即将所述第二共享内存中解析出来的数据存储到数据库,便于其他模块使用;数据获取装置根据所述消息入库属性配置信息表中的主键把第二共享内存中的解析数据,分别存储到不同的表中,实现了将需要入库的表、表的字段,字段的值、入库操作,动态的组织成入库SQL语句,无需再分别开发入库操作。其中,所述消息入库属性配置信息表,如表3所示。
表3 消息入库属性配置信息表
主键 | 表名 | 字段名 | 表操作 |
1 | Table1 | Column1 | Insert |
2 | Table1 | Column2 | Insert |
3 | Table2 | Column3 | Update |
4 | Table2 | Column4 | Update |
需要说明的是,主键,也称为主关键字(primary key),是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。
本发明通过数据获取方法可以实现消息的获取、解析和存储操作,基于OpenStack平台获取数据的方法,如图3所示,数据获取装置通过多线程实时采集消息队列中不同Exchange的消息,根据事件的类型解析计算、存储、网络、镜像等属性信息,将解析的数据存储到数据库中。
现有技术中,接口调用方式,需要频繁的调用云服务接口才能保证信息的实时性,这样会对云平台造成很大的压力,如果多个平台都以这种方式读取数据,则会大大降低云平台的性能;而本发明实施例中,解析消息队列则不需要时刻轮训,只要消息队列中有数据就可以读到,没有任何性能瓶颈。现有技术中,接口调用方式一旦接口服务不能正常工作,信息的时效性也就难以得到保证;而本发明实施例中,消息队列在OpenStack整个架构中扮演着至关重要的交通枢纽的角色,消息队列如果不能正常工作,则云平台也就瘫痪了,因此读取消息队列的解析消息的方式,相比调用接口,稳定性有着天然的优势。
现有技术中安装侦听器的方式降低了系统本身的安全性,不能满足用户提出的无插件操作系统的要求;另外当侦听器异常停止后,也无法获取精确的计量数据,本发明实施例不需要安装任何插件。
现有技术中,调用接口和安装侦听器,都不能读取到完整的云计算资源消息,接口调用仅仅只能读取到已有资源的信息,侦听器依赖于所创建的云资源开放的接口,读取到的信息更加有限;云资源创建过程中消息的交互,云资源的弹性伸缩,虚拟机的迁移,云资源的审计信息等,这些数据都是现有技术无法读取到的。本发明实施例的数据获取方法可以获取完整的云资源数据,例如资源弹性伸缩、虚拟机迁移等信息,这些数据可用于云计算中管理平台的资源管理、监控告警等服务,云资源的历史操作记录数据,可用于对用户操作进行数据分析和故障跟踪。
本发明实施例提供的数据获取方法,解决了频繁调用云平台接口带来的性能问题,以及安装插件带来的安全性问题,可以实现对消息队列中消息的获取、解析和存储操作,可以获取调用接口无法读取到的数据,例如资源弹性伸缩、虚拟机迁移等信息,提高获取数据的时效性和稳定性。
实施例二
本发明实施例提供一种数据读取方法,如图4所示,所述方法可以包括:
步骤201、数据获取装置根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接。
本发明实施例的数据获取方法可以实时获取云计算中资源数据,例如,获取OpenStack平台的云资源数据,可以通过多线程实时获取消息队列中不同Exchange的消息,根据事件的类型解析虚拟机、存储、网络、镜像等属性信息,将解析的数据存储到数据库中。
具体的,在数据库中,动态配置了所要获取消息的消息队列、Exchange、routingkey,即消息队列属性表,数据获取装置从消息队列属性表中读取需要连接的消息队列的信息,与所述消息队列的信息对应的消息队列连接,其中,消息队列属性表可以为动态配置存储在数据库中。
示例性的,消息队列属性表如实施例一中的表1所示,数据获取装置从消息队列属性表中读取需要连接的消息队列对应的消息队列信息包括:主机、用户名、密码、端口、Exchange、Routing key和Exchange type,根据该消息队列信息,连接到主机所在的消息队列服务器。
步骤202、数据获取装置实时获取所述消息队列中的消息,当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存。
如图3所示,数据获取装置启动不同exchange的获取线程,连接消息队列,当连接出现异常,例如,根据消息队列信息连接不上消息队列,则发送告警信息;一个线程获取一个模块的消息队列的消息,并把所有历史消息存储到数据库。若消息的属性是需要解析的消息,则将该消息存储到第一共享内存。当数据获取装置连接消息队列对应的所有主机的操作完成后,分别启动解析线程和入库线程。
步骤203、数据获取装置获取所述消息解析属性配置信息表;依次遍历所述第一共享内存,当所述第一共享内存中消息的Exchange和事件类型存在于所述消息解析属性配置表中时,根据所述消息解析属性配置表中的Exchange、事件类型和属性确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存。
具体的,当消息解析线程收到消息获取线程的信号,说明已经有需要解析的消息存储在第一共享内存中,负责配置信息的线程会将消息解析属性配置表中的信息读取到内存中,依次遍历第一共享内存,比较第一共享内存中消息的Exchange和事件类型与消息解析属性配置表需要解析的属性,当比较的结果一致时,开始解析该消息中包含配置表中的属性。其中,消息解析属性配置信息表如实施例一中表2所示。
示例性的,从json字符串中解析出属性的部分代码如下:
上述代码的解析流程如下所述:
1.读取要解析的属性值;
2.将消息转换成JSON对象;
3.是否存在异常,如果异常则执行步骤10;
4.判断属性是否读取完毕,如果读取完毕则执行步骤11,否则执行步骤5;
5.判断在JSON对象中,是否存在要解析的属性,存在则执行步骤6,否则执行步骤10;
6.获得要解析的对象;
7.判断在JSON对象中,是否存在要解析的属性的值,存在则执行步骤8,否则执行步骤10;
8.获取属性值;
9.执行步骤4;
10.返回空值;
11.返回解析的最终结果。
步骤204、数据获取装置获取所述消息入库属性配置信息表;根据所述消息入库属性配置信息表中的主键将所述第二共享内存中的解析数据存储到所述数据库中的不同表。
具体的,数据获取装置对所述第二共享内存中的解析数据进行入库的处理的方法包括,当消息入库线程收到消息解析线程的信号,说明已经有需要入库的消息存储在第二共享内存中,负责配置信息的线程会将消息入库属性配置信息表读取到内存中,该消息入库属性配置信息表中的主键和第二共享内存中的解析数据的主键一一对应,所述消息入库属性配置信息表,如实施例一中的表3所示,具体入库操作是哪种方式由事件的类型确定;通过动态构造不同的数据库操作,实现数据库操作的可配置化。
示例性的,如下所述,以insert为例:
上述语句是用来实现动态插入不同的数据库表的操作,table为表名,data为传入的容器类型的参数;通过foreach依次循环读取data.keys中的主键,以逗号作为间隔;第二个foreach循环依次读取data.keys中的值,以逗号作为间隔。
本发明实施例提供的数据获取方法可以实现动态配置消息队列的账户、端口等信息;动态配置需要解析的消息队列中的消息;动态配置解析结果中需要存储的对象和值,解决了解析新的消息不断新增解析代码的弊端;多线程并发采集消息队列信息;多线程间通过共享内存通信;多线程并发存储数据到数据库。
本发明实施例提供的数据获取方法,解决了频繁调用云平台接口带来的性能问题,以及安装插件带来的安全性问题,可以实现对消息队列中消息的获取、解析和存储操作,可以获取调用接口无法读取到的数据,例如资源弹性伸缩、虚拟机迁移等信息,提高获取数据的时效性和稳定性。
实施例三
本发明实施例提供一种数据获取装置1,如图5所示,所述装置1包括:确定单元10、获取单元11、存储单元12,其中,
所述确定单元10,用于根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接;
所述获取单元11,用于实时获取所述消息队列中的消息;
所述存储单元12,用于当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存;
所述确定单元10,还用于根据消息解析属性配置信息表确定所述第一共享内存中消息的解析数据,
所述存储单元12,还用于将所述第一共享内存中消息的解析数据存储在第二共享内存;还用于根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。
进一步地,所述获取单元11,还用于获取所述消息解析属性配置信息表;
所述确定单元10,还用于依次遍历所述第一共享内存,当所述第一共享内存中消息的Exchange和事件类型存在于所述消息解析属性配置表中时,根据所述消息解析属性配置表中的Exchange、事件类型和属性确定所述第一共享内存中消息的解析数据;
所述存储单元12,还用于将所述第一共享内存中消息的解析数据存储在第二共享内存。
进一步地,所述获取单元11,还用于获取所述消息入库属性配置信息表;
所述存储单元12,还用于根据所述消息入库属性配置信息表中的主键将所述第二共享内存中的解析数据存储到所述数据库中的不同表。
进一步地,所述第二共享内存中的解析数据包括:主键;
所述消息入库属性配置信息表中的主键与所述第二共享内存中的解析数据中的主键一一对应。
进一步地,所述消息队列信息包括:主机、用户名、密码、端口、Exchange、Routingkey和Exchange type。
具体的,本发明实施例提供的数据获取装置的理解可以参考实施例一和实施例二的数据获取方法的说明,本发明实施例在此不再赘述。
本发明实施例提供的数据获取装置,解决了频繁调用云平台接口带来的性能问题,以及安装插件带来的安全性问题,可以实现对消息队列中消息的获取、解析和存储操作,可以获取调用接口无法读取到的数据,例如资源弹性伸缩、虚拟机迁移等信息,提高获取数据的时效性和稳定性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种数据获取方法,其特征在于,所述方法包括:
根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接;
实时获取所述消息队列中的消息,当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存;
获取消息解析属性配置信息表;
依次遍历所述第一共享内存,当所述第一共享内存中消息的Exchange和事件类型存在于所述消息解析属性配置表中时,根据所述消息解析属性配置表中的Exchange、事件类型和属性确定所述第一共享内存中消息的解析数据,将所述第一共享内存中消息的解析数据存储在第二共享内存;
根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。
2.根据权利要求1所述的方法,其特征在于,所述根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库,包括:
获取所述消息入库属性配置信息表;
根据所述消息入库属性配置信息表中的主键将所述第二共享内存中的解析数据存储到所述数据库中的不同表。
3.根据权利要求2所述的方法,其特征在于,所述第二共享内存中的解析数据包括:主键;
所述消息入库属性配置信息表中的主键与所述第二共享内存中的解析数据中的主键一一对应。
4.根据权利要求1所述的方法,其特征在于,所述消息队列信息包括:主机、用户名、密码、端口、Exchange、Routing key和Exchange type。
5.一种数据获取装置,其特征在于,所述装置包括:确定单元、获取单元、存储单元,其中,
所述确定单元,用于根据消息队列属性表确定消息队列信息,与所述消息队列信息对应的消息队列建立连接;
所述获取单元,用于实时获取所述消息队列中的消息;
所述存储单元,用于当所述消息的属性为需要解析的属性时,将所述消息存储在第一共享内存;
所述获取单元,还用于获取消息解析属性配置信息表;
所述确定单元,还用于依次遍历所述第一共享内存,当所述第一共享内存中消息的Exchange和事件类型存在于所述消息解析属性配置表中时,根据所述消息解析属性配置表中的Exchange、事件类型和属性确定所述第一共享内存中消息的解析数据;
所述存储单元,还用于将所述第一共享内存中消息的解析数据存储在第二共享内存;还用于根据消息入库属性配置信息表将所述第二共享内存中的解析数据存储在数据库。
6.根据权利要求5所述的装置,其特征在于,
所述获取单元,还用于获取所述消息入库属性配置信息表;
所述存储单元,还用于根据所述消息入库属性配置信息表中的主键将所述第二共享内存中的解析数据存储到所述数据库中的不同表。
7.根据权利要求5所述的装置,其特征在于,所述第二共享内存中的解析数据包括:主键;
所述消息入库属性配置信息表中的主键与所述第二共享内存中的解析数据中的主键一一对应。
8.根据权利要求5所述的装置,其特征在于,所述消息队列信息包括:主机、用户名、密码、端口、Exchange、Routing key和Exchange type。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610111356.1A CN107133231B (zh) | 2016-02-29 | 2016-02-29 | 一种数据获取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610111356.1A CN107133231B (zh) | 2016-02-29 | 2016-02-29 | 一种数据获取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107133231A CN107133231A (zh) | 2017-09-05 |
CN107133231B true CN107133231B (zh) | 2020-09-01 |
Family
ID=59720849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610111356.1A Active CN107133231B (zh) | 2016-02-29 | 2016-02-29 | 一种数据获取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107133231B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170540A (zh) * | 2017-12-13 | 2018-06-15 | 深圳市科陆电子科技股份有限公司 | 电池簇数据处理方法及电池簇数据处理系统 |
CN109614140B (zh) * | 2018-12-17 | 2022-02-08 | 泰康保险集团股份有限公司 | 配置数据处理方法及装置、电子设备、存储介质 |
CN109462546A (zh) * | 2018-12-28 | 2019-03-12 | 苏州思必驰信息科技有限公司 | 一种语音对话历史消息记录方法、装置及系统 |
CN111427973B (zh) * | 2020-04-21 | 2023-05-05 | 上海新致软件股份有限公司 | 一种规划表数据解析方法 |
CN112000492B (zh) * | 2020-08-24 | 2023-08-18 | 中国银行股份有限公司 | 公众号用户标签的管理系统及方法 |
CN114710311B (zh) * | 2022-02-11 | 2024-01-02 | 浙江高信技术股份有限公司 | 一种多项目消息管理方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713758A (en) * | 1985-04-29 | 1987-12-15 | American Telephone And Telegraph Company, At&T Bell Laboratories | Computer testing arrangement |
CN102609537A (zh) * | 2012-02-17 | 2012-07-25 | 广东电网公司电力科学研究院 | 一种基于数据库模式下的数据质量审计方法 |
CN103942259A (zh) * | 2014-03-21 | 2014-07-23 | 浙江大学 | 一种数据库同步中实现数据缓存的方法 |
CN104618335A (zh) * | 2014-12-30 | 2015-05-13 | 京信通信系统(中国)有限公司 | 一种消息交互的方法和接口处理平台 |
-
2016
- 2016-02-29 CN CN201610111356.1A patent/CN107133231B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713758A (en) * | 1985-04-29 | 1987-12-15 | American Telephone And Telegraph Company, At&T Bell Laboratories | Computer testing arrangement |
CN102609537A (zh) * | 2012-02-17 | 2012-07-25 | 广东电网公司电力科学研究院 | 一种基于数据库模式下的数据质量审计方法 |
CN103942259A (zh) * | 2014-03-21 | 2014-07-23 | 浙江大学 | 一种数据库同步中实现数据缓存的方法 |
CN104618335A (zh) * | 2014-12-30 | 2015-05-13 | 京信通信系统(中国)有限公司 | 一种消息交互的方法和接口处理平台 |
Also Published As
Publication number | Publication date |
---|---|
CN107133231A (zh) | 2017-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107133231B (zh) | 一种数据获取方法和装置 | |
US12007996B2 (en) | Management of distributed computing framework components | |
US11580107B2 (en) | Bucket data distribution for exporting data to worker nodes | |
US11599541B2 (en) | Determining records generated by a processing task of a query | |
US11341131B2 (en) | Query scheduling based on a query-resource allocation and resource availability | |
US20230177047A1 (en) | Using worker nodes to process results of a subquery | |
Khare et al. | Big data in IoT | |
US20200050612A1 (en) | Supporting additional query languages through distributed execution of query engines | |
US20190138638A1 (en) | Task distribution in an execution node of a distributed execution environment | |
CN105574082A (zh) | 基于Storm的流处理方法及系统 | |
US10860604B1 (en) | Scalable tracking for database udpates according to a secondary index | |
US9992269B1 (en) | Distributed complex event processing | |
US10303678B2 (en) | Application resiliency management using a database driver | |
US10334013B2 (en) | Avoiding web request failures before they occur by component analysis | |
CN110912731B (zh) | 基于nfv采用dpi技术实现业务识别和拓扑分析的系统和方法 | |
CN104468274A (zh) | 一种集群监控管理方法及系统 | |
US8543680B2 (en) | Migrating device management between object managers | |
JP2023535896A (ja) | エンド・ツー・エンド・リンクのトラスト・レベルの動的決定方法、システム | |
CN104899134A (zh) | 域名注册服务器自动化测试系统和方法 | |
WO2017181430A1 (zh) | 分布式系统的数据库复制方法及装置 | |
CN112347192A (zh) | 数据同步方法、装置、平台以及可读介质 | |
CN111984505A (zh) | 一种运维数据采集引擎及采集方法 | |
CN113836237A (zh) | 对数据库的数据操作进行审计的方法及装置 | |
EP3306471B1 (en) | Automatic server cluster discovery | |
CN117376346A (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 |