CN105554121A - 实现分布式缓存系统负载均衡的方法及系统 - Google Patents
实现分布式缓存系统负载均衡的方法及系统 Download PDFInfo
- Publication number
- CN105554121A CN105554121A CN201510956273.8A CN201510956273A CN105554121A CN 105554121 A CN105554121 A CN 105554121A CN 201510956273 A CN201510956273 A CN 201510956273A CN 105554121 A CN105554121 A CN 105554121A
- Authority
- CN
- China
- Prior art keywords
- stored
- server
- distributed cache
- data
- index
- 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.)
- Pending
Links
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种实现分布式缓存系统负载均衡的方法和一种实现分布式缓存系统负载均衡的系统,其中,所述方法包括:通过至少一个索引服务器中的任一索引服务器接收数据存储请求,所述数据存储请求中携带有待存储数据;判断所述待存储数据是否已缓存于分布式缓存系统中;根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器,其中,所述目标缓存服务器为所述分布式缓存系统中的至少两个分布式缓存服务器。通过本发明的技术方案,可以有效地实现分布式缓存系统的负载均衡,同时解决当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性和扩展性,从而提升用户体验。
Description
技术领域
本发明涉及数据存储技术领域,具体而言,涉及一种实现分布式缓存系统负载均衡的方法和实现分布式缓存系统负载均衡的系统。
背景技术
目前,在互联网应用中,为了改善用户浏览系统的速度,同时减少系统的访问压力,采用了分布式缓存的方式作缓冲,达到分担来自前端的访问请求,取得了良好的实际运营效果。但在运营的过程中也发现不少不足,随着分布式缓存服务器的不断增加,以下问题开始显现,并带来了困扰:
(1)多台分布式缓存服务器用来存储实际数据,其中,每台分布式缓存服务器存放数据总量的一个子集(采用分布算法:Key(键值)映射整数值,再根据已有server(服务器)数取模),然而随着分布式缓存服务器数量的增加,管理、维护的难度也随之增加;
(2)当进行分布式缓存服务器扩容时,已有数据需要进行大规模迁移,且同一时间内缓存数据命中低;
(3)当有分布式缓存服务器异常退出时,会影响前端的访问体验,甚至导致数据分布的重计算;
(4)虽然目前已有不少实现分布式缓存集群的中间件(提供系统软件和应用软件之间连接的软件,便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑),如Google的Memagent(Memcache(分布式的高速缓存系统)代理),但目前市面上这类中间件都需要指定Master(主)服务器和Backup(备份)服务器,一旦Master服务器当机,Backup服务器上的数据是无法同步回Master服务器上,存在缺陷。
因此,需要一种新的技术方案,可以有效地实现分布式缓存系统的负载均衡,同时解决当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性和扩展性,从而提升用户体验。
发明内容
本发明正是基于上述问题,提出了一种新的技术方案,可以有效地实现分布式缓存系统的负载均衡,同时解决当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性和扩展性,从而提升用户体验。
有鉴于此,本发明的一方面提出了一种实现分布式缓存系统负载均衡的方法,包括:通过至少一个索引服务器中的任一索引服务器接收数据存储请求,所述数据存储请求中携带有待存储数据;判断所述待存储数据是否已缓存于分布式缓存系统中;根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器,其中,所述目标缓存服务器为所述分布式缓存系统中的至少两个分布式缓存服务器。
在该技术方案中,当至少一个索引服务器中的任一索引服务器接收到数据存储请求时,根据对该数据存储请求中所携带的待存储数据是否已经存储于分布式缓存系统中的判断结果进一步确定是否通过该索引服务器将待存储数据分配到该分布式缓存系统的至少两个分布式缓存服务器(即目标缓存服务器)中,进而确定是否将该待存储数据分别存储到目标缓存服务器中,如此,可以有效地实现分布式缓存系统的负载均衡,且通过设置索引服务器(即前置机)当提供服务的分布式缓存服务器出现故障时,可以通过索引屏蔽掉故障服务器并切换到其他服务器,以不响应前端用户的使用体验,在故障服务器恢复后,索引服务器可以在空闲时通过索引为该故障服务器找回之前的数据进行恢复,即解决了现有技术中的当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性,从而提升了用户体验。
在上述技术方案中,优选地,所述根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器具体包括:当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中;当判定所述待存储数据已缓存于所述分布式缓存系统中时,拒绝所述数据存储请求。
在该技术方案中,当判定待存储数据之前未缓存在该分布式缓存系统中时,通过索引服务器为其分配目标缓存服务器,即该分布式缓存系统中的至少两个分布式缓存服务器,以完成数据存储;而当判定该分布式缓存系统中已经存在该待存储数据时,则拒绝该数据存储请求,终止数据存储过程,以节省分布式缓存系统的存储空间,以及降低系统功耗。
在上述任一技术方案中,优选地,所述当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中具体包括:根据所述分布式缓存系统中的所述至少两个分布式缓存服务器的总数和所述至少两个分布式缓存服务器中的每个分布式缓存服务器的存储属性确定所述目标缓存服务器;将所述待存储数据存储至所述目标缓存服务器中。
在该技术方案中,具体地根据分布式缓存系统中的至少两个分布式缓存服务器的总数以及每个分布式缓存服务器的存储属性确定数据存储请求中携带的待存储数据的目标缓存服务器,如此,通过综合考虑该分布式缓存系统中的至少两个分布式缓存服务器的具体数量及每个服务器的具体存储属性,可以更加有效地实现分布式缓存系统的负载均衡。
在上述任一技术方案中,优选地,所述存储属性包括:容量、内存剩余空间。
在该技术方案中,存储属性包括但不限于:每个分布式缓存服务器的容量及其内存剩余空间,如此,通过在分布式存储数据时考虑分布式缓存服务器的存储属性,如果出现当前选择中的目标缓存服务器的已使用内存容量接近最大值的情况,则可以从索引服务器中找到索引的起始结点(最老节点),然后将其删除淘汰,如此,可以有效地解决索引和内存容量之间的供需矛盾。
在上述任一技术方案中,优选地,在将所述待存储数据存储至所述目标缓存服务器之后,还包括:根据接收到的索引更新通知,将所述待存储数据的数据存储索引信息分别存储至所述至少一个索引服务器中的每个索引服务器的数据存储索引信息库中,以供根据更新后所述数据存储索引信息库获取已存储数据。
在该技术方案中,当完成数据存储后,可以根据接收到的索引更新通知,将该待存储数据的数据存储索引信息分别存储到每一个索引服务器的数据索引信息库中,以保证索引服务器之间的索引信息的一致性,进而提高索引服务器的可用性,避免当其中一个索引服务器故障时而无法继续提供索引服务,进而为用户通过索引服务器获取已存储数据的可靠性。
在上述任一技术方案中,优选地,在所述通过至少一个索引服务器中的任一索引服务器接收数据存储请求之后,还包括:检测所述数据存储请求是否接收完成;在检测到所述数据存储请求接收完成时,执行所述判断所述待存储数据是否已缓存于分布式缓存系统中的步骤,否则继续执行所述检测所述数据存储请求是否接收完成的步骤。
在该技术方案中,在检测到数据存储请求接收完成的情况下执行判断待存储数据是否已缓存在该分布式缓存系统中的步骤,可以有效地保证待存储数据的完整性,进而确保数据存储的有效性以及前端用户获取数据的使用体验。
根据本发明的另一方面还提出了一种实现分布式缓存系统负载均衡的系统,包括:接收模块,用于通过至少一个索引服务器中的任一索引服务器接收数据存储请求,所述数据存储请求中携带有待存储数据;判断模块,用于判断所述待存储数据是否已缓存于分布式缓存系统中;处理模块,用于根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器,其中,所述目标缓存服务器为所述分布式缓存系统中的至少两个分布式缓存服务器。
在该技术方案中,当至少一个索引服务器中的任一索引服务器接收到数据存储请求时,根据对该数据存储请求中所携带的待存储数据是否已经存储于分布式缓存系统中的判断结果进一步确定是否通过该索引服务器将待存储数据分配到该分布式缓存系统的至少两个分布式缓存服务器(即目标缓存服务器)中,进而确定是否将该待存储数据分别存储到目标缓存服务器中,如此,可以有效地实现分布式缓存系统的负载均衡,且通过设置索引服务器(即前置机)当提供服务的分布式缓存服务器出现故障时,可以通过索引屏蔽掉故障服务器并切换到其他服务器,以不响应前端用户的使用体验,在故障服务器恢复后,索引服务器可以在空闲时通过索引为该故障服务器找回之前的数据进行恢复,即解决了现有技术中的当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性,从而提升了用户体验。
在上述技术方案中,优选地,所述处理模块具体包括:分配存储模块,用于当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中;反馈模块,用于当判定所述待存储数据已缓存于所述分布式缓存系统中时,拒绝所述数据存储请求。
在该技术方案中,当判定待存储数据之前未缓存在该分布式缓存系统中时,通过索引服务器为其分配目标缓存服务器,即该分布式缓存系统中的至少两个分布式缓存服务器,以完成数据存储;而当判定该分布式缓存系统中已经存在该待存储数据时,则拒绝该数据存储请求,终止数据存储过程,以节省分布式缓存系统的存储空间,以及降低系统功耗。
在上述任一技术方案中,优选地,所述分配存储模块具体用于:根据所述分布式缓存系统中的所述至少两个分布式缓存服务器的总数和所述至少两个分布式缓存服务器中每个分布式缓存服务器的的存储属性确定所述目标缓存服务器;将所述待存储数据存储至所述目标缓存服务器中。
在该技术方案中,具体地根据分布式缓存系统中的至少两个分布式缓存服务器的总数以及每个分布式缓存服务器的存储属性确定数据存储请求中携带的待存储数据的目标缓存服务器,如此,通过综合考虑该分布式缓存系统中的至少两个分布式缓存服务器的具体数量及每个服务器的具体存储属性,可以更加有效地实现分布式缓存系统的负载均衡。
在上述任一技术方案中,优选地,所述存储属性包括:容量、内存剩余空间。
在该技术方案中,存储属性包括但不限于:每个分布式缓存服务器的容量及其内存剩余空间,如此,通过在分布式存储数据时考虑分布式缓存服务器的存储属性,如果出现当前选择中的目标缓存服务器的已使用内存容量接近最大值的情况,则可以从索引服务器中找到索引的起始结点(最老节点),然后将其删除淘汰,如此,可以有效地解决索引和内存容量之间的供需矛盾。
在上述任一技术方案中,优选地,还包括:更新模块,用于在将所述待存储数据存储至所述目标缓存服务器之后,根据接收到的索引更新通知,将所述待存储数据的数据存储索引信息分别存储至所述至少一个索引服务器中的每个索引服务器的数据存储索引信息库中,以供根据更新后所述数据存储索引信息库获取已存储数据。
在该技术方案中,当完成数据存储后,可以根据接收到的索引更新通知,将该待存储数据的数据存储索引信息分别存储到每一个索引服务器的数据索引信息库中,以保证索引服务器之间的索引信息的一致性,进而提高索引服务器的可用性,避免当其中一个索引服务器故障时而无法继续提供索引服务,进而为用户通过索引服务器获取已存储数据的可靠性。
在上述任一技术方案中,优选地,还包括:检测模块,用于在所述通过至少一个索引服务器中的任一索引服务器接收数据存储请求之后,检测所述数据存储请求是否接收完成;控制模块,用于在检测到所述数据存储请求接收完成时,控制执行所述判断所述待存储数据是否已缓存于分布式缓存系统中的步骤,否则控制继续执行所述检测所述数据存储请求是否接收完成的步骤。
在该技术方案中,在检测到数据存储请求接收完成的情况下执行判断待存储数据是否已缓存在该分布式缓存系统中的步骤,可以有效地保证待存储数据的完整性,进而确保数据存储的有效性以及前端用户获取数据的使用体验。
通过以上技术方案,可以有效地实现分布式缓存系统的负载均衡,同时解决当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性和扩展性,从而提升用户体验。
附图说明
图1示出了根据本发明的一个实施例的实现分布式缓存系统负载均衡的方法的流程示意图;
图2示出了根据本发明的一个实施例的分布式缓存系统的系统框图;
图3示出了根据本发明的一个实施例的通过前置机设置缓存数据的过程示意图;
图4示出了根据本发明的一个实施例的通过前置机获取缓存数据的过程示意图;
图5示出了根据本发明的一个实施例的实现分布式缓存系统负载均衡的系统的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的一个实施例的实现分布式缓存系统负载均衡的方法的流程示意图。
如图1所示,根据本发明的一个实施例的实现分布式缓存系统负载均衡的方法,包括:步骤102,通过至少一个索引服务器中的任一索引服务器接收数据存储请求,所述数据存储请求中携带有待存储数据;步骤104,判断所述待存储数据是否已缓存于分布式缓存系统中;步骤106,根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器,其中,所述目标缓存服务器为所述分布式缓存系统中的至少两个分布式缓存服务器。
在该技术方案中,当至少一个索引服务器中的任一索引服务器接收到数据存储请求时,根据对该数据存储请求中所携带的待存储数据是否已经存储于分布式缓存系统中的判断结果进一步确定是否通过该索引服务器将待存储数据分配到该分布式缓存系统的至少两个分布式缓存服务器(即目标缓存服务器)中,进而确定是否将该待存储数据分别存储到目标缓存服务器中,如此,可以有效地实现分布式缓存系统的负载均衡,且通过设置索引服务器(即前置机)当提供服务的分布式缓存服务器出现故障时,可以通过索引屏蔽掉故障服务器并切换到其他服务器,以不响应前端用户的使用体验,在故障服务器恢复后,索引服务器可以在空闲时通过索引为该故障服务器找回之前的数据进行恢复,即解决了现有技术中的当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性,从而提升了用户体验。
在上述技术方案中,优选地,所述步骤106具体包括:当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中;当判定所述待存储数据已缓存于所述分布式缓存系统中时,拒绝所述数据存储请求。
在该技术方案中,当判定待存储数据之前未缓存在该分布式缓存系统中时,通过索引服务器为其分配目标缓存服务器,即该分布式缓存系统中的至少两个分布式缓存服务器,以完成数据存储;而当判定该分布式缓存系统中已经存在该待存储数据时,则拒绝该数据存储请求,终止数据存储过程,以节省分布式缓存系统的存储空间,以及降低系统功耗。
在上述任一技术方案中,优选地,所述当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中具体包括:根据所述分布式缓存系统中的所述至少两个分布式缓存服务器的总数和所述至少两个分布式缓存服务器中的每个分布式缓存服务器的存储属性确定所述目标缓存服务器;将所述待存储数据存储至所述目标缓存服务器中。
在该技术方案中,具体地根据分布式缓存系统中的至少两个分布式缓存服务器的总数以及每个分布式缓存服务器的存储属性确定数据存储请求中携带的待存储数据的目标缓存服务器,如此,通过综合考虑该分布式缓存系统中的至少两个分布式缓存服务器的具体数量及每个服务器的具体存储属性,可以更加有效地实现分布式缓存系统的负载均衡。
在上述任一技术方案中,优选地,所述存储属性包括:容量、内存剩余空间。
在该技术方案中,存储属性包括但不限于:每个分布式缓存服务器的容量及其内存剩余空间,如此,通过在分布式存储数据时考虑分布式缓存服务器的存储属性,如果出现当前选择中的目标缓存服务器的已使用内存容量接近最大值的情况,则可以从索引服务器中找到索引的起始结点(最老节点),然后将其删除淘汰,如此,可以有效地解决索引和内存容量之间的供需矛盾。
在上述任一技术方案中,优选地,在将所述待存储数据存储至所述目标缓存服务器之后,还包括:根据接收到的索引更新通知,将所述待存储数据的数据存储索引信息分别存储至所述至少一个索引服务器中的每个索引服务器的数据存储索引信息库中,以供根据更新后所述数据存储索引信息库获取已存储数据。
在该技术方案中,当完成数据存储后,可以根据接收到的索引更新通知,将该待存储数据的数据存储索引信息分别存储到每一个索引服务器的数据索引信息库中,以保证索引服务器之间的索引信息的一致性,进而提高索引服务器的可用性,避免当其中一个索引服务器故障时而无法继续提供索引服务,进而为用户通过索引服务器获取已存储数据的可靠性。
另外,当需要对分布式缓存系统扩容时,即增加新的分布式缓存服务器时,只需要在索引服务器的数据索引信息库中增加一份索引数据,如此,不会对已存储的数据信息造成影响,且不存在扩容时的数据迁移问题,进一步降低了系统功耗和提高了系统的可靠性、稳定性。
在上述任一技术方案中,优选地,在所述通过至少一个索引服务器中的任一索引服务器接收数据存储请求之后,还包括:检测所述数据存储请求是否接收完成;在检测到所述数据存储请求接收完成时,执行所述判断所述待存储数据是否已缓存于分布式缓存系统中的步骤,否则继续执行所述检测所述数据存储请求是否接收完成的步骤。
在该技术方案中,在检测到数据存储请求接收完成的情况下执行判断待存储数据是否已缓存在该分布式缓存系统中的步骤,可以有效地保证待存储数据的完整性,进而确保数据存储的有效性以及前端用户获取数据的使用体验。
图2示出了根据本发明的一个实施例的分布式缓存系统的系统框图。
如图2所示,根据本发明的一个实施例的分布式缓存系统,通过前置机(或前置机集群)(至即少一个索引服务器)进行数据设置(存储)和获取,而不直接对分布式缓存服务器(集群)进行访问;其中,前置机通过索引实现对分布式缓存服务器的任务调度,设置数据时:前置机会把需要保存的数据(待存储数据)分布到不同的分布式缓存服务器的不同实例上(目标缓存服务器,至少两个分布式缓存服务器),同时记录到前置机本身的索引池(数据存储索引信息库)里面;获取数据时:前置机会根据Key值取到相应的索引,同时通过索引到分布式缓存服务器上去获取相应数据,设置数据和获取数据的详细过程如下:
如图3所示,根据本发明的一个实施例的通过前置机设置缓存数据的过程:(1)前端应用发起数据设置请求(即数据存储请求);(2)NetIO模块读取请求包,并判断请求包是否已经读取完整(即检测所述数据存储请求是否接收完成);(3)请求包读取完整后,NetIO模块通过Workpooll,选择一个Worker处理线程,将请求包放入线程对应的缓存队列,并唤醒Woker处理线程进行处理;(4)Worker处理线程判断当前设置数据是否有效,并判断Key是否已经存在索引库中,若是,需拒绝当前设置请求,否则,从目前有效的分布式缓存服务器中,随机选择存储入口(即判断所述待存储数据是否已缓存于分布式缓存系统中,并根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器);(5)如果当前选择中分布式缓存服务器的已使用内存容量接近最大值,那么从索引库中找到最老结点,淘汰之,如此,可以比较好的处理索引和内存容量之间的供需矛盾;(6)Woker将索引库更新信息保存在通知缓存队列中,待发送更新消息,通知到索引集群内其他索引服务器(即根据接收到的索引更新通知,将所述待存储数据的数据存储索引信息分别存储至所述至少一个索引服务器中的每个索引服务器的数据存储索引信息库中);(7)Worker处理线程根据获取到的分布式缓存服务器入口信息,获取到此分布式缓存的长链接,保存应用数据,若保存失败,需删除相应索引库里的记录信息;(8)Worker处理线程拼装设置响应信息,找到对应的前端应用连接入口,将响应包缓存到响应缓存队列;(9)NetIO模块将响应包发送至应用前端。
如图4所示,根据本发明的一个实施例的通过前置机获取缓存数据的过程:(1)前端应用发起数据读取请求;(2)NetIO模块读取请求包,并判断请求包是否已经读取完整,即检查数据;(3)请求包读取完整,NetIO模块通过WokerPool,选择一个Worker处理线程,将请求包放入线程对应的缓存队列,并唤醒Woker处理线程进行处理,即进行工作分派;(4)Worker处理线程首先判断Key是否在本地索引表中存在记录,若无则直接通知前端应用获取失败,另外,需判断索引是否已经超时,或对应的后端分布式缓存服务器是否当前有效,即处理请求;(5)Worker处理线程根据获取到的分布式缓存服务器入口信息,获取到此分布式缓存服务器的长连接,查询应用数据,若查询失败,需删除相应索引库中的信息,即检查索引;(6)Worker处理线程拼装获取响应信息,找到对应的前端应用连接入口,将响应包缓存到响应缓存队列,即读取数据;(7)NetIO模块将响应包发送至应用前端。
综上所述,由于前置机打破了传统分布式缓存需要Master机器的限制,前置机后的分布式缓存服务器群每个都是平等的,当其中某台出现故障,能很方便的通过前置机索引屏蔽掉故障服务器,不影响前端用户的体验。同时当故障机恢复后,前置机能够在空闲时通过索引找回之前的数据进行恢复。且以前置机给中心的分布式缓存系统具有很高的可用性、扩展性以及较好的性能,而且可以充分利用在线运营服务器上的空闲内存,从而建立面向缓存的云服务。
图5示出了根据本发明的一个实施例的实现分布式缓存系统负载均衡的系统的框图。
如图5所示,本发明的一个实施例的实现分布式缓存系统负载均衡的系统500,包括:接收模块502,用于通过至少一个索引服务器中的任一索引服务器接收数据存储请求,所述数据存储请求中携带有待存储数据;判断模块504,用于判断所述待存储数据是否已缓存于分布式缓存系统中;处理模块506,用于根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器,其中,所述目标缓存服务器为所述分布式缓存系统中的至少两个分布式缓存服务器。
在该技术方案中,当至少一个索引服务器中的任一索引服务器接收到数据存储请求时,根据对该数据存储请求中所携带的待存储数据是否已经存储于分布式缓存系统中的判断结果进一步确定是否通过该索引服务器将待存储数据分配到该分布式缓存系统的至少两个分布式缓存服务器(即目标缓存服务器)中,进而确定是否将该待存储数据分别存储到目标缓存服务器中,如此,可以有效地实现分布式缓存系统的负载均衡,且通过设置索引服务器(即前置机)当提供服务的分布式缓存服务器出现故障时,可以通过索引屏蔽掉故障服务器并切换到其他服务器,以不响应前端用户的使用体验,在故障服务器恢复后,索引服务器可以在空闲时通过索引为该故障服务器找回之前的数据进行恢复,即解决了现有技术中的当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性,从而提升了用户体验。
在上述技术方案中,优选地,所述处理模块506具体包括:分配存储模块5062,用于当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中;反馈模块5064,用于当判定所述待存储数据已缓存于所述分布式缓存系统中时,拒绝所述数据存储请求。
在该技术方案中,当判定待存储数据之前未缓存在该分布式缓存系统中时,通过索引服务器为其分配目标缓存服务器,即该分布式缓存系统中的至少两个分布式缓存服务器,以完成数据存储;而当判定该分布式缓存系统中已经存在该待存储数据时,则拒绝该数据存储请求,终止数据存储过程,以节省分布式缓存系统的存储空间,以及降低系统功耗。
在上述任一技术方案中,优选地,所述分配存储模块5062具体用于:根据所述分布式缓存系统中的所述至少两个分布式缓存服务器的总数和所述至少两个分布式缓存服务器中每个分布式缓存服务器的的存储属性确定所述目标缓存服务器;将所述待存储数据存储至所述目标缓存服务器中。
在该技术方案中,具体地根据分布式缓存系统中的至少两个分布式缓存服务器的总数以及每个分布式缓存服务器的存储属性确定数据存储请求中携带的待存储数据的目标缓存服务器,如此,通过综合考虑该分布式缓存系统中的至少两个分布式缓存服务器的具体数量及每个服务器的具体存储属性,可以更加有效地实现分布式缓存系统的负载均衡。
在上述任一技术方案中,优选地,所述存储属性包括:容量、内存剩余空间。
在该技术方案中,存储属性包括但不限于:每个分布式缓存服务器的容量及其内存剩余空间,如此,通过在分布式存储数据时考虑分布式缓存服务器的存储属性,如果出现当前选择中的目标缓存服务器的已使用内存容量接近最大值的情况,则可以从索引服务器中找到索引的起始结点(最老节点),然后将其删除淘汰,如此,可以有效地解决索引和内存容量之间的供需矛盾。
在上述任一技术方案中,优选地,还包括:更新模块508,用于在将所述待存储数据存储至所述目标缓存服务器之后,根据接收到的索引更新通知,将所述待存储数据的数据存储索引信息分别存储至所述至少一个索引服务器中的每个索引服务器的数据存储索引信息库中,以供根据更新后所述数据存储索引信息库获取已存储数据。
在该技术方案中,当完成数据存储后,可以根据接收到的索引更新通知,将该待存储数据的数据存储索引信息分别存储到每一个索引服务器的数据索引信息库中,以保证索引服务器之间的索引信息的一致性,进而提高索引服务器的可用性,避免当其中一个索引服务器故障时而无法继续提供索引服务,进而为用户通过索引服务器获取已存储数据的可靠性。
在上述任一技术方案中,优选地,还包括:检测模块510,用于在所述通过至少一个索引服务器中的任一索引服务器接收数据存储请求之后,检测所述数据存储请求是否接收完成;控制模块512,用于在检测到所述数据存储请求接收完成时,控制执行所述判断所述待存储数据是否已缓存于分布式缓存系统中的步骤,否则控制继续执行所述检测所述数据存储请求是否接收完成的步骤。
在该技术方案中,在检测到数据存储请求接收完成的情况下执行判断待存储数据是否已缓存在该分布式缓存系统中的步骤,可以有效地保证待存储数据的完整性,进而确保数据存储的有效性以及前端用户获取数据的使用体验。
以上结合附图详细说明了本发明的技术方案,可以有效地实现分布式缓存系统的负载均衡,同时解决当Master服务器故障而Backup服务器无法继续提供服务且Master服务器数据恢复困难的问题,提高分布式缓存系统的可用性和扩展性,从而提升用户体验。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种实现分布式缓存系统负载均衡的方法,其特征在于,包括:
通过至少一个索引服务器中的任一索引服务器接收数据存储请求,所述数据存储请求中携带有待存储数据;
判断所述待存储数据是否已缓存于分布式缓存系统中;
根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器,其中,所述目标缓存服务器为所述分布式缓存系统中的至少两个分布式缓存服务器。
2.根据权利要求1所述的实现分布式缓存系统负载均衡的方法,其特征在于,所述根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器具体包括:
当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中;
当判定所述待存储数据已缓存于所述分布式缓存系统中时,拒绝所述数据存储请求。
3.根据权利要求2所述的实现分布式缓存系统负载均衡的方法,其特征在于,所述当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中具体包括:
根据所述分布式缓存系统中的所述至少两个分布式缓存服务器的总数和所述至少两个分布式缓存服务器中的每个分布式缓存服务器的存储属性确定所述目标缓存服务器;
将所述待存储数据存储至所述目标缓存服务器中。
4.根据权利要求3所述的实现分布式缓存系统负载均衡的方法,其特征在于,所述存储属性包括:容量、内存剩余空间。
5.根据权利要求3所述的实现分布式缓存系统负载均衡的方法,其特征在于,在将所述待存储数据存储至所述目标缓存服务器之后,还包括:
根据接收到的索引更新通知,将所述待存储数据的数据存储索引信息分别存储至所述至少一个索引服务器中的每个索引服务器的数据存储索引信息库中,以供根据更新后所述数据存储索引信息库获取已存储数据。
6.根据权利要求1至5中任一项所述的实现分布式缓存系统负载均衡的方法,其特征在于,在所述通过至少一个索引服务器中的任一索引服务器接收数据存储请求之后,还包括:
检测所述数据存储请求是否接收完成;
在检测到所述数据存储请求接收完成时,执行所述判断所述待存储数据是否已缓存于分布式缓存系统中的步骤,否则继续执行所述检测所述数据存储请求是否接收完成的步骤。
7.一种实现分布式缓存系统负载均衡的系统,其特征在于,包括:
接收模块,用于通过至少一个索引服务器中的任一索引服务器接收数据存储请求,所述数据存储请求中携带有待存储数据;
判断模块,用于判断所述待存储数据是否已缓存于分布式缓存系统中;
处理模块,用于根据判断结果确定是否通过所述任一索引服务器为所述待存储数据分配目标缓存服务器,其中,所述目标缓存服务器为所述分布式缓存系统中的至少两个分布式缓存服务器。
8.根据权利要求7所述的实现分布式缓存系统负载均衡的系统,其特征在于,所述处理模块具体包括:
分配存储模块,用于当判定所述待存储数据未缓存于所述分布式缓存系统中时,通过所述任一索引服务器为所述待存储数据分配所述目标缓存服务器,以将所述待存储数据存储至所述目标缓存服务器中;
反馈模块,用于当判定所述待存储数据已缓存于所述分布式缓存系统中时,拒绝所述数据存储请求。
9.根据权利要求8所述的实现分布式缓存系统负载均衡的系统,其特征在于,所述分配存储模块具体用于:
根据所述分布式缓存系统中的所述至少两个分布式缓存服务器的总数和所述至少两个分布式缓存服务器中的每个分布式缓存服务器的存储属性确定所述目标缓存服务器;
将所述待存储数据存储至所述目标缓存服务器中。
10.根据权利要求9所述的实现分布式缓存系统负载均衡的系统,其特征在于,所述存储属性包括:容量、内存剩余空间。
11.根据权利要求9所述的实现分布式缓存系统负载均衡的系统,其特征在于,还包括:
更新模块,用于在将所述待存储数据存储至所述目标缓存服务器之后,根据接收到的索引更新通知,将所述待存储数据的数据存储索引信息分别存储至所述至少一个索引服务器中的每个索引服务器的数据存储索引信息库中,以供根据更新后所述数据存储索引信息库获取已存储数据。
12.根据权利要求7至11中任一项所述的实现分布式缓存系统负载均衡的系统,其特征在于,还包括:
检测模块,用于在所述通过至少一个索引服务器中的任一索引服务器接收数据存储请求之后,检测所述数据存储请求是否接收完成;
控制模块,用于在检测到所述数据存储请求接收完成时,控制执行所述判断所述待存储数据是否已缓存于分布式缓存系统中的步骤,否则控制继续执行所述检测所述数据存储请求是否接收完成的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510956273.8A CN105554121A (zh) | 2015-12-18 | 2015-12-18 | 实现分布式缓存系统负载均衡的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510956273.8A CN105554121A (zh) | 2015-12-18 | 2015-12-18 | 实现分布式缓存系统负载均衡的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105554121A true CN105554121A (zh) | 2016-05-04 |
Family
ID=55833053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510956273.8A Pending CN105554121A (zh) | 2015-12-18 | 2015-12-18 | 实现分布式缓存系统负载均衡的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105554121A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708975A (zh) * | 2016-12-06 | 2017-05-24 | 上海艾融软件股份有限公司 | 商品库存信息的处理方法及系统 |
CN107707588A (zh) * | 2016-08-09 | 2018-02-16 | 中国移动通信集团公司 | 一种数据处理方法和云教室系统 |
CN107707654A (zh) * | 2017-09-30 | 2018-02-16 | 中国联合网络通信集团有限公司 | 容器镜像数据的管理方法、装置及系统 |
CN109165078A (zh) * | 2018-07-12 | 2019-01-08 | 厦门中控智慧信息技术有限公司 | 一种虚拟分布式服务器及其访问方法 |
CN109254981A (zh) * | 2018-08-27 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式缓存系统的数据管理方法和装置 |
CN109933288A (zh) * | 2019-03-11 | 2019-06-25 | 北京安信易德科技有限公司 | 走时表分布式存储方法及装置 |
CN109936613A (zh) * | 2017-12-19 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 应用于服务器的容灾方法和装置 |
CN111193804A (zh) * | 2020-01-02 | 2020-05-22 | 深圳市网心科技有限公司 | 分布式存储方法及装置、网络节点及存储介质 |
CN111352577A (zh) * | 2018-12-24 | 2020-06-30 | 杭州海康威视系统技术有限公司 | 一种对象存储方法及装置 |
CN117614956A (zh) * | 2024-01-24 | 2024-02-27 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种分布式存储的网内缓存方法、系统以及储存介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753610A (zh) * | 2008-12-19 | 2010-06-23 | 华为技术有限公司 | 分布式网络构造方法、装置和系统以及任务处理方法 |
CN102833352A (zh) * | 2012-09-17 | 2012-12-19 | 深圳中兴网信科技有限公司 | 分布式缓存管理系统和实现分布式缓存管理的方法 |
US20130226955A1 (en) * | 2012-02-28 | 2013-08-29 | International Business Machines Corporation | Bi-temporal key value cache system |
-
2015
- 2015-12-18 CN CN201510956273.8A patent/CN105554121A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753610A (zh) * | 2008-12-19 | 2010-06-23 | 华为技术有限公司 | 分布式网络构造方法、装置和系统以及任务处理方法 |
US20130226955A1 (en) * | 2012-02-28 | 2013-08-29 | International Business Machines Corporation | Bi-temporal key value cache system |
CN102833352A (zh) * | 2012-09-17 | 2012-12-19 | 深圳中兴网信科技有限公司 | 分布式缓存管理系统和实现分布式缓存管理的方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107707588A (zh) * | 2016-08-09 | 2018-02-16 | 中国移动通信集团公司 | 一种数据处理方法和云教室系统 |
CN106708975B (zh) * | 2016-12-06 | 2019-10-15 | 上海艾融软件股份有限公司 | 商品库存信息的处理方法及系统 |
CN106708975A (zh) * | 2016-12-06 | 2017-05-24 | 上海艾融软件股份有限公司 | 商品库存信息的处理方法及系统 |
CN107707654A (zh) * | 2017-09-30 | 2018-02-16 | 中国联合网络通信集团有限公司 | 容器镜像数据的管理方法、装置及系统 |
CN107707654B (zh) * | 2017-09-30 | 2019-05-14 | 中国联合网络通信集团有限公司 | 容器镜像数据的管理方法、装置及系统 |
CN109936613A (zh) * | 2017-12-19 | 2019-06-25 | 北京京东尚科信息技术有限公司 | 应用于服务器的容灾方法和装置 |
CN109165078A (zh) * | 2018-07-12 | 2019-01-08 | 厦门中控智慧信息技术有限公司 | 一种虚拟分布式服务器及其访问方法 |
CN109165078B (zh) * | 2018-07-12 | 2020-12-04 | 厦门熵基科技有限公司 | 一种虚拟分布式服务器及其访问方法 |
CN109254981A (zh) * | 2018-08-27 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式缓存系统的数据管理方法和装置 |
CN109254981B (zh) * | 2018-08-27 | 2021-07-23 | 创新先进技术有限公司 | 一种分布式缓存系统的数据管理方法和装置 |
CN111352577A (zh) * | 2018-12-24 | 2020-06-30 | 杭州海康威视系统技术有限公司 | 一种对象存储方法及装置 |
CN111352577B (zh) * | 2018-12-24 | 2023-03-14 | 杭州海康威视系统技术有限公司 | 一种对象存储方法及装置 |
CN109933288A (zh) * | 2019-03-11 | 2019-06-25 | 北京安信易德科技有限公司 | 走时表分布式存储方法及装置 |
CN111193804A (zh) * | 2020-01-02 | 2020-05-22 | 深圳市网心科技有限公司 | 分布式存储方法及装置、网络节点及存储介质 |
CN111193804B (zh) * | 2020-01-02 | 2022-09-09 | 深圳市网心科技有限公司 | 分布式存储方法及装置、网络节点及存储介质 |
CN117614956A (zh) * | 2024-01-24 | 2024-02-27 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种分布式存储的网内缓存方法、系统以及储存介质 |
CN117614956B (zh) * | 2024-01-24 | 2024-03-29 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种分布式存储的网内缓存方法、系统以及储存介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105554121A (zh) | 实现分布式缓存系统负载均衡的方法及系统 | |
US20190036703A1 (en) | Shard groups for efficient updates of, and access to, distributed metadata in an object storage system | |
CN104331492B (zh) | 一种缓存多实例数据的方法及装置 | |
CN103312624B (zh) | 一种消息队列服务系统和方法 | |
CN113010496B (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
US20060259525A1 (en) | Recovery method using extendible hashing-based cluster logs in shared-nothing spatial database cluster | |
CN104219235B (zh) | 一种分布式交易请求方法及装置 | |
CN103138912B (zh) | 数据同步方法及系统 | |
CN102724314B (zh) | 一种基于元数据管理的分布式缓存客户端 | |
CN104050250A (zh) | 一种分布式键-值查询方法和查询引擎系统 | |
CN102833352A (zh) | 分布式缓存管理系统和实现分布式缓存管理的方法 | |
CN101984632A (zh) | 一种分布式缓存系统中负荷分配方法、装置及服务器 | |
CN102710763B (zh) | 一种分布式缓存池化、分片及故障转移的方法及系统 | |
CN103905530A (zh) | 一种高性能全局负载均衡的分布式数据库数据路由方法 | |
CN105159845A (zh) | 存储器读取方法 | |
CN103631894A (zh) | 一种基于hdfs的动态副本管理方法 | |
CN102148850A (zh) | 一种集群系统的业务处理方法及集群系统 | |
CN103944993A (zh) | 百万级用户同时在线移动平台服务器架构 | |
CN104754000A (zh) | 一种负载均衡方法及系统 | |
CN111176888B (zh) | 云存储的容灾方法、装置及系统 | |
CN106227464B (zh) | 一种双层冗余存储系统及其数据写入、读取及恢复方法 | |
CN104967873A (zh) | 流媒体直播调度方法、系统和调度服务器 | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
CN105069152A (zh) | 数据处理方法及装置 | |
CN110740155B (zh) | 分布式系统中的请求处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160504 |