CN110392094B - 一种获取业务数据的方法及融合cdn*** - Google Patents
一种获取业务数据的方法及融合cdn*** Download PDFInfo
- Publication number
- CN110392094B CN110392094B CN201910474797.1A CN201910474797A CN110392094B CN 110392094 B CN110392094 B CN 110392094B CN 201910474797 A CN201910474797 A CN 201910474797A CN 110392094 B CN110392094 B CN 110392094B
- Authority
- CN
- China
- Prior art keywords
- ipfs
- data
- target
- node
- service 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种获取业务数据的方法及融合CDN***,属于计算机技术领域。所述方法应用于融合CDN***,所述融合CDN***包含多个CDN厂商分布式部署的多个边缘节点和IPFS集群。方法包括:目标边缘节点接收目标业务请求,并检测本地是否已存储所述目标业务请求指向的目标业务数据;若未存储所述目标业务数据,所述目标边缘节点则向所述IPFS管理设备发送所述目标业务数据的数据查询请求;所述IPFS管理设备查询所述IPFS集群中是否已存储所述目标业务数据,并向所述目标边缘节点发送查询结果;所述目标边缘节点根据所述查询结果从所述IPFS集群或所述目标业务数据的源站获取所述目标业务数据。采用本发明,可以减少回源次数,减轻源站的负载。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种获取业务数据的方法及融合CDN***。
背景技术
融合CDN技术可以通过融合多家CDN厂商,实现CDN厂商之间相互切入业务请求。如果某个CDN厂商(可称作原CDN厂商)在某区域内未部署边缘节点,原CDN厂商则可以将来自该区域内的业务请求全部切至在该区域内部署有边缘节点的其它CDN厂商(可称作代理CDN厂商)来处理。这样,原CDN厂商既无需将业务请求调度至其他区域内的边缘节点,也无需在上述区域内增加部署边缘节点。
原CDN厂商可以定期检测代理CDN厂商中用于处理原CDN厂商的业务请求的各个边缘节点是否能正常提供业务服务,若代理CDN厂商位于某地理位置的边缘节点不能正常提供业务服务,原CDN厂商则将该地理位置的业务请求切回,仍由原CDN厂商来处理。例如,原CDN厂商可以通过预设的API(Application Programming Interface,应用程序编程接口),定期向代理CDN厂商请求获取预设文件,当原CDN厂商不能从代理CDN厂商位于某地理位置的边缘节点获取到该预设文件时,说明该边缘节点不能正常提供业务服务,原CDN厂商则将该地理位置的业务请求切回,之后,该地理位置的业务请求仍由原CDN厂商的边缘节点来处理。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于原CDN厂商的边缘节点中存储的业务数据可能因长期无用户访问而被删除,因此,当原CDN厂商将交由代理CDN厂商处理的来自某地理位置的业务请求切回时,目标边缘节点存储有各项业务请求对应的业务数据的概率极小。若目标边缘节点中未存储业务请求指向的业务数据,目标边缘节点则会向该业务数据的源站请求获取业务数据。由于目标边缘节点需要处理大量业务请求,边缘节点大量回源,增加了源站的负载,甚至可能导致源站因负载过高而拒绝服务。
发明内容
本申请的目的在于提供一种获取业务数据的方法和融合CDN***,所述技术方案如下:
第一方面,提供了一种获取业务数据的方法,所述方法应用于融合CDN***,所述融合CDN***包含多个CDN厂商的边缘节点和IPFS集群,所述IPFS集群由IPFS管理设备和每个所述边缘节点中配置的IPFS节点构成,所述方法包括:
目标边缘节点接收目标业务请求,并检测本地是否已存储所述目标业务请求指向的目标业务数据;
若未存储所述目标业务数据,所述目标边缘节点则向所述IPFS管理设备发送所述目标业务数据的数据查询请求;
所述IPFS管理设备查询所述IPFS集群中是否已存储所述目标业务数据,并向所述目标边缘节点发送查询结果;
所述目标边缘节点根据所述查询结果从所述IPFS集群或所述目标业务数据的源站获取所述目标业务数据。
可选的,所述方法还包括:
所述融合CDN***中的任意边缘节点从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备按照预设散列算法计算所述业务数据的数据散列值,并将所述业务数据存储至所述数据散列值对应的IPFS节点;
所述IPFS管理设备根据所述业务数据的数据散列值及所述数据散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
可选的,所述IPFS管理设备查询所述IPFS集群中是否存在所述目标业务数据,并向所述目标边缘节点发送查询结果,包括:
所述IPFS管理设备查询所述数据存储记录中是否存在所述目标业务数据的目标数据散列值;
若查询到所述目标数据散列值,所述IPFS管理设备则向所述目标边缘节点发送所述目标数据散列值对应的目标数据索引,以使所述目标边缘节点从所述目标数据索引指向的IPFS节点获取所述目标业务数据;
若未查询到所述目标数据散列值,所述IPFS管理设备则向所述目标边缘节点发送不存在所述目标业务数据的业务响应,以使所述目标边缘节点则从所述目标业务数据的源站获取所述目标业务数据。
可选的,所述数据查询请求携带有所述目标业务数据的目标资源定位符;
所述IPFS管理设备查询所述数据存储记录中是否存在所述目标业务数据的目标数据散列值之前,还包括:
所述IPFS管理设备从预设的资源定位符与数据散列值的映射关系记录中获取所述目标业务数据的目标资源定位符对应的目标数据散列值。
可选的,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
所述IPFS管理设备按照预设散列算法计算所述业务数据的数据散列值,并将所述业务数据存储至所述数据散列值对应的IPFS节点之后,还包括:
每个所述IPFS节点将存储所述业务数据时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
可选的,所述方法还包括:
所述融合CDN***中的任意边缘节点从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备按照预设分片算法将所述业务数据分割为多个数据片段,并按照预设散列算法计算每个所述数据片段的片段散列值及所述业务数据的数据散列值;
所述IPFS管理设备将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点;
所述IPFS管理设备根据所述业务数据的数据散列值、所有所述片段散列值及每个所述片段散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
可选的,所述IPFS管理设备将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点,包括:
所述IPFS管理设备根据预设冗余配置,将每个所述数据片段复制多份,并将每个所述数据片段的多个备份分别存储至每个所述数据片段的片段散列值对应的多个IPFS节点。
可选的,若接收到所述目标数据散列值对应的目标数据索引,所述目标边缘节点从所述目标数据索引指向的IPFS节点获取所述目标业务数据,包括:
若接收到所述目标数据散列值对应的目标数据索引,所述目标边缘节点则确定所述目标数据索引中记录的每个所述片段散列值对应的多个IPFS节点;
所述目标边缘节点从每个所述片段散列值对应的多个IPFS节点中就近获取所述片段散列值对应的数据片段。
可选的,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
所述IPFS管理设备将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点之后,还包括:
每个所述IPFS节点将存储所述数据片段时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
可选的,所述区块链集群根据每个所述IPFS节点发送的资源消耗信息为每个所述CDN厂商结算代币,包括:
每个所述区块链节点周期性根据当前周期内接收到的资源消耗信息,按照预设的共识算法计算本地的IPFS节点的贡献算力;
每个所述区块链节点确定所述区块链集群的记账节点,并将本地的IPFS节点的贡献算力发送至所述记账节点;
所述记账节点根据所述区块链集群中的所有区块链节点上传的贡献算力为每个所述CDN厂商结算代币。
可选的,所述方法还包括:
当接收到IPFS配置指令时,所述边缘节点在本地配置IPFS节点并为所述IPFS节点配置存储空间;
当接收到区块链配置指令时,所述边缘节点在本地配置区块链节点。
第二方面,提供了一种融合CDN***,所述***包含多个CDN厂商的边缘节点和IPFS集群,所述IPFS集群由IPFS管理设备和每个所述边缘节点中配置的IPFS节点构成,其中:
目标边缘节点,用于接收目标业务请求,并检测本地是否已存储所述目标业务请求指向的目标业务数据;
所述目标边缘节点,还用于若未存储所述目标业务数据,则向所述IPFS管理设备发送所述目标业务数据的数据查询请求;
所述IPFS管理设备,用于查询所述IPFS集群中是否已存储所述目标业务数据,并向所述目标边缘节点发送查询结果;
所述目标边缘节点,还用于根据所述查询结果从所述IPFS集群或所述目标业务数据的源站获取所述目标业务数据。
可选的,所述融合CDN***中的任意边缘节点,还用于:
从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备,还用于:
按照预设散列算法计算所述业务数据的数据散列值,并将所述业务数据存储至所述数据散列值对应的IPFS节点;
根据所述业务数据的数据散列值及所述数据散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
可选的,所述IPFS管理设备,具体用于:
查询所述数据存储记录中是否存在所述目标业务数据的目标数据散列值;
若查询到所述目标数据散列值,则向所述目标边缘节点发送所述目标数据散列值对应的目标数据索引,以使所述目标边缘节点从所述目标数据索引指向的IPFS节点获取所述目标业务数据;
若未查询到所述目标数据散列值,则向所述目标边缘节点发送不存在所述目标业务数据的业务响应,以使所述目标边缘节点则从所述目标业务数据的源站获取所述目标业务数据。
可选的,所述数据查询请求携带有所述目标业务数据的目标资源定位符;
所述IPFS管理设备,还用于:
从预设的资源定位符与数据散列值的映射关系记录中获取所述目标业务数据的目标资源定位符对应的目标数据散列值。
可选的,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
每个所述IPFS节点,还用于:
将存储所述业务数据时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群,用于:
根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
可选的,所述融合CDN***中的任意边缘节点,还用于:
从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备,还用于:
按照预设分片算法将所述业务数据分割为多个数据片段,并按照预设散列算法计算每个所述数据片段的片段散列值及所述业务数据的数据散列值;
将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点;
根据所述业务数据的数据散列值、所有所述片段散列值及每个所述片段散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
可选的,所述IPFS管理设备,具体用于:
根据预设冗余配置,将每个所述数据片段复制多份,并将每个所述数据片段的多个备份分别存储至每个所述数据片段的片段散列值对应的多个IPFS节点。
可选的,所述目标边缘节点,具体用于:
若接收到所述目标数据散列值对应的目标数据索引,则确定所述目标数据索引中记录的每个所述片段散列值对应的多个IPFS节点;
从每个所述片段散列值对应的多个IPFS节点中就近获取所述片段散列值对应的数据片段。
可选的,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
每个所述IPFS节点,还用于:
将存储所述数据片段时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群,用于:
根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
可选的,每个所述区块链节点,具体用于:
周期性根据当前周期内接收到的资源消耗信息,按照预设的共识算法计算本地的IPFS节点的贡献算力;
确定所述区块链集群的记账节点,并将本地的IPFS节点的贡献算力发送至所述记账节点;
所述记账节点,用于:
根据所述区块链集群中的所有区块链节点上传的贡献算力为每个所述CDN厂商结算代币。
可选的,所述边缘节点,还用于:
当接收到IPFS配置指令时,在本地配置IPFS节点并为所述IPFS节点配置存储空间;
当接收到区块链配置指令时,在本地配置区块链节点。
第三方面,提供了一种服务器,所述服务器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器中存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的获取业务数据的方法中目标边缘节点、IPFS管理设备或IPFS节点的处理。
第四方面,提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的获取业务数据的方法中目标边缘节点、IPFS管理设备或IPFS节点的处理。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,通过IPFS集群对业务数据进行备份,可以带来以下有益效果:第一,在融合CDN***中的各个边缘节点上配置IPFS节点,使得每个CDN厂商的任意边缘节点均能将业务数据的备份存储于任意CDN厂商的IPFS节点中,相应的,每个CDN厂商的任意边缘节均能从任意CDN厂商的IPFS节点中共享业务数据,减少了回源次数,减轻源站的负载;第二,在融合CDN***中的各个边缘节点上配置区块链节点,使得IPFS集群中存储业务数据发生的交易可以自动审计和难以篡改,并且在融合CDN***中发行代币来激励各个CDN厂商向IPFS集群提供节点资源,提高了边缘节点的资源利用率。第三,IPFS集群可以对业务数据进行分片存储,由于融合CDN***中的IPFS节点众多,一项业务数据的数据片段可以存储得更加分散,之后,边缘节点可以同时从多个IPFS节点下载业务数据的各个数据片段,提高了业务数据下载效率;第四,IPFS集群还可以将业务数据在IPFS集群中存储多个备份,使得任意边缘节点可以就近下载业务数据,降低了网络时延。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种融合CDN***的结构示意图;
图2为发明实施例提供的一种获取业务数据的方法流程图;
图3为本发明实施例提供的一种融合CDN***的结构示意图;
图4是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种获取业务数据的方法,该方法应用于融合CDN***,融合CDN***可以包含多个CDN厂商的边缘节点和IPFS集群。其中,IPFS集群可以由IPFS管理设备和每个边缘节点中配置的IPFS节点构成(可参见图1),IPFS节点可以是边缘节点创建的,依托于边缘节点的网络设备上,其主要用于存储业务数据,IPFS管理设备主要用于对各个IPFS节点存储的业务数据进行管理。当边缘节点需要获取某项业务数据时,边缘节点可以向IPFS集群中的IPFS管理设备请求获取业务数据,IPFS管理设备可以向边缘节点发送业务数据的存储信息,从而使得边缘节点可以从存储信息所指向的IPFS节点处获取业务数据。融合CDN***利用融合CDN技术融合多家CDN厂商,使得融合CDN***的边缘节点分布范围广,CDN厂商之间相互切入业务请求时,可以选择距离业务请求最近的边缘节点来提供业务服务,相较于单一CDN厂商,融合CDN***对业务请求的调度更为灵活。同理,配置在融合CDN***中的边缘节点上的IPFS节点分布范围广,IPFS管理设备可以选择不同CDN厂商的IPFS节点来存储业务数据,融合CDN***中的任意边缘节点可以从不同CDN厂商的IPFS节点来获取业务数据,相较于单一CDN厂商,融合CDN***中的边缘节点从IPFS集群获取业务数据的网络时延更短,且IPFS集群存储的数据资源更丰富多样。上述边缘节点和IPFS管理设备均可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中执行获取业务数据的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,目标边缘节点接收目标业务请求,并检测本地是否已存储目标业务请求指向的目标业务数据。
在实施中,当某个CDN厂商加入融合CDN***提供业务服务时,可以同时在该CDN厂商的边缘节点上配置IPFS节点,使得该该CDN厂商的边缘节点可以与IPFS集群进行数据交互。具体的,加入融合CDN***的CDN厂商的技术人员可以向边缘节点下发IPFS配置指令,当接收到IPFS配置指令时,边缘节点可以在本地安装IPFS协议并创建IPFS节点,为IPFS节点分配存储空间后将该IPFS节点加入IPFS集群。其中,每个IPFS节点在创建时可以生成一个全局唯一的节点标识符(Node ID),可以理解,不同IPFS节点具备不同的节点标识符。值得一提的是,边缘节点可以按照默认配置为IPFS节点分配存储空间,也可以按照CDN厂商的技术人员人工下发的配置为IPFS节点分配存储空间。
融合CDN***中每个CDN厂商的调度设备在接收到用户发送的业务请求后,可以为该业务请求选择一个合适的边缘节点提供业务服务,选择的条件可以包括:根据业务请求的IP地址,选择距离用户较近的边缘节点;查询各个边缘节点当前的负载情况,选择尚有服务能力的边缘节点等。某个CDN厂商中的调度设备将用户发出的目标业务请求调度至某个边缘节点(可称作目标边缘节点)后,目标边缘节点可以接收到该目标业务请求,继而可以检测目标边缘节点中是否已存储目标业务请求指向的目标业务数据。可以理解,如果目标边缘节点中存储了目标业务数据,目标边缘节点则可以直接响应目标业务请求,将目标业务数据发送给用户;如果目标边缘节点中未存储目标业务数据,目标边缘节点则需要先获取目标业务数据。
步骤202,若未存储目标业务数据,目标边缘节点则向IPFS管理设备发送目标业务数据的数据查询请求。
在实施中,目标边缘节点如果检测到本地未存储目标业务数据,由于目标边缘节点上创建了IPFS节点,则无需直接回目标边缘节点所在的CDN厂商的中心节点或回目标业务数据的源站(可称作回源)获取目标业务数据,而是向IPFS集群请求获取目标业务数据,此时,目标边缘节点可以向IPFS集群中的IPFS管理设备发送目标业务数据的数据查询请求,以使IPFS管理设备查询IPFS集群中是否存储了目标业务数据。其中,目标边缘节点未存储目标业务数据的原因可以包括:目标边缘节点首次接收到目标业务请求、目标边缘节点中存储的目标业务数据因机器故障丢失、目标边缘节点中存储的目标业务数据因长期无用户访问被删除等。
值得一提的是,融合CDN***中可以预先设置身份认证机制,当有新的CDN厂商加入融合CDN***时,新加入的CDN厂商可以获取用于身份认证的密钥,可以理解,只有通过身份认证的CDN厂商的边缘节点才可以与融合CDN***中的IPFS集群进行数据交互。
步骤203,IPFS管理设备查询IPFS集群中是否已存储目标业务数据,并向目标边缘节点发送查询结果。
在实施中,IPFS管理设备接收到目标边缘节点发送的目标业务数据的数据查询请求后,可以查询IPFS集群中是否已存储目标业务数据。之后,IPFS管理设备可以将查询结果发送至目标边缘节点,以使目标边缘节点根据查询结果获取目标业务数据。可以理解,IPFS集群中存储的业务数据是由融合CDN***中的各个边缘节点上传的,如果融合CDN***中的所有边缘节点均未向IPFS集群上传目标业务数据,查询结果将为空,此时,目标边缘节点将不能从IPFS集群中获取目标业务数据。
可选的,IPFS集群中存储的业务数据可以是融合CDN***中的任意边缘节点在回源获取业务数据后主动向IPFS集群上传的,相应的可以存在如下处理:融合CDN***中的任意边缘节点从源站获取业务数据后,将业务数据上传至IPFS管理设备;IPFS管理设备按照预设散列算法计算业务数据的数据散列值,并将业务数据存储至数据散列值对应的IPFS节点;IPFS管理设备根据业务数据的数据散列值及该数据散列值对应的IPFS节点的节点信息生成数据索引,并将数据索引存储至IPFS集群的数据存储记录中。
在实施中,IPFS集群在融合CDN***中主要用于存储业务数据。当出现源站通过中心节点向融合CDN***中的边缘节点推送数据更新的通知,或者边缘节点从IPFS集群中未获取到业务数据等情况时,边缘节点均可以从源站获取相应的业务数据,并可以同时将从源站获取的业务数据上传至IPFS集群中的IPFS管理设备,由IPFS管理设备将所有边缘节点上传的业务数据存储在IPFS集群中。具体的,IPFS管理设备在接收到边缘节点上传的业务数据后,可以按照预设散列算法(例如sha-256算法)根据边业务数据的具体内容计算该业务数据的数据散列值,然后可以将该业务数据存储至该业务数据的数据散列值对应的IPFS节点。接下来,IPFS管理设备可以根据业务数据的数据散列值及该数据散列值对应的IPFS节点的节点信息生成数据索引,并将数据索引存储至IPFS集群的数据存储记录中。其中,IPFS节点的节点信息可以包括IPFS节点的节点标识符及IPFS节点的网络地址等。
可选的,为了激励融合CDN***中的各个CDN厂商向IPFS集群贡献存储空间,以及吸引更多CDN厂商加入融合CDN***,可以在融合CDN***中发行代币,并以区块链的形式对各CDN厂商代币进行结算。故而,融合CDN***还可以包含区块链集群,区块链集群由每个边缘节点中配置的区块链节点构成(可参见图3)。相应的,IPFS管理设备将业务数据存储至IPFS节点之后可以存在如下处理:每个IPFS节点将存储业务数据时节点资源的资源消耗信息发送至本地的区块链节点,区块链集群根据每个区块链节点接收的资源消耗信息为每个CDN厂商结算代币。
在实施中,融合CDN***中的各个CDN厂商在IPFS集群中存储业务数据时需要支付佣金,相应的,融合CDN***中的各个CDN厂商的IPFS节点贡献存储空间来存储业务数据时可以获得报酬。由于融合CDN***中的IPFS节点数量众多,人工对存储业务数据发生的交易进行审计的成本高昂。为了减少审计成本以及保证交易不可篡改,可以在融合CDN***中采用区块链技术对交易进行自动记录和审计,并使用代币对各个CDN厂商贡献的节点资源进行结算。故而,融合CDN***可以基于各CDN厂商的边缘节点搭建区块链集群,即依托于边缘节点的网络设备,在边缘节点上创建区块链节点,由所有区块链节点构成区块链集群。而当有新的边缘节点加入融合CDN***时,技术人员可以向边缘节点下发区块链配置指令,当接收到区块链配置指令时,边缘节点可以在本地安装区块链应用程序来创建区块链节点。这样,IPFS管理设备将业务数据存储至IPFS节点之后,每个IPFS节点通过预先设置的API将存储业务数据时节点资源的资源消耗信息(可以包括存储业务数据消耗的存储空间及带宽大小等信息)发送至配置在相同边缘节点的区块链节点(可称作本地的区块链节点),由本地的区块链节点对IPFS节点发送的资源消耗信息进行登记。之后,区块链集群可以根据每个区块链节点接收的资源消耗信息为每个CDN厂商结算代币。
可选的,融合CDN***可以按照预设的周期根据每个CDN厂商贡献的节点资源的多少来结算代币,相应的可以存在如下处理:每个区块链节点周期性根据当前周期内接收到的资源消耗信息,按照预设的共识算法计算本地的IPFS节点的贡献算力;每个区块链节点确定区块链集群的记账节点,并将本地的IPFS节点的贡献算力发送至记账节点;记账节点根据区块链集群中的所有区块链节点上传的贡献算力为每个CDN厂商结算代币。
在实施中,本地的区块链节点可以周期性(例如每隔10分钟)根据当前周期内接收到的IPFS节点发送的所有资源消耗信息,按照预设的共识算法(例如POW(Proof Of Work,工作量证明))计算本地的IPFS节点在当前周期内贡献的算力(可称作贡献算力)。每个区块链节点还可以按照预设的共识算法确定当前周期内区块链集群的记账节点,并将当前周期内IPFS节点的贡献算力发送至记账节点。之后,记账节点统计区块链集群中的所有区块链节点上传的贡献算力,为每个CDN厂商结算代币。可以理解,边缘节点以及边缘节点上配置的IPFS节点和区块链节点均可以通过IPFS节点的节点标识符来一一对应,区块链节点向记账节点上传贡献算力时,还应向记账节点提供每笔交易的交易双方分别对应的节点标识符。记账节点根据预先配置的智能合约完成当前周期内的代币结算后,可以根据代币结算结果生成一页账目(可称作区块),并将该账目发送给其他区块链节点,这样区块链集群中的每个区块链节点中记录的账目可以保持一致。其中,智能合约可以是融合CDN***中的各个CDN厂商共同参与制定的,并存储于融合CDN***中的各个区块链节点中。
值得一提的是,代币仅作为融合CDN***中的每个边缘节点所贡献的节点资源多少的标记,融合CDN***中的各个CDN厂商可以按照一定的兑现周期,将代币兑换成现金。例如,融合CDN***中的各个CDN厂商每隔一个月查看一次账目来获取最近的代币结算结果,若某个CDN厂商的所有边缘节点对应的代币余额之和为负数,该CDN厂商则需要使用现金购买代币,使各个边缘节点代币余额不为负,相应的,当某个CDN厂商的所有边缘节点对应的代币余额之和为正数,该CDN厂商则可以将获得的代币收益卖出来换取现金。其中,代币与现金的汇率是可以根据融合CDN***中的各个CDN厂商的约定而变化的,本发明对此不作赘述。
进一步的,IPFS管理设备可以根据目标业务数据的目标数据散列值来查询IPFS集群中是否已存储目标业务数据。相应的,步骤203具体的处理可以如下:IPFS管理设备查询IPFS集群的数据存储记录中是否存在目标业务数据的目标数据散列值;若查询到目标数据散列值,IPFS管理设备则向目标边缘节点发送目标数据散列值对应的目标数据索引;若未查询到目标数据散列值,IPFS管理设备则向目标边缘节点发送不存在目标业务数据的业务响应。
在实施中,IPFS集群的数据存储记录中可以存储有IPFS集群中存储的每项业务数据的数据索引,每条数据索引可以记录对应的业务数据的数据散列值及存储业务数据的存储信息等。这样,IPFS管理设备接收到目标边缘节点发送的目标业务数据的数据查询请求后,可以查询IPFS集群的数据存储记录中是否存在目标业务数据的目标数据散列值,若查询到目标数据散列值,说明IPFS集群中已存储目标业务数据,IPFS管理设备则可以向目标边缘节点发送目标数据散列值对应的数据索引(可称作目标数据索引);若未查询到目标数据散列值,说明IPFS集群中未存储目标业务数据,IPFS管理设备则向目标边缘节点发送不存在目标业务数据的业务响应。其中,目标数据索引可以是DHT(Distributed Hash Table,分布式哈希表),生成DHT的过程可以采用Kademlia、Coral及S/Kademlia等算法中的任意算法,本发明对此不作限制。
可选的,边缘节点发送的数据查询请求中可以携带有目标业务数据的目标资源定位符,相应的,IPFS管理设备查询目标数据散列值之前可以存在如下处理:IPFS管理设备从预设的资源定位符与数据散列值的映射关系记录中获取目标业务数据对应的目标数据散列值。
在实施中,IPFS集群主要基于数据散列值来查询业务数据,而边缘节点主要基于资源定位符来查询业务数据,故而,IPFS集群可以预先存储有资源定位符与数据散列值的映射关系记录。这样,当IPFS集群中的IPFS管理设备接收到了携带目标业务数据的目标资源定位符的数据查询请求时,IPFS管理设备可以通过预先配置的API(ApplicationProgramming Interface,应用程序编程接口)访问资源定位符与数据散列值的映射关系记录,并从该映射关系记录中查找目标资源定位符与目标数据散列值的映射关系,进而获取到目标业务数据的目标数据散列值。例如,目标资源定位符可以是URL(Uniform ResourceLocator,统一资源定位符),预先配置的API可以是Restful(representational statetransfer,表述性状态转移式的)API,IPFS管理设备通过调用Restful API访问资源定位符与数据散列值的映射关系记录,IPFS管理设备可以将目标业务数据的URL输入RESTfulAPI,若映射关系记录中存在目标业务数据的URL与目标数据散列值的映射关系,RESTfulAPI则向IPFS管理设备反馈目标数据散列值。可以理解,若映射关系记录中不存在目标业务数据的URL与目标数据散列值的映射关系,RESTful API则向IPFS管理设备发送的响应数据为空。
步骤204,目标边缘节点根据查询结果从IPFS集群或目标业务数据的源站获取目标业务数据。
在实施中,IPFS管理设备向目标边缘节点发送的查询结果包括两种情况:IPFS集群中已存储目标业务数据或IPFS集群中未存储目标业务数据。可以理解,若IPFS集群中已存储目标业务数据,目标边缘节点则可以从IPFS集群获取目标业务数据,若IPFS集群中未存储目标业务数据,目标边缘节点则可以从目标业务数据的源站获取目标业务数据。
可选的,基于上述IPFS管理设备查询目标数据散列值并向目标边缘节点反馈查询结果的处理,步骤204具体的处理可以如下:若接收到目标数据散列值对应的目标数据索引,目标边缘节点从目标数据索引指向的IPFS节点获取目标业务数据;若接收到不存在目标业务数据的业务响应,目标边缘节点从目标业务数据的源站获取目标业务数据。
在实施中,若目标边缘节点接收到针对目标业务数据的数据查询请求的查询结果为目标数据索引,说明IPFS集群中已存储目标业务数据,目标边缘节点则可以根据目标数据索引中记录的目标业务数据的存储信息,从存储信息指向的IPFS节点中获取目标业务数据。若目标边缘节点接收到针对目标业务数据的数据查询请求的查询结果为不存在目标业务数据的业务响应,说明IPFS集群中未存储目标业务数据,目标边缘节点则可以从目标业务数据的源站获取目标业务数据。
可选的,为了提高IPFS集群中业务数据的存储及下载效率,IPFS管理设备可以将完整的业务数据分割为多个数据片段,分散存储至多个IPFS节点,相应的,IPFS集群存储业务数据的处理可以如下:融合CDN***中的任意边缘节点从源站获取业务数据后,将业务数据上传至IPFS管理设备;IPFS管理设备按照预设分片算法将业务数据分割为多个数据片段,并按照预设散列算法计算每个数据片段的片段散列值及业务数据的数据散列值;IPFS管理设备将每个数据片段存储至数据片段的片段散列值对应的IPFS节点;IPFS管理设备根据业务数据的数据散列值、所有片段散列值及每个片段散列值对应的IPFS节点的节点信息生成数据索引,并将数据索引存储至IPFS集群的数据存储记录中。
在实施中,融合CDN***中的任意边缘节点在回源获取业务数据后,将业务数据主动上传至IPFS集群中的IPFS管理设备。IPFS管理设备接收到边缘节点上传的业务数据后,可以将较大的业务数据按照预设分片算法分割为多个数据片段来存储。例如,IPFS管理设备使用sha-256算法对业务数据进行分片,将业务数据按照每个数据片段大小为256KB大小进行分割,并且根据每个数据片段的内容按照sha-256算法来计算每个数据片段的片段散列值。之后,IPFS管理设备可以将业务数据的每个数据片段存储至其片段散列值对应的IPFS节点。并且,IPFS管理设备可以根据业务数据的数据散列值、所有片段散列值及每个片段散列值对应的IPFS节点的节点信息生成数据索引。这样,边缘节点可以从多个IPFS节点中同时下载不同数据片段,在本地组合成完整的业务数据,提高了业务数据的下载效率。可以理解,不足256KB的数据片段也将作为一个数据块(block)单独存储;不同数据片段的散列值可能对应相同的IPFS节点。
值得一提的是,本发明也可以由边缘节点按照预设的分片算法对业务数据的进行分割,边缘节点将分割后的数据片段上传至IPFS管理设备,IPFS管理设备按照预设的散列算法计算各个数据片段的片段散列值,并将各个数据片段存储至其片段散列值对应的IPFS节点。本发明还可以由边缘节点按照预设的分片算法对业务数据的进行分割,并按照预设的散列算法计算分割后的数据片段的片段散列值,之后,边缘节点将业务数据的所有片段散列值上传至IPFS管理设备。IPFS管理设备向边缘节点发送片段散列值对应的IPFS节点的节点信息。之后,边缘节点将各个数据片段存储至对应的IPFS节点。
可选的,业务数据可以分片存储,相应的,IPFS管理设备将每个数据片段存储至数据片段的片段散列值对应的IPFS节点之后的处理可以如下:每个IPFS节点将存储数据片段时节点资源的资源消耗信息发送至本地的区块链节点,区块链集群根据每个区块链节点接收的资源消耗信息为每个CDN厂商结算代币。
在实施中,由于一项完整的业务数据可以被分割为多个数据片段,分散存储于多个IPFS节点,人工对存储所有业务数据的所有数据片段发生的交易进行审计的成本高昂。为了减少审计成本以及保证交易不可篡改,可以在融合CDN***中采用区块链技术对交易进行自动记录和审计,并使用代币对各个CDN厂商贡献的节点资源进行结算。具体的,IPFS管理设备将数据片段存储至IPFS节点之后,每个IPFS节点通过预先设置的API将存储数据片段时节点资源的资源消耗信息发送至本地的区块链节点,由本地的区块链节点对IPFS节点发送的资源消耗信息进行登记。之后,区块链集群可以根据每个区块链节点接收的资源消耗信息为每个CDN厂商结算代币。
可选的,与IPFS节点存储完整的业务数据时结算代币的处理相同,各个IPFS节点存储业务数据的数据片段时,融合CDN***也可以按照预设的周期根据每个CDN厂商贡献的节点资源的多少来结算代币,具体的实现原理和所要达到的技术效果上文中已有论述,本发明在此不再赘述。
可选的,当多个边缘节点回源站获取相同的业务数据时,多个边缘节点均可以向IPFS管理设备发送该业务数据,为了避免浪费存储资源,IPFS管理设备可以丢弃重复的业务数据。相应的,IPFS管理设备将每个数据片段存储至数据片段的片段散列值对应的IPFS节点的处理可以如下:IPFS管理设备查询数据存储记录中是否存在业务数据的数据散列值;若不存在,IPFS管理设备则将业务数据的每个数据片段存储至数据片段的片段散列值对应的IPFS节点。
在实施中,当多个边缘节点均从同一业务数据的源站获取同一业务数据时,多个边缘节点均会向IPFS管理设备上传该业务数据,此时,多个边缘节点重复上传相同的业务数据会一定程度上浪费IPFS集群的存储资源。因此,IPFS管理设备接收到边缘节点上传的业务数据时,可以查询IPFS集群的数据存储记录中是否已存在该业务数据的数据散列值,若存在,说明其他边缘节点已将业务数据上传并成功存储至IPFS集群,IPFS管理设备则可以将具有相同数据散列值的业务数据丢弃;若不存在,说明IPFS集群中仍未存储该业务数据,IPFS管理设备则可以将业务数据的每个数据片段存储至其片段散列值对应的IPFS节点。
值得一提的是,IPFS管理设备还可以预先设置上传队列,将每个边缘节点发送的业务数据暂时存放至上传队列,并在上传队列中记录每项业务数据的数据散列值,之后,按照上传队列中业务数据的排列顺序依次存储每项业务数据。可以理解,IPFS管理设备接收到业务数据时,可以查询上传队列中是否存在该业务数据的数据散列值,若存在,说明其他边缘节点已将业务数据上传给IPFS管理设备,IPFS管理设备正在存储该业务数据,此时,IPFS管理设备则可以将后上传的业务数据丢弃;若不存在,IPFS管理设备可以进一步查询IPFS集群的数据存储记录中是否已存在该业务数据的数据散列值,如果数据存储记录中已存在该业务数据的数据散列值,IPFS管理设备则可以在IPFS节点中存储该业务数据。
可选的,IPFS管理设备可以将业务数据在IPFS集群中存储多个备份,IPFS管理设备将每个数据片段存储至数据片段的片段散列值对应的IPFS节点的处理可以如下:IPFS管理设备根据预设冗余配置,将每个数据片段复制多份,并将每个数据片段的多个备份分别存储至每个数据片段的片段散列值对应的多个IPFS节点。
在实施中,为了防止IPFS集群中存储的业务数据因IPFS节点关闭或机器故障等原因丢失,IPFS管理设备对业务数据进行分割后,可以根据IPFS集群预设的冗余配置(可称作预设冗余配置)复制业务数据的每个数据片段,并将每个数据片段的多个备份分别存储在分布在不同地理位置的不同IPFS节点上。其中,融合CDN***的技术人员可以根据业务数据的实际需求对预设冗余配置进行调整,本发明对此不做限制。例如,当某段时间内,某项业务数据的访问量较大,融合CDN***的技术人员可以调整预设冗余配置,使该业务数据的每个数据片段可以在IPFS集群中存储更多的备份。可以理解,当业务数据的每个数据片段在IPFS集群中存储了多个备份时,每个数据片段的片段散列值将对应多个IPFS节点,此时,业务数据的数据索引中记录的每个片段散列值对应多个IPFS节点的节点信息。
可选的,当业务数据的数据片段在IPFS集群中存储了多个备份时,目标边缘节点可以从多个备份中选取一个备份下载,相应的,目标边缘节点从目标数据索引指向的IPFS节点获取目标业务数据的处理可以如下:若接收到目标数据散列值对应的目标数据索引,目标边缘节点则确定目标数据索引中记录的每个片段散列值对应的多个IPFS节点;目标边缘节点从每个片段散列值对应的多个IPFS节点中就近获取片段散列值对应的数据片段。
在实施中,目标业务数据的所有数据片段均在IPFS集群中存储了多个备份,IPFS管理设备将目标业务数据的存储信息记录在目标数据索引中。故而,当接收到目标边缘节点发送的目标数据查询请求时,IPFS管理设备可以向目标边缘节点发送目标数据索引。其中,目标数据索引中记录了目标业务数据的每个数据片段的片段散列值对应的所有IPFS节点的节点信息。目标边缘节点确定每个片段散列值对应的所有IPFS节点后,可以从每个片段散列值对应的所有IPFS节点中选取地理位置距离目标边缘节点最近的IPFS节点,就近下载每个片段散列值对应的数据片段,能够降低网络时延。
值得一提的是,融合CDN***中各个CDN厂商的调度设备可以对CDN厂商各自的各个边缘节点的健康状态进行监控,以便及时将发往故障的边缘节点的业务请求调度至其他边缘节点。边缘节点在向IPFS集群上传业务数据时,可以对业务数据进行加密,并将业务数据的密钥发送给指定的边缘节点,这样,针对加密的业务数据,只能拥有业务数据的密钥的边缘节点可以从IPFS集群下载该业务数据。
本发明实施例中,通过IPFS集群对业务数据进行备份,可以带来以下有益效果:第一,在融合CDN***中的各个边缘节点上配置IPFS节点,使得每个CDN厂商的任意边缘节点均能将业务数据的备份存储于任意CDN厂商的IPFS节点中,相应的,每个CDN厂商的任意边缘节均能从任意CDN厂商的IPFS节点中共享业务数据,减少了回源次数,减轻源站的负载;第二,在融合CDN***中的各个边缘节点上配置区块链节点,使得IPFS集群中存储业务数据发生的交易可以自动审计和难以篡改,并且在融合CDN***中发行代币来激励各个CDN厂商向IPFS集群提供节点资源,提高了边缘节点的资源利用率。第三,IPFS集群可以对业务数据进行分片存储,由于融合CDN***中的IPFS节点众多,一项业务数据的数据片段可以存储得更加分散,之后,边缘节点可以同时从多个IPFS节点下载业务数据的各个数据片段,提高了业务数据下载效率;第四,IPFS集群还可以将业务数据在IPFS集群中存储多个备份,使得任意边缘节点可以就近下载业务数据,降低了网络时延。
基于相同的技术构思,本发明实施例还提供了一种融合CDN***,所述***包含多个CDN厂商的边缘节点和IPFS集群,所述IPFS集群由IPFS管理设备和每个所述边缘节点中配置的IPFS节点构成,其中:
目标边缘节点,用于接收目标业务请求,并检测本地是否已存储所述目标业务请求指向的目标业务数据;
所述目标边缘节点,还用于若未存储所述目标业务数据,则向所述IPFS管理设备发送所述目标业务数据的数据查询请求;
所述IPFS管理设备,用于查询所述IPFS集群中是否已存储所述目标业务数据,并向所述目标边缘节点发送查询结果;
所述目标边缘节点,还用于根据所述查询结果从所述IPFS集群或所述目标业务数据的源站获取所述目标业务数据。
可选的,所述融合CDN***中的任意边缘节点,还用于:
从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备,还用于:
按照预设散列算法计算所述业务数据的数据散列值,并将所述业务数据存储至所述数据散列值对应的IPFS节点;
根据所述业务数据的数据散列值及所述数据散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
可选的,所述IPFS管理设备,具体用于:
查询所述数据存储记录中是否存在所述目标业务数据的目标数据散列值;
若查询到所述目标数据散列值,则向所述目标边缘节点发送所述目标数据散列值对应的目标数据索引,以使所述目标边缘节点从所述目标数据索引指向的IPFS节点获取所述目标业务数据;
若未查询到所述目标数据散列值,则向所述目标边缘节点发送不存在所述目标业务数据的业务响应,以使所述目标边缘节点则从所述目标业务数据的源站获取所述目标业务数据。
可选的,所述数据查询请求携带有所述目标业务数据的目标资源定位符;
所述IPFS管理设备,还用于:
从预设的资源定位符与数据散列值的映射关系记录中获取所述目标业务数据的目标资源定位符对应的目标数据散列值。
可选的,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
每个所述IPFS节点,还用于:
将存储所述业务数据时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群,用于:
根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
可选的,所述融合CDN***中的任意边缘节点,还用于:
从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备,还用于:
按照预设分片算法将所述业务数据分割为多个数据片段,并按照预设散列算法计算每个所述数据片段的片段散列值及所述业务数据的数据散列值;
将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点;
根据所述业务数据的数据散列值、所有所述片段散列值及每个所述片段散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
可选的,所述IPFS管理设备,具体用于:
根据预设冗余配置,将每个所述数据片段复制多份,并将每个所述数据片段的多个备份分别存储至每个所述数据片段的片段散列值对应的多个IPFS节点。
可选的,所述目标边缘节点,具体用于:
若接收到所述目标数据散列值对应的目标数据索引,则确定所述目标数据索引中记录的每个所述片段散列值对应的多个IPFS节点;
从每个所述片段散列值对应的多个IPFS节点中就近获取所述片段散列值对应的数据片段。
可选的,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
每个所述IPFS节点,还用于:
将存储所述数据片段时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群,用于:
根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
可选的,每个所述区块链节点,具体用于:
周期性根据当前周期内接收到的资源消耗信息,按照预设的共识算法计算本地的IPFS节点的贡献算力;
确定所述区块链集群的记账节点,并将本地的IPFS节点的贡献算力发送至所述记账节点;
所述记账节点,用于:
根据所述区块链集群中的所有区块链节点上传的贡献算力为每个所述CDN厂商结算代币。
可选的,所述边缘节点,还用于:
当接收到IPFS配置指令时,在本地配置IPFS节点并为所述IPFS节点配置存储空间;
当接收到区块链配置指令时,在本地配置区块链节点。
本发明实施例中,通过IPFS集群对业务数据进行备份,可以带来以下有益效果:第一,在融合CDN***中的各个边缘节点上配置IPFS节点,使得每个CDN厂商的任意边缘节点均能将业务数据的备份存储于任意CDN厂商的IPFS节点中,相应的,每个CDN厂商的任意边缘节均能从任意CDN厂商的IPFS节点中共享业务数据,减少了回源次数,减轻源站的负载;第二,在融合CDN***中的各个边缘节点上配置区块链节点,使得IPFS集群中存储业务数据发生的交易可以自动审计和难以篡改,并且在融合CDN***中发行代币来激励各个CDN厂商向IPFS集群提供节点资源,提高了边缘节点的资源利用率。第三,IPFS集群可以对业务数据进行分片存储,由于融合CDN***中的IPFS节点众多,一项业务数据的数据片段可以存储得更加分散,之后,边缘节点可以同时从多个IPFS节点下载业务数据的各个数据片段,提高了业务数据下载效率;第四,IPFS集群还可以将业务数据在IPFS集群中存储多个备份,使得任意边缘节点可以就近下载业务数据,降低了网络时延。
本发明实施例还提供了一种服务器,如图4所示,包括:
存储器301,用于存储程序指令;
处理器302,用于调用所述存储器中存储的程序指令,按照获得的程序执行前述实施例中获取业务数据的方法中目标边缘节点、IPFS管理设备或IPFS节点的处理。
本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行前述实施例中的服务器所执行的方法步骤。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种获取业务数据的方法,其特征在于,所述方法应用于融合CDN***,所述融合CDN***包含多个CDN厂商的边缘节点和IPFS集群,所述IPFS集群由IPFS管理设备和每个所述边缘节点中配置的IPFS节点构成,所述方法包括:
目标边缘节点接收目标业务请求,并检测本地是否已存储所述目标业务请求指向的目标业务数据;
若未存储所述目标业务数据,所述目标边缘节点则向所述IPFS管理设备发送所述目标业务数据的数据查询请求;
所述IPFS管理设备查询所述IPFS集群中是否已存储所述目标业务数据,并向所述目标边缘节点发送查询结果;
若所述查询结果为所述IPFS集群中已存储所述目标业务数据,所述目标边缘节点则从对应的所述IPFS节点获取所述目标业务数据;
若所述查询结果为所述IPFS集群中未存储所述目标业务数据,所述目标边缘节点则从所述目标业务数据的源站获取所述目标业务数据。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述融合CDN***中的任意边缘节点从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备按照预设散列算法计算所述业务数据的数据散列值,并将所述业务数据存储至所述数据散列值对应的IPFS节点;
所述IPFS管理设备根据所述业务数据的数据散列值及所述数据散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
3.如权利要求2所述的方法,其特征在于,所述IPFS管理设备查询所述IPFS集群中是否存在所述目标业务数据,并向所述目标边缘节点发送查询结果,包括:
所述IPFS管理设备查询所述数据存储记录中是否存在所述目标业务数据的目标数据散列值;
若查询到所述目标数据散列值,所述IPFS管理设备则向所述目标边缘节点发送所述目标数据散列值对应的目标数据索引,以使所述目标边缘节点从所述目标数据索引指向的IPFS节点获取所述目标业务数据;
若未查询到所述目标数据散列值,所述IPFS管理设备则向所述目标边缘节点发送不存在所述目标业务数据的业务响应,以使所述目标边缘节点则从所述目标业务数据的源站获取所述目标业务数据。
4.如权利要求3所述的方法,其特征在于,所述数据查询请求携带有所述目标业务数据的目标资源定位符;
所述IPFS管理设备查询所述数据存储记录中是否存在所述目标业务数据的目标数据散列值之前,还包括:
所述IPFS管理设备从预设的资源定位符与数据散列值的映射关系记录中获取所述目标业务数据的目标资源定位符对应的目标数据散列值。
5.如权利要求2所述的方法,其特征在于,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
所述IPFS管理设备按照预设散列算法计算所述业务数据的数据散列值,并将所述业务数据存储至所述数据散列值对应的IPFS节点之后,还包括:
每个所述IPFS节点将存储所述业务数据时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述融合CDN***中的任意边缘节点从源站获取业务数据后,将所述业务数据上传至所述IPFS管理设备;
所述IPFS管理设备按照预设分片算法将所述业务数据分割为多个数据片段,并按照预设散列算法计算每个所述数据片段的片段散列值及所述业务数据的数据散列值;
所述IPFS管理设备将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点;
所述IPFS管理设备根据所述业务数据的数据散列值、所有所述片段散列值及每个所述片段散列值对应的IPFS节点的节点信息生成数据索引,并将所述数据索引存储至所述IPFS集群的数据存储记录中。
7.如权利要求6所述的方法,其特征在于,所述IPFS管理设备将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点,包括:
所述IPFS管理设备根据预设冗余配置,将每个所述数据片段复制多份,并将每个所述数据片段的多个备份分别存储至每个所述数据片段的片段散列值对应的多个IPFS节点。
8.如权利要求7所述的方法,其特征在于,若接收到所述目标数据散列值对应的目标数据索引,所述目标边缘节点从所述目标数据索引指向的IPFS节点获取所述目标业务数据,包括:
若接收到所述目标数据散列值对应的目标数据索引,所述目标边缘节点则确定所述目标数据索引中记录的每个所述片段散列值对应的多个IPFS节点;
所述目标边缘节点从每个所述片段散列值对应的多个IPFS节点中就近获取所述片段散列值对应的数据片段。
9.如权利要求6所述的方法,其特征在于,所述融合CDN***还包含区块链集群,所述区块链集群由每个所述边缘节点中配置的区块链节点构成;
所述IPFS管理设备将每个所述数据片段存储至所述数据片段的片段散列值对应的IPFS节点之后,还包括:
每个所述IPFS节点将存储所述数据片段时节点资源的资源消耗信息发送至本地的区块链节点;
所述区块链集群根据每个所述区块链节点接收的资源消耗信息为每个所述CDN厂商结算代币。
10.如权利要求5或9所述的方法,其特征在于,所述区块链集群根据每个所述IPFS节点发送的资源消耗信息为每个所述CDN厂商结算代币,包括:
每个所述区块链节点周期性根据当前周期内接收到的资源消耗信息,按照预设的共识算法计算本地的IPFS节点的贡献算力;
每个所述区块链节点确定所述区块链集群的记账节点,并将本地的IPFS节点的贡献算力发送至所述记账节点;
所述记账节点根据所述区块链集群中的所有区块链节点上传的贡献算力为每个所述CDN厂商结算代币。
11.如权利要求5或9所述的方法,其特征在于,所述方法还包括:
当接收到IPFS配置指令时,所述边缘节点在本地配置IPFS节点并为所述IPFS节点配置存储空间;
当接收到区块链配置指令时,所述边缘节点在本地配置区块链节点。
12.一种融合CDN***,其特征在于,所述***包含多个CDN厂商的边缘节点和IPFS集群,所述IPFS集群由IPFS管理设备和每个所述边缘节点中配置的IPFS节点构成,其中:
目标边缘节点,用于接收目标业务请求,并检测本地是否已存储所述目标业务请求指向的目标业务数据;
所述目标边缘节点,还用于若未存储所述目标业务数据,则向所述IPFS管理设备发送所述目标业务数据的数据查询请求;
所述IPFS管理设备,用于查询所述IPFS集群中是否已存储所述目标业务数据,并向所述目标边缘节点发送查询结果;
若所述查询结果为所述IPFS集群中已存储所述目标业务数据,所述目标边缘节点还用于从对应的所述IPFS节点获取所述目标业务数据;
若所述查询结果为所述IPFS集群中未存储所述目标业务数据,所述目标边缘节点还用于从所述目标业务数据的源站获取所述目标业务数据。
13.如权利要求12所述的***,其特征在于,所述***用于实现如权利要求2至11任一项所述的获取业务数据的方法。
14.一种服务器,其特征在于,所述服务器包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器中存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至11任一项所述的获取业务数据的方法中目标边缘节点、IPFS管理设备或IPFS节点的处理。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述的获取业务数据的方法中目标边缘节点、IPFS管理设备或IPFS节点的处理。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910474797.1A CN110392094B (zh) | 2019-06-03 | 2019-06-03 | 一种获取业务数据的方法及融合cdn*** |
PCT/CN2019/096169 WO2020244026A1 (zh) | 2019-06-03 | 2019-07-16 | 一种获取业务数据的方法及融合cdn*** |
EP19874771.9A EP3799392A1 (en) | 2019-06-03 | 2019-07-16 | Method for obtaining service data and converged cdn system |
US16/868,469 US20200380050A1 (en) | 2019-06-03 | 2020-05-06 | Method for acquiring service data and converged cdn system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910474797.1A CN110392094B (zh) | 2019-06-03 | 2019-06-03 | 一种获取业务数据的方法及融合cdn*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110392094A CN110392094A (zh) | 2019-10-29 |
CN110392094B true CN110392094B (zh) | 2021-03-19 |
Family
ID=68285245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910474797.1A Expired - Fee Related CN110392094B (zh) | 2019-06-03 | 2019-06-03 | 一种获取业务数据的方法及融合cdn*** |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3799392A1 (zh) |
CN (1) | CN110392094B (zh) |
WO (1) | WO2020244026A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464585B (zh) * | 2019-12-05 | 2021-09-07 | 厦门靠谱云股份有限公司 | 一种基于多云的高可用cdn服务*** |
CN111225241B (zh) * | 2019-12-30 | 2023-07-28 | 视联动力信息技术股份有限公司 | 一种通信方法和装置 |
CN113127414B (zh) * | 2019-12-31 | 2023-05-23 | 贵州白山云科技股份有限公司 | 一种请求处理方法和***及边缘节点 |
CN113452539B (zh) * | 2020-03-26 | 2022-07-19 | 北京金山云网络技术有限公司 | 源站切换方法、装置、电子设备及存储介质 |
CN111858771A (zh) * | 2020-07-30 | 2020-10-30 | 杭州复杂美科技有限公司 | 分布式数据存储方法、设备和存储介质 |
CN112866356B (zh) * | 2021-01-04 | 2023-02-24 | 成都知道创宇信息技术有限公司 | Cdn缓存方法、装置及电子设备 |
CN112732440A (zh) * | 2021-01-07 | 2021-04-30 | 中国铁塔股份有限公司 | 资源分配方法、装置、云平台服务器和边缘节点设备 |
CN112968959B (zh) * | 2021-02-20 | 2022-11-04 | 网宿科技股份有限公司 | 一种资源请求方法及终端 |
EP4075691B1 (en) | 2021-02-20 | 2024-05-01 | Wangsu Science & Technology Co., Ltd. | Resource requesting method and terminal |
CN112925946B (zh) * | 2021-02-26 | 2024-03-19 | 中国铁塔股份有限公司 | 一种业务数据存储方法、装置及电子设备 |
CN113419878B (zh) * | 2021-07-02 | 2024-03-22 | 泰康保险集团股份有限公司 | 一种数据操作方法和装置 |
CN113434093B (zh) * | 2021-07-08 | 2023-12-01 | 山东中科好靓基础软件技术有限公司 | 一种可有效提高存储能力的ipfs数据存储方法 |
CN114143332B (zh) * | 2021-11-03 | 2024-06-11 | 阿里巴巴(中国)有限公司 | 基于内容分发网络cdn的处理方法、电子设备和介质 |
CN114189523A (zh) * | 2021-12-17 | 2022-03-15 | 中国电信股份有限公司 | 用于cdn的边缘节点的回源的方法、装置和存储介质 |
CN114422603A (zh) * | 2022-03-30 | 2022-04-29 | 深圳市一航网络信息技术有限公司 | 基于bcdn网络的激励方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194761A (zh) * | 2018-09-18 | 2019-01-11 | 北京工业大学 | 一种基于边缘计算与区块链的lora物联网环境数据采集与上链实现方法 |
CN109246211A (zh) * | 2018-08-30 | 2019-01-18 | 南方科技大学 | 一种区块链中的资源上传和资源请求方法 |
CN109582246A (zh) * | 2018-12-06 | 2019-04-05 | 深圳市网心科技有限公司 | 基于矿机的数据访问方法、装置、***及可读存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761900B2 (en) * | 2006-08-02 | 2010-07-20 | Clarendon Foundation, Inc. | Distribution of content and advertisement |
CN103535011A (zh) * | 2011-12-14 | 2014-01-22 | 华为技术有限公司 | 内容分发网络cdn路由方法、设备和*** |
CN102447712B (zh) * | 2012-01-20 | 2015-07-08 | 华为技术有限公司 | 内容分发网络中节点互联的方法、***及节点 |
CN102932451B (zh) * | 2012-10-31 | 2015-11-18 | 北龙中网(北京)科技有限责任公司 | 一种针对内容分发网络的解决*** |
CN104284201A (zh) * | 2014-09-26 | 2015-01-14 | 北京奇艺世纪科技有限公司 | 一种视频内容的处理方法和装置 |
CN104967651B (zh) * | 2015-03-02 | 2017-06-27 | 深圳市腾讯计算机***有限公司 | 基于cdn架构的数据推送、存储、下载方法和装置 |
CN105450780B (zh) * | 2015-12-31 | 2019-01-18 | 深圳市网心科技有限公司 | 一种cdn***及其回源方法 |
CN107273410B (zh) * | 2017-05-03 | 2020-07-07 | 上海点融信息科技有限责任公司 | 基于区块链的分布式存储 |
CN107124621A (zh) * | 2017-05-05 | 2017-09-01 | 北京奇艺世纪科技有限公司 | 一种基于蜂窝网络的业务调度方法及装置 |
CN107666484B (zh) * | 2017-09-19 | 2019-06-21 | 上海交通大学 | 一种基于区块链的内容分发网络cdn共享方法及*** |
CN109040308A (zh) * | 2018-09-12 | 2018-12-18 | 杭州趣链科技有限公司 | 一种基于ipfs的文件分发***及文件分发方法 |
CN109639406B (zh) * | 2018-12-24 | 2022-03-04 | 国泰君安证券股份有限公司 | 基于区块链和ipfs的高效信任解决方法 |
-
2019
- 2019-06-03 CN CN201910474797.1A patent/CN110392094B/zh not_active Expired - Fee Related
- 2019-07-16 WO PCT/CN2019/096169 patent/WO2020244026A1/zh unknown
- 2019-07-16 EP EP19874771.9A patent/EP3799392A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246211A (zh) * | 2018-08-30 | 2019-01-18 | 南方科技大学 | 一种区块链中的资源上传和资源请求方法 |
CN109194761A (zh) * | 2018-09-18 | 2019-01-11 | 北京工业大学 | 一种基于边缘计算与区块链的lora物联网环境数据采集与上链实现方法 |
CN109582246A (zh) * | 2018-12-06 | 2019-04-05 | 深圳市网心科技有限公司 | 基于矿机的数据访问方法、装置、***及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3799392A4 (en) | 2021-03-31 |
EP3799392A1 (en) | 2021-03-31 |
CN110392094A (zh) | 2019-10-29 |
WO2020244026A1 (zh) | 2020-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110392094B (zh) | 一种获取业务数据的方法及融合cdn*** | |
US20200380050A1 (en) | Method for acquiring service data and converged cdn system | |
JP2023500316A (ja) | ファイル記憶方法、端末及び記憶媒体 | |
KR101585146B1 (ko) | 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체 | |
EP3296870B1 (en) | Cdn-based content management system | |
US9729429B2 (en) | Parallel distributed network management | |
US8447831B1 (en) | Incentive driven content delivery | |
CN112106336A (zh) | 区块链上的代理方代理和代理方账本 | |
EP1829328B1 (en) | System and methods for scalable data distribution | |
CN110324406B (zh) | 一种获取业务数据的方法和云服务*** | |
US7970856B2 (en) | System and method for managing and distributing assets over a network | |
US20110258253A1 (en) | Locality based content distribution | |
US8156223B2 (en) | Distribution of binary executables and content from peer locations/machines | |
JP2004246632A (ja) | データ分配サーバ、プログラム及びネットワークシステム | |
US8761727B2 (en) | Method and apparatus for pre-caching in a telecommunication system | |
US20090094378A1 (en) | Software Deployment Using Client Location | |
KR20190047518A (ko) | 클라우드 서비스 브로커리지에 기반한 클라우드 서비스 제공 방법 및 장치 및 그 방법 | |
US10129358B2 (en) | Partitioned serialized caching and delivery of large files | |
JP6301413B2 (ja) | データ伝送制御方法及び装置 | |
CN105068755A (zh) | 一种面向云计算内容分发网络的数据副本存储方法 | |
KR20110039291A (ko) | 광고 포워딩 스토리지 및 검색 네트워크 | |
WO2017128713A1 (zh) | 订阅消息的发布方法及装置 | |
US8775456B2 (en) | System and method for scheduled and collaborative distribution of software and data to many thousands of clients over a network using dynamic virtual proxies | |
EP4280077A1 (en) | Data ingestion replication and disaster recovery | |
JP2004064284A (ja) | P2pネットワークのトラヒック制御方法及び装置並びにプログラム及び記録媒体 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210319 |
|
CF01 | Termination of patent right due to non-payment of annual fee |