CN112199048A - 数据读取方法、***、设备及介质 - Google Patents
数据读取方法、***、设备及介质 Download PDFInfo
- Publication number
- CN112199048A CN112199048A CN202011127396.8A CN202011127396A CN112199048A CN 112199048 A CN112199048 A CN 112199048A CN 202011127396 A CN202011127396 A CN 202011127396A CN 112199048 A CN112199048 A CN 112199048A
- Authority
- CN
- China
- Prior art keywords
- disk
- data
- pod
- service
- ceph
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据读取方法、***、设备及介质,该方法包括:获取数据并利用微服务将数据存储到本地磁盘与ceph共享盘,所述ceph共享盘利用分布式文件***存储全量数据,本地磁盘存储部分数据由对应的微服务独享;当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当pod的服务状态正常时,分发查询请求到服务状态正常的Pod查询本地磁盘,汇总排序得到查询结果;当pod的服务状态异常时,查询ceph共享盘所对应服务状态异常pod相应的分区数据,汇总排序得到查询结果。通过将ceph共享盘与本地磁盘混合使用,提高***的稳定性;本地磁盘的性能由单一微服务独享,提升数据读取效率;通过每个pod查询部分数据替代查询全部数据,化整为零,提供整体查询速度。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据读取方法、***、设备及介质。
背景技术
随着存储技术的发展,分布式***得到了广泛的应用,分布式***包括用于存储相同数据的主节点和多个从节点,终端可以通过主节点将数据写入分布式***,以及读取任意一个节点中存储的数据。
然而,分布式微云服务需要共享特征数据,现有技术中大多采用共享存储ceph来存储特征数据,其具有可靠性高、所有服务、所有节点都可访问优点。但在实际使用过程中,随着数据持续接入形成海量数据,会造成数据冗余的现象;同时,随着节点之间磁盘采用不同文件读取***,导致数据捞取速度变得非常缓慢。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种数据读取方法、***、设备及介质,用于解决现有技术中微云数据读取效率不高的问题。
为实现上述目的及其他相关目的,本申请提供一种数据读取方法,包括:
步骤S1,获取数据并利用微服务将所述数据存储到本地磁盘与ceph共享盘,其中,所述ceph共享盘利用分布式文件***存储全量数据,所述本地磁盘存储部分数据由对应的微服务独享;
步骤S2,当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当所述pod的服务状态正常时,分发所述查询请求到服务状态正常的Pod查询本地磁盘,汇总排序得到查询结果;当所述pod的服务状态异常时,查询ceph共享盘所对应服务状态异常pod相应的分区数据,汇总排序得到查询结果。
在本申请的一目的在于提供一种数据读取***,包括:
数据存储模块,用于获取数据并利用微服务将所述数据存储到本地磁盘与ceph共享盘,其中,所述ceph共享盘利用分布式文件***存储全量数据,所述本地磁盘存储部分数据由对应的微服务独享;
查询请求模块,用于当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当所述pod的服务状态正常时,分发所述查询请求到服务状态正常的Pod查询本地磁盘,汇总排序得到查询结果;当所述pod的服务状态异常时,查询ceph共享盘所对应服务状态异常pod相应的分区数据,汇总排序得到查询结果。
在本申请的另一目的在于提供一种电子设备,包括:
一个或多个处理装置;
存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置执行所述数据读取方法。
在本申请的还一目的在于提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于使所述计算机执行所述数据读取方法。
如上所述,本申请的数据读取方法、***、设备及介质,具有以下有益效果:
本申请通过将ceph共享盘与本地磁盘混合使用,提高***的稳定性;其中,本地磁盘的性能由单一微服务独享,提升数据读取效率;查询时,通过每个pod查询部分数据替代查询全部数据,化整为零,提供整体查询速度。
附图说明
图1显示为本申请提供的一种数据读取方法流程图;
图2显示为本申请提供的一种本地存储增加特征存储流程图;
图3显示为本申请提供的一种本地存储查询流程图;
图4显示为本申请提供的一种本地存储每日数据确认流程图;
图5显示为本申请提供的一种特征漂移同步流程图;
图6显示为本申请提供的一种数据读取***结构框图;
图7显示为本申请提供的一种电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1,为本申请提供的一种数据读取方法***结构框图,包括:
步骤S1,获取数据并利用微服务将所述数据存储到本地磁盘与ceph共享盘,其中,所述ceph(分布式文件***)共享盘利用分布式文件***存储全量数据,所述本地磁盘存储部分数据由对应的微服务独享;
其中,该步骤S1具体为:新建中间件kafka中对应的topic(主题)时,将每个topic中分为60个partition(分区);
启动微服务,调用微云接口确认该微服务预计启动的pods个数,每个微服务别名为pod0到pod(N-1),并计算每个pods对应的partition数量及编号,其中,N为大于1的自然数;
判断微服务所对应的本地磁盘内是否存在空余磁盘,如果存在空余磁盘时,则格式化该空余磁盘将pod挂载对应磁盘内,并根据所述ceph共享盘存储的数据同步到该磁盘;如果不存在空余磁盘时,则调用微云接口挂掉该pod,使其二次调度漂移到其他的服务器上实现pod挂载;
解析微服务所对应的数据得到结构化数据与特征数据,所述结构化数据与特征数据的存储位置取决于中间件kafka的自身负载,所述中间件kafka存储结束后更新对应的partition的偏移量;
监听所述中间件kafka中对应的topic中的偏移量,当监测到所述偏移量不为最新偏移量时,根据内存的存储时间或存储量持久化处理数据,将所述数据存储到本地磁盘与ceph共享盘;当监测到所述偏移量为最新偏移量时,则不处理。
步骤S2,当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当所述pod的服务状态正常时,分发所述查询请求到服务状态正常的Pod查询本地磁盘,汇总排序得到查询结果;当所述pod的服务状态异常时,查询ceph共享盘所对应服务状态异常pod相应的partition(分区)数据,汇总排序得到查询结果。
在本实施例中,通过将ceph共享盘与本地磁盘混合使用,提高***的稳定性;其中,本地磁盘的性能由单一微服务独享,提升数据读取效率;查询时,通过每个pod查询部分数据替代查询全部数据,化整为零,提供整体查询速度。
请参阅图2,为本申请提供的一种本地存储增加特征存储流程图,步骤S1包括:
步骤S1.1,新建中间件kafka中对应的topic时,将每个topic中分为60个partition(新建topic时确定其数量,replicas=3,partition=60),每个partition的编号分别为0-59;
步骤1.2,在微服务启动过程中,调用微云接口检测该微服务续期启动的pods个数,每个微服务别名为pod0到pod(N-1),并计算每个pods对应的partition数量及编号,以及计算pods与partition的对应关系,其中,N为大于1的自然数。
例如,数量计算方式为partition数量除以pod数量取整:60/N=M。N为需要启动的pods数量,M为每个服务有多少个partition,最后一个pod(即:pod(N-1))的partition数量为数量计算为partition数量除以pod数量取余60%N=A,A为取余的值,再加上取整的部分:A+M=B,B为最后一个pod(即:pod(N-1))的partition数量,partition的分布从pod0开始分别为0到M-1,直到最后的pod(N-1);计算完成后直接将pods与partition的对应关系写入ceph共享盘存储中/home路径下partition.aux文件中。
步骤1.3,服务启动过程中,检测本地磁盘中是否存空余磁盘,通过lsblk检查服务器中的存储设备是否为MONUTPOINT为空的设备;如果存在,则格式化该设备,格式化的文件类型为EXT4,再将目录/home/podN(N为pod编号)挂载到对应磁盘;检测ceph共享盘是否存在数据,如果存在数据时,则通过rsync同步到本地磁盘。如果本地磁盘中不存在空余磁盘时,则参考步骤4.5(根据当前服务器挂掉的pod漂移向其他的节点实现pod挂载)。
步骤1.4,服务启动完成后,解析微服务将图片数据解析为结构化数据和特征数据存放在中间件kafka,存放在哪一个partition根据kafka本身负载均衡决定,kafka存储结束后更新对应partition的offset(偏移);
步骤1.5,视图库微服务每秒获取一次kafka的offset,若检测到偏移不是最新的,则获取kafka中的相对应的数据(kafka本身会记录每个group已消费的offset(偏移),和最新的offset(偏移),获取到最新的数据后,将数据存放在内存中,当内存中数量达到预设条数时(如,10000条)或当内存中时间达到预设时间时(如,5分钟),将数据持久化一次。
步骤1.6,持久化过程会将数据存放两份,一份存放在ceph共享盘,一份存放在本地磁盘中。持久化将根据每条数据从哪个partition中获取,按照对应的partition进行存储。ceph共享盘存储直接写到对应的partition下的文件中;本地盘则首先读取ceph共享盘中存放的pod和partition对应的文件partition.aux,获取每个pod对应的partition的信息,持久化时,对应的pod持久化对应的数据,并删除内存中暂存的数据。
在本实施例中,通过将ceph共享盘与本地磁盘混合使用,提高***的稳定性,同时,通过主动识别特性资源,遍历全部节点,动态启动服务,提高***稳定性、易用性;本地磁盘的性能由单一微服务独享,提升数据读取效率。
请参阅图3,为本申请提供的一种本地存储查询流程图,包括:
当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当所述pod的服务状态正常时,分发所述查询请求到服务状态正常的Pod查询本地磁盘,利用分发查询请求的pod汇总排序得到查询结果;当所述pod的服务状态异常时,利用分发查询请求的pod查询ceph共享盘所对应服务状态异常pod相应的partition(分区)数据,汇总排序得到查询结果。
步骤2.1,当FDS(Flex Data Services,数据服务,微服务)接收到查询请求,调用微云接口判断各个服务(pods)运行状态是否正常;如果服务运行状态正常时,则调用各个微服务的查询接口,分发查询请求到其他状态正常的微服务,得到相应微服务本地磁盘的查询结果并汇总排序,从而得到最终的查询结果。
步骤2.2,如果存在服务运行状态异常时,则根据微云返回的哪个或者哪些状态不正常的pod编号进行记录并读取/home路径下记录的partition.aux文件,确定状态异常的对应的partition编号。
进一步地,将状态异常pods相应的partition数据存储到ceph共享盘,根据60个不同的分区分别存储特征文件。
步骤2.3,如果存在服务(pods)状态异常时,则由分发请求的pod代为查询相应的partition数据并最终汇总。另外,状态正常的节点,通过分发查询请求去调用各个节点的查询接口,各个被查询的微服务查询本地磁盘后将数据进行返回。在查询结束后,由服务分发的服务汇总返回数据。
在本实施例中,通过每个pods查询部分数据替代查询全部数据,化整为零,提供整体查询速度。
请参阅图4,为本申请提供的一种本地存储每日数据确认流程图,包括:
监听后台服务的时间是否达到预设时间,当后台服务的时间达到预设时间时,检测微服务所对应的本地磁盘与ceph共享盘所存储的文件大小是否一致;
当检测到本地磁盘与ceph共享盘所存储的文件大小不一致时,将ceph共享盘所对应的partition数据同步到本地磁盘;
当检测到本地磁盘与ceph共享盘所存储的文件大小一致时,则不处理。
在本实施例中,本地存储每日确认流程,具体为:
步骤S3.1,利用微服务后台监听时间;当监听时间达到预设时间时,则判断各个服务对应的本地磁盘与ceph共享盘对应的特征文件大小;
例如,后台进程时间***监听服务器时间是否为凌晨3点,当监听到服务器时间为凌晨3点时,每个相应的微服务判断本地磁盘中的文件大小和ceph共享盘中文件大小是否一致。
步骤S3.2,获取每个需要判断文件大小的文件,记录下文件指针的位置;检测本地磁盘与ceph共享盘两个对应的partition下文件的指针位置是否相同,当指针位置相同时,则文件大小一致;当指针位置不同时,则文件大小不一致。
步骤S3.3,如果文件大小一致时,则不进行文件的同步;如果文件大小不一致时,则调用rsync(数字镜像备份工具)方法进行文件同步。
例如,从ceph共享盘共享存储中调用rsync进行文件同步;如果本地磁盘的文件大于ceph共享存储中文件时,将本地磁盘的文件同步到ceph共享盘共享存储,其中,按照60个不同的分区分别存储特征文件;如果本地磁盘的文件小于ceph共享盘共享存储中文件时,将ceph共享存储的文件同步到本地磁盘的文件。
在本实施例中,通过每日定时同步文件,在不影响数据正常读取的基础上,将新数据同步到ceph共享盘共享存储,及时对新数据备份,当遇到灾后或故障重启时,可有效恢复数据,提高了数据处理能力。
请参阅图5,为本申请提供的一种特征漂移同步流程图,包括:
检测到服务器或微服务异常挂掉且发生漂移时,创建pods并进行初始化,获取配置文件中需启动的pods数量;计算每个pod对应的partition并存储到ceph共享盘;判断当前服务器是否存在空余磁盘,如果当前服务器存在空余磁盘时,则将pod挂载到相应的磁盘;如果当前服务器不存在空余磁盘时,根据当前服务器挂掉的pod漂移向其他的节点实现pod挂载。
在上述实施例中,所述将pod挂载到相应的磁盘的步骤,包括:
格式化当前所述空余磁盘,根据目录使用mount(挂载)方法挂载到所述空余磁盘,根据pod与partition的对应关系,从ceph共享盘中获取相对应的数据,完成同步,实现服务初始化和状态更新。
在上述实施例中,所述根据当前服务器挂掉的pod漂移向其他的节点实现pod挂载的步骤,包括:
检测ceph共享盘是否存在失败信息文件;如果不存在失败信息文件时,则调用微云接口获取微云node(节点)数量与对应IP以及状态异常的IP,将状态异常的IP记录到异常IP列表内,将node数量加一写入到创建的失败信息文件中,调用微云接口delete(删除)该服务使其漂移向其他的节点;如果存在失败信息文件时,则获取当前服务器IP并读取所述失败信息文件,判断所述当前服务器IP是否存在于所述失败信息文件内,如果所述当前服务器IP存在于所述失败信息文件内,则再次漂移向其他的节点,且不计数;如果所述当前服务器IP不存在于所述失败信息文件内,则根据当前微云集群的node数量利用闲置的空余磁盘再次漂移向其他的节点。
在另一个实施例中,判断所述node数量范围内是否存在闲置的空余磁盘,如果所述node数量范围内存在闲置的空余磁盘时,则调用微云接口delete该服务使其漂移向其他的节点,则将pod挂载到相应的磁盘;如果所述node数量范围内不存在闲置的空余磁盘时,则服务启动并初始化,漂移结束,并将pod的状态更改为pending(挂起)状态。
以下为因外力因素导致的服务器或微服务本身因为异常挂掉,通过漂移特征实现同步恢复的详细步骤:
步骤4.1:在服务器或微服务本身因为异常挂掉并发生漂移时(漂移指微云二次调度,由于pod状态无法拉起或微云的node节点不可调度时,则将此微服务调度到其他的node节点上),pods在创建过程中,初始化的过程,读取ceph共享盘存储中/home路径下partition.aux文件,确认pods与partition的对应关系。
步骤4.2:获取到pods与partition的对应关系时,判断当前服务器是否存在空余磁盘;调用lsblk确认是否有存储设备MOUNTPOINT(挂载点)的挂载目录为空
步骤4.3:如果存在存储设备的MOUNTPOINT的目录为空时,则调用mk2fs格式化磁盘(ext4格式),将目录/home/podN目录使用mount方法挂载到该磁盘上(podN与正在初始化的pods别名一致),并将存储设备信息及对应目录及格式写入到/etc/fatab文件中,完成数据同步使服务器重启,文件***生效;
步骤4.4:挂载完成后,根据pod与partition的对应关系,通过rsync方法从ceph共享盘存储中获取相对应的数据,同步完成后,服务初始化完成,状态更新为正常状态,此时,启动逻辑结束;
步骤4.5:当检测到当前服务器上没有空余的磁盘时,则确认ceph共享盘中/home是否存在失败信息文件failcount.aux,如果不存在失败信息文件时,调用微云接口获取微云的node数量、所有node(节点)对应的IP和当前状态异常node(节点)的IP,并增加计数器,默认计数为0,判断node数量是否大于计数器的计数数量,将本机IP和微云返回异常的IP一同记录入failcount.aux异常IP列表中,同时将node数量,计数器+1后的计数数量全部写入文件中,并调用微云接口delete该服务使其漂移向其他的节点,漂移向其他节点后,跳转执行步骤4.2。
步骤4.6:当漂移后的服务器IP在失败IP列表中且node的数量大于计数器数量时,则调用微云接口delete该服务使其漂移向其他的节点,漂移向其他节点,执行再次判断步骤4.3。
步骤4.7:当漂移后的服务器IP在fail列表且node的数量小于等于计数器数量时,则服务启动并初始化,则漂移结束,并将pod的状态更改为pending状态,进入逻辑结束。
在本实施例中,通过特征漂移同步到其他节点设备,提高了故障的处理能力与恢复能力,确保了***的稳定性。
在另一个实施例中,按照一台微云集群,集群中有三台物理机,每台物理机上有3块空余磁盘,接入人脸图像数据,人脸微服务的pod数为5个来进行举例说明:
当创建服务时,创建5个pods,分别为pods0-pods4;每个pods对应挂载一个磁盘,并将pods与partition的信息写入共享存储ceph中的/home路径下的partition.aux中;挂载的目录分别为/home/podN(N为别名编号)。当数据接入时,人脸微服务会使用特定的group监听kafka中对应的topic中的偏移量,如果偏移量为最新时,则不做操作;如果偏移量不是最新时,则消费数据到内存中,内存中数据每5分钟或者10000条数据时进行持久化,将文件同时写入ceph共享盘和本地磁盘(每个pod按照partition来进行持久化并删除内存中数据),当收到查询请求时,则调用微云接口判断每个pods的运行状态,如果运行状态正常时,则分发查询请求到每一个pods查询本地磁盘然后汇总;如果运行状态不正常时,则会根据异常pod的别名,读取ceph共享盘下/home下的partition文件,判断pods与partition的对应关系,由收到查询请求的pods直接读取ceph共享盘中相应的partition数据进行查询比对;对于其他状态正常的pods,则分发查询请求,由对应pods进行本地磁盘的查询。如果服务发生异常,被微云二次调度到其他的节点,则首先判断ceph共享盘存储中/home路径下是否存在failcount.aux文件,若不存在,则调用微云接口获取整套微云集群中的node数等于3和IP,并增加计数器计数为0;创建failcount.aux文件并将信息记录在文件中,因为0+1小于3,则漂移向其他的机器;若存在,则首先获取当前服务器IP,并直接读取文件,判断IP是否在文件中存在,若存在,则不计数,再次漂移,并不计数;若IP在文件中不存在,则判断node是否大于0+1,若大于,则初始化并判断是都有空余磁盘资源,有空余磁盘资源则启动,无磁盘资源则再次漂移,并增加计数。若node数小于等于计数+1,则将状态置为pending,流程结束。
请参阅图6,为本申请提供的一种数据读取***结构框图,包括:
数据存储模块1,用于获取数据并利用微服务将所述数据存储到本地磁盘与ceph共享盘,其中,所述ceph共享盘利用分布式文件***存储全量数据,所述本地磁盘存储部分数据由对应的微服务独享;
查询请求模块2,用于当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当所述pod的服务状态正常时,分发所述查询请求到服务状态正常的Pod查询本地磁盘,汇总排序得到查询结果;当所述pod的服务状态异常时,查询ceph共享盘所对应服务状态异常pod相应的partition数据,汇总排序得到查询结果。
定时同步模块3,用于监听后台服务的时间是否达到预设时间,当后台服务的时间达到预设时间时,检测微服务所对应的本地磁盘与ceph共享盘所存储的文件大小是否一致;当检测到本地磁盘与ceph共享盘所存储的文件大小不一致时,将ceph共享盘所对应的partition数据同步到本地磁盘;当检测到本地磁盘与ceph共享盘所存储的文件大小一致时,则不处理。
异常恢复模块4,用于检测到服务器或微服务异常挂掉且发生漂移时,创建pods并进行初始化,获取配置文件中需启动的pods数量;计算每个pod对应的partition并存储到ceph共享盘;判断当前服务器是否存在空余磁盘,如果当前服务器存在空余磁盘时,则将pod挂载到相应的磁盘;如果当前服务器不存在空余磁盘时,根据当前服务器挂掉的pod漂移向其他的节点实现pod挂载。
其中,还需要说明的是,数据读取方法与数据读取***为一一对应的关系,在此,流程步骤S1-S4与数据读取***所涉及的技术细节与技术效果均相同,在此不用一一赘述,请参照上述数据读取方法。
下面参考图7,其示出了适于用来实现本公开实施例的电子设备(例如终端设备或服务器700的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口707也连接至总线704。
通常,以下装置可以连接至I/O接口707:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置707;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取数据集,所述数据集为同一人在不同场景下采集的多张人像;根据卡口设备的数量、分布的地理位置以及预设的时间段将所述数据集内的人像分配到对应的卡口设备,形成以时间顺序排列表示人像轨迹的图像,形成以时间顺序排列表示人像轨迹的图像;利用待测平台对所述图像进行聚类归档,计算所述聚类归类的指标。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本实施例公开各种实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
综上所述,本申请通过将ceph共享盘与本地磁盘混合使用,提高***的稳定性;其中,本地磁盘的性能由单一微服务独享,提升数据读取效率;查询时,通过每个pod查询部分数据替代查询全部数据,化整为零,提供整体查询速度。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (10)
1.一种数据读取方法,其特征在于,包括:
步骤S1,获取数据并利用微服务将所述数据存储到本地磁盘与ceph共享盘,其中,所述ceph共享盘利用分布式文件***存储全量数据,所述本地磁盘存储部分数据由对应的微服务独享;
步骤S2,当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当所述pod的服务状态正常时,分发所述查询请求到服务状态正常的Pod查询本地磁盘,汇总排序得到查询结果;当所述pod的服务状态异常时,查询ceph共享盘所对应服务状态异常pod相应的分区数据,汇总排序得到查询结果。
2.根据权利要求1所述的数据读取方法,其特征在于,还包括:监听后台服务的时间是否达到预设时间,当后台服务的时间达到预设时间时,检测微服务所对应的本地磁盘与ceph共享盘所存储的文件大小是否一致;当检测到本地磁盘与ceph共享盘所存储的文件大小不一致时,将ceph共享盘所对应的分区数据同步到本地磁盘;当检测到本地磁盘与ceph共享盘所存储的文件大小一致时,则不处理。
3.根据权利要求1所述的数据读取方法,其特征在于,所述步骤S1中还包括:
新建中间件kafka中对应的主题时,将每个主题分为60个分区;
启动微服务,调用微云接口确认该微服务预计启动的pods个数,每个微服务别名为pod0到pod(N-1),并计算每个pods对应的分区数量及编号,其中,N为大于1的自然数;
判断微服务所对应的本地磁盘内是否存在空余磁盘,如果存在空余磁盘时,则格式化该空余磁盘将pod挂载对应磁盘内,并根据所述ceph共享盘存储的数据同步到该磁盘;如果不存在空余磁盘时,则调用微云接口挂掉该pod,使其二次调度漂移到其他的服务器上;
解析微服务所对应的数据得到结构化数据与特征数据,所述结构化数据与特征数据的存储位置取决于中间件kafka的自身负载,所述中间件kafka存储结束后更新对应的分区的偏移量;
监听所述中间件kafka中对应的主题中的偏移量,当监测到所述偏移量不为最新偏移量时,根据内存的存储时间或存储量持久化处理数据,将所述数据存储到本地磁盘与ceph共享盘;当监测到所述偏移量为最新偏移量时,则不处理。
4.根据权利要求1所述的数据读取方法,其特征在于,还包括:检测到服务器或微服务异常挂掉且发生漂移时,创建pods并进行初始化,获取配置文件中需启动的pods数量;计算每个pod对应的分区并存储到ceph共享盘;判断当前服务器是否存在空余磁盘,如果当前服务器存在空余磁盘时,则将pod挂载到相应的磁盘;如果当前服务器不存在空余磁盘时,根据当前服务器挂掉的pod漂移向其他的节点实现pod挂载。
5.根据权利要求4所述的数据读取方法,其特征在于,所述将pod挂载到相应的磁盘的步骤,包括:
格式化当前所述空余磁盘,根据目录使用mount方法挂载到所述空余磁盘,根据pod与分区的对应关系,从ceph共享盘中获取相对应的数据,完成同步,实现服务初始化和状态更新。
6.根据权利要求4所述的数据读取方法,其特征在于,所述根据当前服务器挂掉的pod漂移向其他的节点实现pod挂载的步骤,包括:
检测ceph共享盘是否存在失败信息文件;如果不存在失败信息文件时,则调用微云接口获取微云节点数量与对应IP以及状态异常的IP,将状态异常的IP记录到异常IP列表内,将节点数量加一写入到创建的失败信息文件中,调用微云接口删除该服务使其漂移向其他的节点;如果存在失败信息文件时,则获取当前服务器IP并读取所述失败信息文件,判断所述当前服务器IP是否存在于所述失败信息文件内,如果所述当前服务器IP存在于所述失败信息文件内,则再次漂移向其他的节点,且不计数;如果所述当前服务器IP不存在于所述失败信息文件内,则根据当前微云集群的节点数量利用闲置的空余磁盘再次漂移向其他的节点。
7.根据权利要求6所述的数据读取方法,其特征在于,还包括:
判断所述节点数量范围内是否存在闲置的空余磁盘,如果所述node数量范围内存在闲置的空余磁盘时,则调用微云接口删除该服务使其漂移向其他的节点,则将pod挂载到相应的磁盘;如果所述节点数量范围内不存在闲置的空余磁盘时,则服务启动并初始化,漂移结束,并将pod的状态更改为挂起状态。
8.一种数据读取***,其特征在于,包括:
数据存储模块,用于获取数据并利用微服务将所述数据存储到本地磁盘与ceph共享盘,其中,所述ceph共享盘利用分布式文件***存储全量数据,所述本地磁盘存储部分数据由对应的微服务独享;
查询请求模块,用于当微服务接收到查询请求时,判断每个pod的服务状态是否正常,当所述pod的服务状态正常时,分发所述查询请求到服务状态正常的Pod查询本地磁盘,汇总排序得到查询结果;当所述pod的服务状态异常时,查询ceph共享盘所对应服务状态异常pod相应的分区数据,汇总排序得到查询结果。
9.一种电子设备,其特征在于:包括:
一个或多个处理装置;
存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现权利要求1-7中任一所述的数据读取方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序用于使所述计算机执行权利要求1-7中任一所述的数据读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011127396.8A CN112199048B (zh) | 2020-10-20 | 2020-10-20 | 数据读取方法、***、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011127396.8A CN112199048B (zh) | 2020-10-20 | 2020-10-20 | 数据读取方法、***、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199048A true CN112199048A (zh) | 2021-01-08 |
CN112199048B CN112199048B (zh) | 2021-07-27 |
Family
ID=74009516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011127396.8A Active CN112199048B (zh) | 2020-10-20 | 2020-10-20 | 数据读取方法、***、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199048B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883016A (zh) * | 2021-04-28 | 2021-06-01 | 睿至科技集团有限公司 | 一种数据存储的优化方法及其*** |
CN112995301A (zh) * | 2021-02-07 | 2021-06-18 | 中国工商银行股份有限公司 | 应用于分布式***的数据处理方法和装置 |
WO2023035899A1 (zh) * | 2021-09-10 | 2023-03-16 | 西门子(中国)有限公司 | 部署模型的方法、平台和计算机可读介质 |
CN117389725A (zh) * | 2023-10-12 | 2024-01-12 | 中科驭数(北京)科技有限公司 | 服务数据节点迁移方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168055A1 (en) * | 2007-01-04 | 2008-07-10 | Wide Angle Llc | Relevancy rating of tags |
CN105068758A (zh) * | 2015-07-23 | 2015-11-18 | 清华大学 | 面向并行数据采集的分布式文件***数据i/o优化方法 |
CN105224445A (zh) * | 2015-10-28 | 2016-01-06 | 北京汇商融通信息技术有限公司 | 分布式跟踪*** |
CN105302661A (zh) * | 2014-06-04 | 2016-02-03 | 北京云端时代科技有限公司 | 一种实现虚拟化管理平台高可用的***和方法 |
CN105573824A (zh) * | 2014-10-10 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 分布式计算***的监控方法及*** |
CN111641700A (zh) * | 2020-05-25 | 2020-09-08 | 上海德拓信息技术股份有限公司 | 基于Ceph对象存储元数据的管理及检索的实现方法 |
CN111639082A (zh) * | 2020-06-08 | 2020-09-08 | 成都信息工程大学 | 基于Ceph的十亿级节点规模知识图谱的对象存储管理方法及*** |
-
2020
- 2020-10-20 CN CN202011127396.8A patent/CN112199048B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168055A1 (en) * | 2007-01-04 | 2008-07-10 | Wide Angle Llc | Relevancy rating of tags |
CN105302661A (zh) * | 2014-06-04 | 2016-02-03 | 北京云端时代科技有限公司 | 一种实现虚拟化管理平台高可用的***和方法 |
CN105573824A (zh) * | 2014-10-10 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 分布式计算***的监控方法及*** |
CN105068758A (zh) * | 2015-07-23 | 2015-11-18 | 清华大学 | 面向并行数据采集的分布式文件***数据i/o优化方法 |
CN105224445A (zh) * | 2015-10-28 | 2016-01-06 | 北京汇商融通信息技术有限公司 | 分布式跟踪*** |
CN111641700A (zh) * | 2020-05-25 | 2020-09-08 | 上海德拓信息技术股份有限公司 | 基于Ceph对象存储元数据的管理及检索的实现方法 |
CN111639082A (zh) * | 2020-06-08 | 2020-09-08 | 成都信息工程大学 | 基于Ceph的十亿级节点规模知识图谱的对象存储管理方法及*** |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995301A (zh) * | 2021-02-07 | 2021-06-18 | 中国工商银行股份有限公司 | 应用于分布式***的数据处理方法和装置 |
CN112995301B (zh) * | 2021-02-07 | 2023-03-10 | 中国工商银行股份有限公司 | 应用于分布式***的数据处理方法和装置 |
CN112883016A (zh) * | 2021-04-28 | 2021-06-01 | 睿至科技集团有限公司 | 一种数据存储的优化方法及其*** |
CN112883016B (zh) * | 2021-04-28 | 2021-07-20 | 睿至科技集团有限公司 | 一种数据存储的优化方法及其*** |
WO2023035899A1 (zh) * | 2021-09-10 | 2023-03-16 | 西门子(中国)有限公司 | 部署模型的方法、平台和计算机可读介质 |
CN117389725A (zh) * | 2023-10-12 | 2024-01-12 | 中科驭数(北京)科技有限公司 | 服务数据节点迁移方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112199048B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199048B (zh) | 数据读取方法、***、设备及介质 | |
CN105787077B (zh) | 数据同步方法和装置 | |
CN110704000B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111198859B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113485962B (zh) | 日志文件的存储方法、装置、设备和存储介质 | |
CN111274503B (zh) | 数据处理的方法、装置、电子设备及计算机可读介质 | |
CN110633046A (zh) | 一种分布式***的存储方法、装置、存储设备及存储介质 | |
CN114625597A (zh) | 监控运维***、方法、装置、电子设备及存储介质 | |
CN111198777A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN113553178A (zh) | 任务处理方法、装置和电子设备 | |
CN110545313B (zh) | 消息推送控制方法、装置及电子设备 | |
CN111198853B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111177260A (zh) | 数据库远程复制方法、装置及电子设备 | |
CN111274104B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN116049142A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114827698B (zh) | 一种播放信息的同步方法、装置、终端设备和存储介质 | |
CN110704401A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111984723A (zh) | 数据同步方法、装置及终端设备 | |
CN113391882B (zh) | 虚拟机内存管理方法、装置、存储介质及电子设备 | |
CN110727694B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109992215A (zh) | 一种icfs***的升级方法、升级***及相关装置 | |
CN117349035B (zh) | 工作负载的调度方法、装置、设备及存储介质 | |
CN110825697B (zh) | 用于对存储设备进行格式化的方法和装置 | |
CN112799863B (zh) | 用于输出信息的方法和装置 | |
CN117369952B (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 |