CN111885098A - 对象存储集群的代理访问方法、系统及计算机设备 - Google Patents
对象存储集群的代理访问方法、系统及计算机设备 Download PDFInfo
- Publication number
- CN111885098A CN111885098A CN202010492087.4A CN202010492087A CN111885098A CN 111885098 A CN111885098 A CN 111885098A CN 202010492087 A CN202010492087 A CN 202010492087A CN 111885098 A CN111885098 A CN 111885098A
- Authority
- CN
- China
- Prior art keywords
- access
- storage cluster
- proxy
- cluster
- application
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种对象存储集群的代理访问方法、系统及计算机设备,方法包括如下步骤:建立应用与存储对象之间的映射关系,建立存储对象与存储集群之间的路由规则;获取客户端发送的应用访问请求,根据所述应用访问请求在所述映射关系中匹配与访问应用相匹配的存储对象作为目标访问对象,在所述路由规则中匹配所述目标访问对象至对应的目标存储集群的路由路径;根据所述路由路径对所述目标存储集群进行代理访问。本发明的对象存储集群的代理访问方法、系统及计算机设备,通过建立灵活的路由访问机制,将前端应用与后端存储集群解耦,实现松耦合、可配置、高可用的多集群分布式对象存储代理架构。
Description
技术领域
本发明涉及分布式对象存储集群的访问技术领域,特别涉及一种对象存储集群的代理访问方法、系统及计算机设备。
背景技术
分布式对象存储主要提供图片、文档、音频、视频等二进制文件的海量存储功能,具有强大的扩展性、可靠性和持久性。分布式对象存储构筑在比较便宜的标准硬件存储基础设施之上,无需采用RAID(磁盘冗余阵列),通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、存储对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题。
目前分布式对象存储架构如图6所示,包括访问层和存储层。访问层包括负载均衡器(Load Balancer)、代理服务器(Proxy),负载均衡器可采用硬件或者软件负载均衡器,负载聚能器用于将客户端(Clients)的请求按照配置的策略分配到无状态的代理服务器;代理服务器用于提供REST API给客户端,提供无状态的服务,由多个代理服务器组成一个集群,还用于将客户端请求转给某个存储节点上的对象服务上。存储层包括基于集群服务器的存储硬件(Storage)提供多副本、可扩展、高可用的存储。
众多企业基于分布式对象存储的特性将其作为IT基础设施之一,建设多套集群,为业务应用系统提供高可用分布式对象存储服务,具体架构如图7所示,具体内容如下:1.建设多套分布式对象存储集群(对象存储集群1、对象存储集群2、…、对象存储集群m),每套集群为多节点、数据存储为多副本,集群为多应用(业务应用1、业务应用2、…、业务应用n)共享,作为业务应用的分布式对象存储系统;2. 使用负载均衡器集群作为访问层,提供负载均衡和反向代理功能,通过定义规则将应用流量路由到对应的对象存储集群中;3. 对象存储集群主要存储业务应用系统的图片、文档等非结构化业务数据文件,文件数量庞大。
上述这种基于分布式对象存储集群的业务应用系统服务架构,存在以下问题:
1.随着存储到分布式对象存储集群的业务应用文件容量增长迅速,集群容量瓶颈容易出现,需要通过增加新建集群来解决日益增长的容量需求。伴随新增集群,会存在应用系统的数据文件分布到多个集群的场景,因此开发人员需要对应用进行程序修改来进行适配,应用程序和存储逻辑耦合严重,后端存储的分布对应用逻辑侵入大,每次集群扩容和数据迁移都设计相应程序的修改,增加开发人员负担,同时也增加了应用运行和维护的风险。
2.一般使用硬件如F5或者软件如HAProxy作为访问层的负载均衡器,其功能和规则配置相对简单,随着转发规则逻辑越来越复杂,难以满足复杂的应用场景需求,业务应用需要更加灵活可配置的路由机制和重试机制等。
3.由于集群对接多套应用系统,在业务高峰期面临海量访问的问题,除频繁写入集群场景外,还存在大并发读和更新操作,集群并发处理压力大,容易出现性能瓶颈。
4.当某集群出现故障不可用时,没有自动的高可用机制将读写操作转发到备用集群。
发明内容
基于此,有必要提供一种对象存储集群的代理访问方法、系统及计算机设备,以解决现有技术中应用程序和存储逻辑耦合严重,在集群扩容和数据迁移时需要进行程序修改,增加运行维护的负担和风险的技术问题。
本发明实施例一方面提供一种对象存储集群的代理访问方法,包括如下步骤:
建立应用与存储对象之间的映射关系,建立存储对象与存储集群之间的路由规则;
获取客户端发送的应用访问请求,根据所述应用访问请求在所述映射关系中匹配与访问应用相匹配的存储对象作为目标访问对象,在所述路由规则中匹配所述目标访问对象至对应的目标存储集群的路由路径;
根据所述路由路径对所述目标存储集群进行代理访问。
作为上述实施例的进一步改进,对象存储集群的代理访问方法还包括:
对所述路由规则以及映射关系进行缓存,通过访问缓存区查询所述路由规则以及映射关系,实现所述应用访问请求的路由路径匹配;
对小于指定大小的存储对象进行缓存,在所述目标访问对象小于指定大小时,访问缓存区实现代理访问。
作为上述实施例的进一步改进,对象存储集群的代理访问方法还包括:
在所述路由规则发生更新时,对更新的路由规则进行热加载;
对所述路由规则的更新记录进行保存,当接收到路由规则还原指令时,根据所述更新记录推送历史路由规则,实现路由规则的还原。
作为上述实施例的进一步改进,对象存储集群的代理访问方法还包括:
对存储集群提供的服务进行注册,获取客户端的应用访问请求,在已注册的服务中查询与所述应用访问请求相对应的服务IP和服务端口,并对所述服务IP以及所述服务端口进行缓存,根据所述服务IP以及服务端口与客户端建立长连接。
作为上述实施例的进一步改进,对象存储集群的代理访问方法还包括:
采集客户端的访问指标以及存储集群的性能指标,并将所述访问指标以及所述性能指标保存至日志文件;
将代理访问过程中的操作信息以日志形式保存至日志文件;
将代理访问过程中的异常情况以错误码形式保存至日志文件。
作为上述实施例的进一步改进,根据所述路由路径对所述目标存储集群进行代理访问,还包括:
定义代理访问异常重试规则,所述代理访问异常重试规则包括重试次数与响应码之间的对应关系;
获取代理访问异常时的异常响应码,在所述对应关系中匹配与所述异常响应码相匹配的重试次数;
根据所述异常响应码相匹配的重试次数重新对所述目标存储集群进行代理访问,如果重试次数内均访问异常,则停止代理访问。
作为上述实施例的进一步改进,根据所述路由路径对所述目标存储集群进行代理访问,还包括:
在所述目标存储集群发生故障时,自动路由操作至所述目标存储集群的备份集群进行代理访问。
本发明实施例另一方面提供一种对象存储集群的代理访问系统,包括客户端、提供服务的存储集群及代理访问端,所述代理访问端包括代理访问组件;
所述代理访问组件用于实现以下步骤:
建立应用与存储对象之间的映射关系,建立存储对象与存储集群之间的路由规则;
获取客户端发送的应用访问请求,根据所述应用访问请求在所述映射关系中匹配与访问应用相匹配的存储对象作为目标访问对象,在所述路由规则中匹配所述目标访问对象至对应的目标存储集群的路由路径;
根据所述路由路径对所述目标存储集群进行代理访问。
作为上述实施例的进一步改进,所述代理访问端还包括Redis集群以及Zookeeper集群;
所述Redis集群用于对所述路由规则以及映射关系进行缓存;还用于对小于指定大小的存储对象进行缓存;
所述代理访问组件用于通过访问缓存区查询所述路由规则以及映射关系,实现所述应用访问请求的路由路径匹配;还用于在所述目标访问对象小于指定大小时,访问缓存区实现代理访问;
所述代理访问组件还用于在所述路由规则发生更新时,对更新的路由规则进行热加载;对所述路由规则的更新记录进行保存,当接收到路由规则还原指令时,根据所述更新记录推送历史路由规则,实现路由规则的还原;
所述Zookeeper集群用于对存储集群提供的服务进行注册,获取客户端的应用访问请求,在已注册的服务中查询与所述应用访问请求相对应的服务IP和服务端口,并对所述服务IP以及所述服务端口进行缓存,根据所述服务IP以及服务端口与客户端建立长连接;
所述代理访问组件还用于采集客户端的访问指标以及存储集群的性能指标,并将所述访问指标以及所述性能指标保存至日志文件;将代理访问过程中的操作信息以日志形式保存至日志文件;将代理访问过程中的异常情况以错误码形式保存至日志文件;
所述代理访问组件还用于获取代理访问异常时的异常响应码,在所述对应关系中匹配与所述异常响应码相匹配的重试次数;根据所述异常响应码相匹配的重试次数重新对所述目标存储集群进行代理访问,如果重试次数内均访问异常,则停止代理访问;
所述代理访问组件还用于在所述目标存储集群发生故障时,自动路由操作至所述目标存储集群的备份集群进行代理访问。
本发明实施例再一方面提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
本发明实施例的对象存储集群的代理访问方法、系统及计算机设备,1.本发明首先顶立路由规则,然后建立开放给前端应用的后端对象存储的映射关系表,通过该映射关系表获取对应的路由规则,访问所需的后端数据。前端的应用采用这种代理访问的方式对后端的存储集群进行访问,由于通过路由规则和映射关系对前端的应用与后端存储集群进行了解耦,通过代理访问对应用系统屏蔽底层多对象存储集群场景,使得多存储集群从应用视角成为逻辑上的单一集群,集群的扩容、容灾、数据迁移等操作对应用透明,集群进行扩容、容灾、数据迁移时应用无需进行代码修改,只需对代理访问机制进行相应配置即可,最终实现了松耦合、可配置、高可用、高性能的多集群分布式对象存储代理访问机制。
附图说明
通过附图中所示的本发明优选实施例更具体说明,本发明上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本的主旨。
图1为本发明实施例的对象存储集群的代理访问方法的流程图;
图2为本发明实施例的对象存储集群的代理访问系统的架构图;
图3为本发明实施例的对象存储集群的代理访问系统的网络结构图;
图4为本发明实施例的对象存储集群的代理访问系统的客户端写请求流程图;
图5为本发明实施例的对象存储集群的代理访问系统的客户端读请求流程图;
图6是现有技术中分布式对象存储结构图;
图7是现有技术中应用于业务应用系统的高可用分布式对象存储服务结构。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示,本发明实施例提供一种对象存储集群的代理访问方法,以下简称本方法,包括如下步骤:
S1、建立应用与存储对象之间的映射关系,建立存储对象与存储集群之间的路由规则;
S2、获取客户端发送的应用访问请求,根据所述应用访问请求在所述映射关系中匹配与访问应用相匹配的存储对象作为目标访问对象,在所述路由规则中匹配所述目标访问对象至对应的目标存储集群的路由路径;
S3、根据所述路由路径对所述目标存储集群进行代理访问。
本方法首先定义路由规则,建立开放给前端应用的后端对象存储的映射关系表,通过该映射关系表获取与应用访问请求相对应的路由路径,通过该路由路径代理访问所需的后端数据。映射关系将前端应用系统和后端集群存储进行解耦,路由路径的获取根据映射关系表查询获取,使得存储集群在进行扩容、容灾、数据迁移等操作时,应用无需进行代码修改,路由访问机制更加灵活,整体实现了松耦合、可配置、高可用、高性能的多集群分布式对象存储代理组件。具体的,建立了路由规则后,定期对路由规则进行维护,并提供维护界面。具体的,本实施例提供两种路由规则,第一种路由规则:定义存储集群中服务节点对应的路由路径的匹配规则,根据匹配规则进行路由路径的匹配,定义路由机制的Http处理方法,通过Http协议调用路由规则,定义各路由节点的权重以及路由路径的剔除规则,根据路由节点的权重以及路由路径的提出规则制定具体的路由路径匹配规则;第二种路由规则:定义重定向请求规则,如发生存储集群中无服务节点对应客户端的应用访问请求,将当前路由路径进行重定向到其他服务节点。
本发明实施例应用代理访问方法,前端应用通过代理访问的方法对后端的存储集群进行访问,通过该代理访问方法实现对客户端的应用系统屏蔽底层多对象存储集群场景,使得多对象存储集群场景从应用视角成为逻辑上的单一集群,存储集群的扩容、容灾、数据迁移等操作对应用透明,用户只需要对接代理访问结构接客,且存储集群在进行扩容、容灾、数据迁移等操作时,应用无需进行代码修改,只需对代理访问进行相应配置即可,提升了应用开发和运维效率。
在优选实施例中,还包括:
对所述路由规则以及映射关系进行缓存,通过访问缓存区查询所述路由规则以及映射关系,实现所述应用访问请求的路由路径匹配;
对小于指定大小的存储对象进行缓存,在所述目标访问对象小于指定大小时,访问缓存区实现代理访问。
本优选实施例中,对路由规则和映射关系进行了缓存,路由规则和映射关系可以采用落地数据库和Redis集群进行缓存存储,通过缓存提供路由规则以及映射关系的快速查询、更新机制。
本优选实施例还提供对象缓存机制:即通过对小对象进行缓存,提供小对象快速查询、更新机制。小对象缓存机制提升了高并发访问应用寻址和小对象文件读取的速度,缓解了应用数据库和对象存储集群的压力,提升了对象存储集群的整体读写性能。具体的,小对象指小于指定大小的存储对象,通过代理访问的配置文件指定最大缓存文件大小以及缓存时间,小文件先读缓存再读对象存储集群,更新时先删除缓存,然后更新对象存储集群,最后更新缓存。增加小对象缓存机制可以提升存储集群的并发处理能力,从而取代通用的负载均衡器。
在优选实施例中,本方法还包括:
在所述路由规则发生更新时,对更新的路由规则进行热加载;
对所述路由规则的更新记录进行保存,当接收到路由规则还原指令时,根据所述更新记录推送历史路由规则,实现路由规则的还原。
在存储集群启动的同时,初始化加载路由规则,在运行过程中,对更新的路由规则进行热加载,实现路由规则的动态更新,提供更灵活、实时的路由访问机制。
在优选实施例中,本方法还包括:
对存储集群提供的服务进行注册,获取客户端的应用访问请求,在已注册的服务中查询与所述应用访问请求相对应的服务IP和服务端口,并对所述服务IP以及所述服务端口进行缓存,根据所述服务IP以及服务端口与客户端建立长连接。
本优选实施例为了实现客户端负载均衡,对存储集群提供的服务进行注册,注册以后,客户端即可通过注册的服务查找发现所需应用的服务,对客户端进行拓展封装,客户端进行应用访问请求时传入服务代号、服务协议名,客户端会在注册的服务中寻找相应的服务IP和端口,同时将服务IP和端口缓存到本地,并建立长连接以保持服务的更新。
在优选实施例中,本方法还包括:
采集客户端的访问指标以及存储集群的性能指标,并将所述访问指标以及所述性能指标保存至日志文件;
将代理访问过程中的操作信息以日志形式保存至日志文件;
将代理访问过程中的异常情况以错误码形式保存至日志文件。
本优选实施例提供了链路跟踪机制以及性能评估机制。链路跟踪机制:对访问指标、代理访问过程中操作信息及异常情况进行保存记录,提供从客户端到存储集群访问的整体链路跟踪机制。访问指标及性能指标主要包括请求URL、请求量、请求文件大小、响应时间等。采集的访问指标及性能指标数据保存到日志文件,通过日志收集平台进行采集和分析。性能评估机制:对存储集群的性能指标进行存储,提供从客户端到存储集群访问的性能评估机制。链路跟踪机制和性能评估机制提高了代理访问的运维管理能力,为运维管理和后续改进提供了数据支持,提升了应用运维效率。
在优选实施例中,根据所述路由路径对所述目标存储集群进行代理访问,还包括:
定义代理访问异常重试规则,所述代理访问异常重试规则包括重试次数与响应码之间的对应关系;
获取代理访问异常时的异常响应码,在所述对应关系中匹配与所述异常响应码相匹配的重试次数;
根据所述异常响应码相匹配的重试次数重新对所述目标存储集群进行代理访问,如果重试次数内均访问异常,则停止代理访问。
本优选实施例中,为代理访问增加了异常重试功能,重试规则通过代理访问配置文件进行设置,根据存储集群的异常响应码来匹配重试次数,默认重试次数为3次。
在优选实施例中,根据所述路由路径对所述目标存储集群进行代理访问,还包括:
在所述目标存储集群发生故障时,自动路由操作至所述目标存储集群的备份集群进行代理访问。
本优选实施例为代理访问增加了故障保证机制,故障保证机制提供了当某存储集群出现故障时快速自动路由操作到运行正常备份集群的访问机制,提高了代理访问的可用性,实现了对象存储集群出现故障时的自动切换能力。
请参考图2,本发明实施例还提供一种对象存储集群的代理访问系统,包括客户端、提供服务的存储集群及代理访问端,所述代理访问端包括代理访问组件;
所述代理访问组件用于实现以下步骤:
建立应用与存储对象之间的映射关系,建立存储对象与存储集群之间的路由规则;
获取客户端发送的应用访问请求,根据所述应用访问请求在所述映射关系中匹配与访问应用相匹配的存储对象作为目标访问对象,在所述路由规则中匹配所述目标访问对象至对应的目标存储集群的路由路径;
根据所述路由路径对所述目标存储集群进行代理访问。
具体的,如图2所示,客户端包括多个应用:应用1…应用n,代理访问组件包括多个代理实例,多个存储集群组成多集群对象存储,客户端发送应用访问请求后,代理访问组件通过灵活的路由机制实现该应用访问请求对应目标访问对象的路由访问,客户端通过HTTP协议调用相应的代理实例,实现对相应目标存储集群的代理访问,客户端根据代理访问的结果将目标访问对象入库DB。
具体的,如图3所示,客户端与代理访问组件之间、代理访问组件与存储集群之间均采用HTTP协议调用相互调用,代理访问组件与存储集群之间通过动态灵活的路由机制进行代理访问,实现负载均衡的服务端访问机制。
对于客户端而言,包括写请求和读请求两种请求类型,代理访问组件对于这两种请求的代理机制是一样的,区别在于,在响应写请求时,需要根据写请求对映射关系进行更新。具体的,如图4所示,客户端发出写请求时,首先匹配路由规则,如果匹配的路由路径可用,即可直接进行代理访问,否则重新进行匹配,代理访问成功后返回成功响应,并将该应用调用请求与相应目标存储集群的处理节点的映射关系更新至映射关系表中,便于后续代理访问时应用,如果代理访问不成功,则进行重试,重试次数内仍然访问失败,则返回失败相应。具体的,如图5所示,客户端发出读请求时,首先匹配路由规则,如果匹配的路由路径可用,即可直接进行代理访问,否则重新进行匹配,代理访问成功后返回成功响应,如果代理访问不成功,则进行重试,重试次数内仍然访问失败,则返回失败相应。
本发明实施例提供的对象存储集群的代理访问系统,用于实现对象存储集群的代理访问方法,因此对象存储集群的代理访问方法所具备的技术效果,对象存储集群的代理访问系统,同样具备,在此不再赘述。
在优选实施例中,如图2所示,所述代理访问端还包括Redis集群以及Zookeeper集群;
所述Redis集群用于对所述路由规则以及映射关系进行缓存;还用于对小于指定大小的存储对象进行缓存;
所述代理访问组件用于通过访问缓存区查询所述路由规则以及映射关系,实现所述应用访问请求的路由路径匹配;还用于在所述目标访问对象小于指定大小时,访问缓存区实现代理访问;
所述代理访问组件还用于在所述路由规则发生更新时,对更新的路由规则进行热加载;对所述路由规则的更新记录进行保存,当接收到路由规则还原指令时,根据所述更新记录推送历史路由规则,实现路由规则的还原;
所述Zookeeper集群用于对存储集群提供的服务进行注册,获取客户端的应用访问请求,在已注册的服务中查询与所述应用访问请求相对应的服务IP和服务端口,并对所述服务IP以及所述服务端口进行缓存,根据所述服务IP以及服务端口与客户端建立长连接;
所述代理访问组件还用于采集客户端的访问指标以及存储集群的性能指标,并将所述访问指标以及所述性能指标保存至日志文件;将代理访问过程中的操作信息以日志形式保存至日志文件;将代理访问过程中的异常情况以错误码形式保存至日志文件;
所述代理访问组件还用于获取代理访问异常时的异常响应码,在所述对应关系中匹配与所述异常响应码相匹配的重试次数;根据所述异常响应码相匹配的重试次数重新对所述目标存储集群进行代理访问,如果重试次数内均访问异常,则停止代理访问;
所述代理访问组件还用于在所述目标存储集群发生故障时,自动路由操作至所述目标存储集群的备份集群进行代理访问。
具体的,如图2、图3所示,代理访问端还包括Redis集群,Redis集群包括多个Redis节点,多个Redis节点构成缓存层,对路由规则、映射关系以及小对象进行缓存,实现路由规则、映射关系以及小对象的快速访问机制。如图2、图3所示,代理访问端还包括Zookeeper集群,Zookeeper集群包括多个zk节点,多个zk节点与代理访问组件组成代理层,Zookeeper集群用于实现客户端负载均衡,客户端的服务查询发现基于Zookeeper集群,对客户端进行拓展封装,应用访问请求时传入服务代号、服务协议名,客户端会通过Zookeeper集群的服务发现,寻找相应的服务IP和服务端口,同时将服务IP和端口缓存到本地,并通过与Zookeeper集群建立长连接,保持服务发现的更新。
本发明实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例的方法的步骤。该计算机设备可以是可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过系统总线相互通信连接的存储器、处理器。
本实施例中,存储器(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card ,SMC),安全数字(Secure Digital ,SD)卡,闪存卡(Flash Card)等。当然,存储器还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器通常用于存储安装于计算机设备的操作系统和各类服务软件等。此外,存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器通常用于控制计算机设备的总体操作。本实施例中,处理器用于运行存储器中存储的程序代码或者处理数据,以实现上述实施例的对象存储集群的代理访问方法。
本发明实施例提供的对象存储集群的代理访问方法与系统及计算机设备,建立灵活可配置的路由访问机制,引入存储对象和存储集群关系路由规则,将应用系统和存储集群进行解耦,实现了松耦合、可配置、高可用、高性能的多集群分布式对象存储代理访问机制。
某企业引入分布式对象存储后,随着业务快速增长,业务应用系统的数据也随着快速增长,原集群不能满足需求,规模也从一个集群扩展到多个集群,随着集群的扩容,带来了业务应用系统需要进行改造来适应后端多集群存储的问题,使得应用系统和后端存储强耦合,对应用不透明,同时集群的性能和可用性在大并发流量下也存在不稳定现象。采用本发明后很好解决了现有问题,将应用系统和后端存储进行解耦,实现后端存储进行扩容、容灾、迁移等操作对应用系统的透明,增强了应用系统对后端存储的读写性能,保证了高可用,通过自动化运维组件和数据分析功能,提升了应用开发和运维效率,使得应用系统能够提供更加稳定的服务,更好地支持公司业务的快速发展。
具体的,本发明在具体实施时,可以制定灰度方案,即先在非重点项目进行试点,试点成功后推广到其它应用系统,从而实现循序渐进的推广和应用。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种对象存储集群的代理访问方法,其特征在于,包括如下步骤:
建立应用与存储对象之间的映射关系,建立存储对象与存储集群之间的路由规则;
获取客户端发送的应用访问请求,根据所述应用访问请求在所述映射关系中匹配与访问应用相匹配的存储对象作为目标访问对象,在所述路由规则中匹配所述目标访问对象至对应的目标存储集群的路由路径;
根据所述路由路径对所述目标存储集群进行代理访问;
根据所述路由路径对所述目标存储集群进行代理访问的步骤进一步包括:
定义代理访问异常重试规则,所述代理访问异常重试规则包括重试次数与响应码之间的对应关系;
获取代理访问异常时的异常响应码,在所述对应关系中匹配与所述异常响应码相匹配的重试次数;
根据所述异常响应码相匹配的重试次数重新对所述目标存储集群进行代理访问,如果重试次数内均访问异常,则停止代理访问。
2.根据权利要求1所述的对象存储集群的代理访问方法,其特征在于,还包括:
对所述路由规则以及映射关系进行缓存,通过访问缓存区查询所述路由规则以及映射关系,实现所述应用访问请求的路由路径匹配;
对小于指定大小的存储对象进行缓存,在所述目标访问对象小于指定大小时,访问缓存区实现代理访问。
3.根据权利要求1所述的对象存储集群的代理访问方法,其特征在于,还包括:
在所述路由规则发生更新时,对更新的路由规则进行热加载;
对所述路由规则的更新记录进行保存,当接收到路由规则还原指令时,根据所述更新记录推送历史路由规则,实现路由规则的还原。
4.根据权利要求1所述的对象存储集群的代理访问方法,其特征在于,还包括:
对存储集群提供的服务进行注册,获取客户端的应用访问请求,在已注册的服务中查询与所述应用访问请求相对应的服务IP和服务端口,并对所述服务IP以及所述服务端口进行缓存,根据所述服务IP以及服务端口与客户端建立长连接。
5.根据权利要求1所述的对象存储集群的代理访问方法,其特征在于,还包括:
采集客户端的访问指标以及存储集群的性能指标,并将所述访问指标以及所述性能指标保存至日志文件;
将代理访问过程中的操作信息以日志形式保存至日志文件;
将代理访问过程中的异常情况以错误码形式保存至日志文件。
6.根据权利要求1所述的对象存储集群的代理访问方法,其特征在于,根据所述路由路径对所述目标存储集群进行代理访问,还包括:
在所述目标存储集群发生故障时,自动路由操作至所述目标存储集群的备份集群进行代理访问。
7.一种对象存储集群的代理访问系统,其特征在于,包括客户端、提供服务的存储集群及代理访问端,所述代理访问端包括代理访问组件;
所述代理访问组件用于实现以下步骤:
建立应用与存储对象之间的映射关系,建立存储对象与存储集群之间的路由规则;
获取客户端发送的应用访问请求,根据所述应用访问请求在所述映射关系中匹配与访问应用相匹配的存储对象作为目标访问对象,在所述路由规则中匹配所述目标访问对象至对应的目标存储集群的路由路径;
根据所述路由路径对所述目标存储集群进行代理访问;
所述代理访问组件还用于获取代理访问异常时的异常响应码,在所述对应关系中匹配与所述异常响应码相匹配的重试次数;根据所述异常响应码相匹配的重试次数重新对所述目标存储集群进行代理访问,如果重试次数内均访问异常,则停止代理访问。
8.根据权利要求7所述的对象存储集群的代理访问系统,其特征在于,所述代理访问端还包括Redis集群以及Zookeeper集群;
所述Redis集群用于对所述路由规则以及映射关系进行缓存;还用于对小于指定大小的存储对象进行缓存;
所述代理访问组件用于通过访问缓存区查询所述路由规则以及映射关系,实现所述应用访问请求的路由路径匹配;还用于在所述目标访问对象小于指定大小时,访问缓存区实现代理访问;
所述代理访问组件还用于在所述路由规则发生更新时,对更新的路由规则进行热加载;对所述路由规则的更新记录进行保存,当接收到路由规则还原指令时,根据所述更新记录推送历史路由规则,实现路由规则的还原;
所述Zookeeper集群用于对存储集群提供的服务进行注册,获取客户端的应用访问请求,在已注册的服务中查询与所述应用访问请求相对应的服务IP和服务端口,并对所述服务IP以及所述服务端口进行缓存,根据所述服务IP以及服务端口与客户端建立长连接;
所述代理访问组件还用于采集客户端的访问指标以及存储集群的性能指标,并将所述访问指标以及所述性能指标保存至日志文件;将代理访问过程中的操作信息以日志形式保存至日志文件;将代理访问过程中的异常情况以错误码形式保存至日志文件;
所述代理访问组件还用于在所述目标存储集群发生故障时,自动路由操作至所述目标存储集群的备份集群进行代理访问。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492087.4A CN111885098B (zh) | 2020-06-03 | 2020-06-03 | 对象存储集群的代理访问方法、系统及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492087.4A CN111885098B (zh) | 2020-06-03 | 2020-06-03 | 对象存储集群的代理访问方法、系统及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111885098A true CN111885098A (zh) | 2020-11-03 |
CN111885098B CN111885098B (zh) | 2021-06-29 |
Family
ID=73154209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010492087.4A Active CN111885098B (zh) | 2020-06-03 | 2020-06-03 | 对象存储集群的代理访问方法、系统及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111885098B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631687A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种服务集群的配置方法、装置及设备 |
CN112737962A (zh) * | 2020-12-24 | 2021-04-30 | 平安科技(深圳)有限公司 | 存储服务请求的处理方法、装置、计算机设备及存储介质 |
CN113163016A (zh) * | 2021-05-12 | 2021-07-23 | 北京阳光云视科技有限公司 | 网络长连接服务集群化部署系统及控制流程 |
CN113590709A (zh) * | 2021-06-18 | 2021-11-02 | 浙江中控技术股份有限公司 | 工业数据库集群系统及其数据访问方法 |
CN113709259A (zh) * | 2021-10-29 | 2021-11-26 | 天聚地合(苏州)数据股份有限公司 | 对象的访问方法及服务系统 |
CN113992658A (zh) * | 2021-10-28 | 2022-01-28 | 科大讯飞股份有限公司 | 数据传输方法及相关装置、设备、系统和存储介质 |
CN114024901A (zh) * | 2022-01-05 | 2022-02-08 | 中邮消费金融有限公司 | 一种消息隔离转发方法及系统 |
CN114500379A (zh) * | 2022-02-18 | 2022-05-13 | 吉旗(成都)科技有限公司 | 报文的传输方法、装置、设备及存储介质 |
CN115150419A (zh) * | 2022-09-05 | 2022-10-04 | 杭州华卓信息科技有限公司 | 一种混合云对象存储的配置和访问方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082301A1 (en) * | 2011-03-08 | 2014-03-20 | Rackspace Us, Inc. | Massively scalable object storage for storing object replicas |
CN103888499A (zh) * | 2012-12-21 | 2014-06-25 | 中国科学院深圳先进技术研究院 | 一种分布式对象处理的方法及系统 |
CN107634853A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于对象存储的可定制化分布式缓存方法 |
US20190188102A1 (en) * | 2013-03-15 | 2019-06-20 | Cloudendure Ltd. | Method and system for data recovery in a cloud based computing environment utilizing object storage |
CN110825838A (zh) * | 2019-11-01 | 2020-02-21 | 国云科技股份有限公司 | 一种对象存储聚合系统及其聚合方法 |
CN111143417A (zh) * | 2019-12-27 | 2020-05-12 | 广东浪潮大数据研究有限公司 | 数据处理方法、装置、系统及Nginx服务器和介质 |
-
2020
- 2020-06-03 CN CN202010492087.4A patent/CN111885098B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082301A1 (en) * | 2011-03-08 | 2014-03-20 | Rackspace Us, Inc. | Massively scalable object storage for storing object replicas |
CN103888499A (zh) * | 2012-12-21 | 2014-06-25 | 中国科学院深圳先进技术研究院 | 一种分布式对象处理的方法及系统 |
US20190188102A1 (en) * | 2013-03-15 | 2019-06-20 | Cloudendure Ltd. | Method and system for data recovery in a cloud based computing environment utilizing object storage |
CN107634853A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于对象存储的可定制化分布式缓存方法 |
CN110825838A (zh) * | 2019-11-01 | 2020-02-21 | 国云科技股份有限公司 | 一种对象存储聚合系统及其聚合方法 |
CN111143417A (zh) * | 2019-12-27 | 2020-05-12 | 广东浪潮大数据研究有限公司 | 数据处理方法、装置、系统及Nginx服务器和介质 |
Non-Patent Citations (1)
Title |
---|
郑驰等: ""基于OpenStack的对象存储性能实验及研究"", 《微型机与应用》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112737962A (zh) * | 2020-12-24 | 2021-04-30 | 平安科技(深圳)有限公司 | 存储服务请求的处理方法、装置、计算机设备及存储介质 |
CN112631687A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种服务集群的配置方法、装置及设备 |
CN113163016A (zh) * | 2021-05-12 | 2021-07-23 | 北京阳光云视科技有限公司 | 网络长连接服务集群化部署系统及控制流程 |
CN113163016B (zh) * | 2021-05-12 | 2023-08-04 | 北京阳光云视科技有限公司 | 网络长连接服务集群化部署系统及控制流程 |
WO2022262169A1 (zh) * | 2021-06-18 | 2022-12-22 | 浙江中控技术股份有限公司 | 工业数据库集群系统及其数据访问方法 |
CN113590709A (zh) * | 2021-06-18 | 2021-11-02 | 浙江中控技术股份有限公司 | 工业数据库集群系统及其数据访问方法 |
CN113590709B (zh) * | 2021-06-18 | 2023-11-14 | 浙江中控技术股份有限公司 | 工业数据库集群系统及其数据访问方法 |
CN113992658A (zh) * | 2021-10-28 | 2022-01-28 | 科大讯飞股份有限公司 | 数据传输方法及相关装置、设备、系统和存储介质 |
CN113992658B (zh) * | 2021-10-28 | 2023-09-26 | 科大讯飞股份有限公司 | 数据传输方法及相关装置、设备、系统和存储介质 |
CN113709259A (zh) * | 2021-10-29 | 2021-11-26 | 天聚地合(苏州)数据股份有限公司 | 对象的访问方法及服务系统 |
CN114024901A (zh) * | 2022-01-05 | 2022-02-08 | 中邮消费金融有限公司 | 一种消息隔离转发方法及系统 |
CN114024901B (zh) * | 2022-01-05 | 2022-04-19 | 中邮消费金融有限公司 | 一种消息隔离转发方法及系统 |
CN114500379A (zh) * | 2022-02-18 | 2022-05-13 | 吉旗(成都)科技有限公司 | 报文的传输方法、装置、设备及存储介质 |
CN115150419A (zh) * | 2022-09-05 | 2022-10-04 | 杭州华卓信息科技有限公司 | 一种混合云对象存储的配置和访问方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111885098B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111885098B (zh) | 对象存储集群的代理访问方法、系统及计算机设备 | |
US9317384B2 (en) | Cache data processing using cache cluster with configurable modes | |
EP3352433B1 (en) | Node connection method and distributed computing system | |
US20070112812A1 (en) | System and method for writing data to a directory | |
US20070101021A1 (en) | Recovering a blade in scalable software blade architecture | |
US8572201B2 (en) | System and method for providing a directory service network | |
US20070101022A1 (en) | Sharing data in scalable software blade architecture | |
US11941267B2 (en) | Reseeding a mediator of a cross-site storage solution | |
US9390156B2 (en) | Distributed directory environment using clustered LDAP servers | |
US8478898B2 (en) | System and method for routing directory service operations in a directory service network | |
US20050193021A1 (en) | Method and apparatus for unified storage of data for storage area network systems and network attached storage systems | |
US11537619B1 (en) | Replica group modification in a distributed database | |
US9922031B2 (en) | System and method for efficient directory performance using non-persistent storage | |
US20040193681A1 (en) | System and method for providing naming service in a distributed processing system | |
US20160085638A1 (en) | Computer system and method of identifying a failure | |
US7058773B1 (en) | System and method for managing data in a distributed system | |
US11340964B2 (en) | Systems and methods for efficient management of advanced functions in software defined storage systems | |
CN111782428A (zh) | 数据调用系统以及方法 | |
US20240143620A1 (en) | Object access based on tracking of objects and replication policies | |
US20230083798A1 (en) | Maintaining metadata from a catalog in a repository to return to requests for the metadata | |
US11675668B2 (en) | Leveraging a cloud-based object storage to efficiently manage data from a failed backup operation | |
CN113904963B (zh) | 一种基于服务目录代理服务化和计分板方法的服务治理方法 | |
US11971902B1 (en) | Data retrieval latency management system | |
US11169728B2 (en) | Replication configuration for multiple heterogeneous data stores | |
US7543017B1 (en) | Cluster file system node failure file recovery by reconstructing file state |
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 |