CN109189815A - 一种基于NiFi的二级缓存数据处理方法及*** - Google Patents
一种基于NiFi的二级缓存数据处理方法及*** Download PDFInfo
- Publication number
- CN109189815A CN109189815A CN201811075197.XA CN201811075197A CN109189815A CN 109189815 A CN109189815 A CN 109189815A CN 201811075197 A CN201811075197 A CN 201811075197A CN 109189815 A CN109189815 A CN 109189815A
- Authority
- CN
- China
- Prior art keywords
- cache
- server
- signal
- nifi
- data
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于数据管理技术领域,公开了一种基于NiFi的二级缓存数据处理方法及***,启动二级缓存服务端,进行数据信号监听;接收用户操作请求转成信号发送至服务端;将请求发送缓存数据至二级缓存;发送SecondaryCache信号至二级缓存服务端;将缓存数据存储到SecondaryCache;二级缓存客户端服务发送applySecondaryCache信号至二级缓存服务端;将SecondaryCache的缓存数据复制到新的缓存对象中,并将该新的缓存对象指针指向用于查询的缓存。本发明通过新增一个二级缓存,用于临时存储缓存数据,对原始缓存的操作具有原子性,以达到安全删除失效缓存的目的。
Description
技术领域
本发明属于数据管理技术领域,尤其涉及一种基于NiFi的二级缓存数据处理方法及***。
背景技术
目前,业内常用的现有技术是这样的:
随着大数据ETL的组件化,许多的ETL功能都已实现让用户在界面使用拖拉拽的方式连接配置ETL流程。而NiFi便是这样一个功能强大的ETL引擎,并且已实现了众多的ETL组件需求,大大降低了用户对数据进行ETL处理的门槛。作为在NiFi引擎中经常使用的缓存组件,在面临实际业务场景下,并不能满足大部分需求,这是由于在缓存数据库查询结果时,对于数据库已删除的数据无法捕获,造成已被丢弃的数据的滞留,在进行缓存查询匹配时,匹配到过时的缓存,影响了业务数据的质量。
综上所述,现有技术存在的问题是:
(1)现有技术在缓存数据库查询结果时,对于数据库已删除的数据无法捕获,造成已被丢弃的数据的滞留,在进行缓存查询匹配时,匹配到过时的缓存,影响业务数据的质量。
(2)现有技术在使用缓存组件时,不能够及时对失效缓存进行移除,影响其他业务组件的使用。
解决上述技术问题的难度和意义:
难度为:在实际项目中,查询数据库的字典数据时,无法捕获删除的数据;
解决现有技术的难度后带来的意义为:本发明解决了在使用数据库字典数据作为缓存数据时,能够基于单次的数据查询操作对旧缓存进行重置操作,在可接受的延时内有效的将失效的字典缓存数据进行清除和更新。
发明内容
针对现有技术存在的问题,本发明提供了一种基于NiFi的二级缓存数据处理方法及***,
本发明是这样实现的,一种基于NiFi的二级缓存数据处理方法,包括:
启动二级缓存服务端,它包括Socket管道监听服务及基于内存和磁盘的缓存服务,用于监听指定socket端口并处理对应信号应用至缓存服务中。监听的数据信号包括:二级缓存putSecondaryCache、重置二级缓存resetSecondaryCache和应用二级缓存applySecondaryCache的所有二级缓存的请求;
启动二级缓存客户端,它包括了所有与二级缓存服务端Socket管道服务通信时,请求服务端操作的二级缓存数据信号接口,用于将应用端对服务端缓存操作的数据信号发送至服务端进行处理。
应用端通过二级缓存客户端接口,对二级缓存服务端的缓存服务进行操作,包括存入二级缓存、重置二级缓存和应用二级缓存操作。
进一步,所述基于NiFi的二级缓存数据处理方法具体包括:
步骤一:启动二级缓存服务端,对存入二级缓存putSecondaryCache、重置二级缓存resetsecondaryCache和应用二级缓存applySecondaryCache数据信号进行监听;
步骤二:启动二级缓存客户端服务,接收用户操作请求,将请求转成对应信号发送至服务端;
步骤三:通过客户端服务请求发送缓存数据至二级缓存SecondaryCache;
步骤四:二级缓存客户端服务发送SecondaryCache信号至二级缓存服务端;
步骤五:二级缓存服务端接收到SecondaryCache信号,将缓存数据存储到SecondaryCache;
步骤六:二级缓存客户端服务发送applySecondaryCache信号至二级缓存服务端;
步骤七:二级缓存服务端接收到applySecondaryCache信号,将 SecondaryCache的缓存数据复制到新的缓存Cache对象中,并将新的缓存Cache 对象指针指向用于查询的缓存Cache;
步骤八:二级缓存客户端服务发送resetsecondaryCache信号至二级缓存服务端;
步骤九:二级缓存服务端接收到resetsecondaryCache信号,将二级缓存secondaryCache对象的缓存数据清除。
本发明的另一目的在于提供一种实现权利要求1~2任意一所述基于NiFi的二级缓存数据处理方法的计算机程序。
本发明的另一目的在于提供一种实现所述基于NiFi的二级缓存数据处理方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于NiFi的二级缓存数据处理方法。
本发明的另一目的在于提供一种实现所述基于NiFi的二级缓存数据处理方法的基于NiFi的二级缓存数据处理***,所述的基于NiFi的二级缓存数据处理***包括:
服务端:用于通过监听方式,对所有缓存请求进行监听;还用于存入二级缓存、重置二级缓存和应用二级缓存;
客户端:用于对存入的二级缓存、重置二级缓存和应用二级缓存数据信号进行操作,将接收的用户操作请求转成对应信号发送至服务端。
本发明的另一目的在于提供一种缓存数据引擎平台,所述缓存数据引擎平台至少搭载所述的基于NiFi的二级缓存数据处理***。
其中,服务端,包括三种对于二级缓存的操作,分别是putSecondaryCache、resetSecondaryCache和applySecondaryCache,分别用于存入二级缓存、重置二级缓存和应用二级缓存于正式缓存;
客户端接口,包括三个对应的对二级缓存操作的方法,分别为putSecondaryCache、resetsecondaryCache和applySecondaryCache。
综上所述,本发明的优点及积极效果为:
本发明提供了一种实用、便捷的方法解决NiFi自身缓存组件缺陷的方法,从而实现在使用缓存组件时能够及时对失效缓存进行移除并且能够不影响其他业务组件的使用。
本发明通过新增一个二级缓存,用于临时存储缓存数据,对原始缓存的操作具有原子性,以达到安全删除失效缓存的目的。
附图说明
图1是本发明实施例提供的基于NiFi的二级缓存数据处理方法的流程图。
图2是本发明实施例提供的基于NiFi的二级缓存数据处理方法原理图。
图中:1、服务端;2、客户端。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种实用、便捷的方法解决NiFi自身缓存组件缺陷的方法,从而实现在使用缓存组件时能够及时对失效缓存进行移除并且能够不影响其他业务组件的使用。
下面结合附图对本发明进行进一步详细说明;
如图1所示,本发明实施例提供的基于NiFi的二级缓存数据处理方法,包括:
S101:启动二级缓存服务端,对“存入二级缓存(putSecondaryCache)”、“重置二级缓存(resetsecondaryCache)”和“应用二级缓存 (applySecondaryCache)”数据信号进行监听;
S102:启动二级缓存客户端服务,接收用户操作请求,将请求转成对应信号发送至服务端;
S103:通过客户端服务请求发送缓存数据至二级缓存(SecondaryCache);
S104:二级缓存客户端服务发送“SecondaryCache”信号至二级缓存服务端;
S105:二级缓存服务端接收到“SecondaryCache”信号,将缓存数据存储到二级缓存(SecondaryCache);
S106:二级缓存客户端服务发送“applySecondaryCache”信号至二级缓存服务端;
S107:二级缓存服务端接收到“applySecondaryCache”信号,将 SecondaryCache的缓存数据复制到新的缓存(Cache)对象中,并将该新的缓存 (Cache)对象指针指向用于查询的缓存(Cache);
S108:二级缓存客户端服务发送“resetsecondaryCache”信号至二级缓存服务端;
S109:二级缓存服务端接收到“resetsecondaryCache”信号,将二级缓存(secondaryCache)对象的缓存数据清除。
本发明实施例提供的二级缓存服务端,包括缓存Cache对缓存进行查询和二级缓存SecondaryCache对缓存进行临时存储。
本发明实施例提供的基于NiFi的二级缓存数据处理***:
包括:服务端1:通过监听方式,对所有缓存请求进行监听;分别用于存入二级缓存、重置二级缓存和应用二级缓存于正式缓存;
客户端2:对二级缓存进行操作,将接收用户操作请求并转成对应信号发送至服务端。
本发明实施例提供的服务端,包括三种对于二级缓存的操作,分别是putSecondaryCache、resetSecondaryCache和applySecondaryCache,分别用于存入二级缓存、重置二级缓存和应用二级缓存于正式缓存;
本发明实施例提供的客户端接口,包括三个对应的对二级缓存操作的方法,分别为putSecondaryCache、resetsecondaryCache和applySecondaryCache。
下面结合工作原理对本发明进行进一步详细说明;
如图2所示,本发明实施例提供的基于NiFi的二级缓存数据处理方法为:
新增一个处理器PutDistributedMapSecondaryCache。通过当前流入的 FlowFile的文件名(currentFilename)与上一次存入成功的FlowFile文件名(oldFilename)进行对比,判断是否为新的数据库查询结果:
1)旧文件名与当前文件名不一致时(说明当前流入的是新的查询结果),继续通过FlowFile的"isPutFail"属性判断当前是否为上一批查询结果存入缓存失败的FlowFile.(上一批缓存失败的数据存储在失败队列中,会出现与新一批查询结果同时尝试***缓存的情况,对于存入失败的FlowFile,新增"isPutFail"属性进行标记)。如果是,说明新批次的查询已经***,但上一批次查询结果***失败的FlowFile仍在尝试存入,此时将被路由到"过时"关系。如果不是,说明是新批次的查询结果,可以直接重置二级缓存,并进行存入操作。
2)旧文件名与当前文件名一致(说明这是同一批次的查询结果,继续存入缓存)。
判断新的查询结果是否已全部存入二级缓存中。通过判断FlowFile的 "fragment.count"属性和成功存入的计数器handled是否相等,然后调用相关方法,将二级缓存应用到正式缓存上。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于NiFi的二级缓存数据处理方法,其特征在于,所述基于NiFi的二级缓存数据处理方法,包括:
启动二级缓存服务端,监听指定socket端口并处理对应信号应用至缓存服务中;
启动二级缓存客户端,所有与二级缓存服务端Socket管道服务通信时,请求服务端操作的二级缓存数据信号接口将应用端对服务端缓存操作的数据信号发送至服务端进行处理;
应用端通过二级缓存客户端接口,对二级缓存服务端的缓存服务进行操作。
2.如权利要求1所述的基于NiFi的二级缓存数据处理方法,其特征在于,启动二级缓存服务端时,包括启动Socket管道监听服务及基于内存和磁盘的缓存服务;
监听的数据信号包括:二级缓存putSecondaryCache、重置二级缓存resetSecondaryCache和应用二级缓存applySecondaryCache的所有二级缓存的请求;
应用端对二级缓存服务端的缓存服务进行操作中,包括存入二级缓存、重置二级缓存和应用二级缓存操作。
3.如权利要求1所述的基于NiFi的二级缓存数据处理方法,其特征在于,所述基于NiFi的二级缓存数据处理方法具体包括:
步骤一:启动二级缓存服务端,对存入二级缓存putSecondaryCache、重置二级缓存resetsecondaryCache和应用二级缓存applySecondaryCache数据信号进行监听;
步骤二:启动二级缓存客户端服务,接收用户操作请求,将请求转成对应信号发送至服务端;
步骤三:通过客户端服务请求发送缓存数据至二级缓存SecondaryCache;
步骤四:二级缓存客户端服务发送SecondaryCache信号至二级缓存服务端;
步骤五:二级缓存服务端接收到SecondaryCache信号,将缓存数据存储到SecondaryCache;
步骤六:二级缓存客户端服务发送applySecondaryCache信号至二级缓存服务端;
步骤七:二级缓存服务端接收到applySecondaryCache信号,将SecondaryCache的缓存数据复制到新的缓存Cache对象中,并将新的缓存Cache对象指针指向用于查询的缓存Cache;
步骤八:二级缓存客户端服务发送resetsecondaryCache信号至二级缓存服务端;
步骤九:二级缓存服务端接收到resetsecondaryCache信号,将二级缓存secondaryCache对象的缓存数据清除。
4.一种实现权利要求1~3任意一项所述基于NiFi的二级缓存数据处理方法的计算机程序。
5.一种实现权利要求1~3任意一项所述基于NiFi的二级缓存数据处理方法的信息数据处理终端。
6.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-3任意一项所述的基于NiFi的二级缓存数据处理方法。
7.一种实现权利要求1所述基于NiFi的二级缓存数据处理方法的基于NiFi的二级缓存数据处理***,其特征在于,所述的基于NiFi的二级缓存数据处理***包括:
服务端:用于通过监听方式,对所有缓存请求进行监听;还用于存入二级缓存、重置二级缓存和应用二级缓存;
客户端:用于对存入的二级缓存、重置二级缓存和应用二级缓存数据信号进行操作,将接收的用户操作请求转成对应信号发送至服务端。
8.一种缓存数据引擎平台,其特征在于,所述缓存数据引擎平台至少搭载权利要求7所述的基于NiFi的二级缓存数据处理***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811075197.XA CN109189815B (zh) | 2018-09-14 | 2018-09-14 | 一种基于NiFi的二级缓存数据处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811075197.XA CN109189815B (zh) | 2018-09-14 | 2018-09-14 | 一种基于NiFi的二级缓存数据处理方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189815A true CN109189815A (zh) | 2019-01-11 |
CN109189815B CN109189815B (zh) | 2022-03-04 |
Family
ID=64911238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811075197.XA Active CN109189815B (zh) | 2018-09-14 | 2018-09-14 | 一种基于NiFi的二级缓存数据处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189815B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137165A (zh) * | 2011-04-22 | 2011-07-27 | 南京邮电大学 | 一种基于对等网络的阿瑞斯索引***的实现方法 |
CN102404212A (zh) * | 2011-11-17 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 一种基于InfiniBand网络的跨平台RDMA通信方法 |
CN103259683A (zh) * | 2013-05-16 | 2013-08-21 | 烽火通信科技股份有限公司 | 基于HTML5的Web网管***二级缓存推送方法 |
US9697239B1 (en) * | 2016-04-15 | 2017-07-04 | Lars Dierk Buchholz | Token-based database system and method of interfacing with the token-based database system |
CN107330028A (zh) * | 2017-06-23 | 2017-11-07 | 北京北信源软件股份有限公司 | 一种Apache NiFi在源数据录入数据库方面的扩展应用方法和*** |
-
2018
- 2018-09-14 CN CN201811075197.XA patent/CN109189815B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137165A (zh) * | 2011-04-22 | 2011-07-27 | 南京邮电大学 | 一种基于对等网络的阿瑞斯索引***的实现方法 |
CN102404212A (zh) * | 2011-11-17 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 一种基于InfiniBand网络的跨平台RDMA通信方法 |
CN103259683A (zh) * | 2013-05-16 | 2013-08-21 | 烽火通信科技股份有限公司 | 基于HTML5的Web网管***二级缓存推送方法 |
US9697239B1 (en) * | 2016-04-15 | 2017-07-04 | Lars Dierk Buchholz | Token-based database system and method of interfacing with the token-based database system |
CN107330028A (zh) * | 2017-06-23 | 2017-11-07 | 北京北信源软件股份有限公司 | 一种Apache NiFi在源数据录入数据库方面的扩展应用方法和*** |
Non-Patent Citations (1)
Title |
---|
郭唐宝等: "一种面向应用服务器的分布式缓存机制", 《科学技术与工程》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109189815B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7174360B2 (en) | Method for forming virtual network storage | |
US7243136B2 (en) | Approach for managing and providing content to users | |
CN101350030B (zh) | 用于缓存数据的方法及装置 | |
US10628383B2 (en) | Systems and methods for enhancing performance of a clustered source code management system | |
US7647417B1 (en) | Object cacheability with ICAP | |
US9208097B2 (en) | Cache optimization | |
US10382380B1 (en) | Workload management service for first-in first-out queues for network-accessible queuing and messaging services | |
JP4399552B2 (ja) | 遠隔でデータベースを更新する方法およびシステム | |
US7945736B2 (en) | Dynamic load management of network memory | |
US9772793B2 (en) | Data block movement offload to storage systems | |
WO2019006775A1 (zh) | 一种数据传输方法及其*** | |
CN110851290A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN111464630A (zh) | 交易广播方法、设备和存储介质 | |
US20180349432A1 (en) | Database system, transaction management node, method, and medium | |
CN110266799B (zh) | 一种基于缓存的幂等性实现的方法 | |
CN113364887B (zh) | 一种基于ftp的文件下载方法、代理服务器和*** | |
US20180183872A1 (en) | Method and System For Selecting A Transport Mechanism and A Storage Process | |
US7779299B2 (en) | Efficiently re-starting and recovering synchronization operations between a client and server | |
CN109189815A (zh) | 一种基于NiFi的二级缓存数据处理方法及*** | |
US8566521B2 (en) | Implementing cache offloading | |
US7792274B2 (en) | Techniques for performing multi-media call center functionality in a database management system | |
CN113836180A (zh) | 一种二级缓存数据处理方法、处理器、存储介质及*** | |
US11057470B2 (en) | Communication device and communication method for processing meta data | |
TW202119798A (zh) | 服務通訊代理裝置及方法 | |
CN109547389A (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 |