一种分布式存储方法、服务器及客户端技术

技术编号:23932090 阅读:37 留言:0更新日期:2020-04-25 01:50
本申请提供一种分布式存储方法、服务器及客户端。该存储方法包括:服务器接收客户端发送的写请求,其中,所述写请求由客户端通过第一负载均衡策略发送,所述写请求包括待写入的目标数据;所述服务器响应所述客户端发送的所述写请求,根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘。本申请实施例通过第一负载均衡策略和第二负载均衡策略,实现写入性能随服务节点数量线性扩展,并且避免了merge对写性能的影响,从而提高了服务节点性能的稳定性。

A distributed storage method, server and client

【技术实现步骤摘要】
一种分布式存储方法、服务器及客户端
本申请涉及分布式存储
,具体而言,涉及一种分布式存储方法、服务器及客户端。
技术介绍
随着互联网大数据时代的来临,人类面临着前所未有的信息过载问题,对海量数据的存储和检索需求成为困扰人们的难题。基于倒排索引存储方案是目前业界公认的最强大、最高效的,所以基于倒排索引的检索引擎基本成为了业界公认的标准,例如比较成熟的开源组件有ElasticSearch、Solr等。在当前信息爆炸的时代,现有的基于倒排索引的检索引擎随着索引数据量越来越大,会导致服务节点的性能不稳定的问题。
技术实现思路
本申请实施例的目的在于提供一种分布式存储方法服务器及客户端,用以解决现有技术中当有大量的索引数据时,服务节点的性能不稳定的问题。第一方面,本申请实施例提供一种分布式存储系统,包括:至少一个客户端和多个服务器;所述客户端用于:通过第一负载均衡策略向所述多个服务器中的一个发送写请求,所述写请求包括待写入的目标数据;所述服务器用于:响应所述客户端发送的所述写请求,通过第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘。本申请实施例通过第一负载均衡策略和第二负载均衡策略,实现写入性能随服务节点数量线性扩展,并且避免了merge对写性能的影响,从而提高了服务节点性能的稳定性。进一步地,所述服务器的磁盘中存储有一个索引的一个主分片和/或副本分片;所述服务器用于:通过第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘,包括:通过所述第二负载均衡策略确定存储所述目标数据的目标磁盘;将所述目标数据写入所述目标磁盘存储的索引的主分片。本申请实施例通过第二负载均衡策略,使得数据能够均匀的写入到服务器中的各个磁盘中。进一步地,一个索引的主分片的个数等于所述多个服务器的磁盘总数,一个索引的不同主分片存储在不同的磁盘上。提高了服务器中磁盘的利用率。进一步地,所述服务器还用于:若当前用于存储新数据的第一索引的存储容量达到预设阈值,则创建第二索引的主分片,所述第二索引为替换所述第一索引作为用于存储新数据的索引。本申请实施例通过固定容量自动分区机制,排除了merge对写性能的影响,从而提高了写性能的稳定性。进一步地,所述客户端用于:通过第一负载均衡策略向所述多个服务器中的一个发送写请求,包括:所述客户端通过轮询算法向所述多个服务器中的一个发送写请求。通过轮询算法使得多个服务器共同分担数据写入的压力,避免的客户端到服务端之间存在瓶颈的问题。进一步地,所述服务器用于:通过第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘,包括:通过所述第二负载均衡策略确定存储所述目标数据的目标磁盘;将所述目标数据存入缓存区;通过flush方式将所述目标数据从所述缓存区写入所述目标磁盘。本申请实施例通过将目标数据存储缓存区,然后从缓存区将目标数据flush到目标磁盘,减少了服务器的IO次数。进一步地,所述服务器还用于:在将所述目标数据写入所述缓存区时,将所述目标数据写入事务日志区。防止服务器意外宕机造成缓存区数据丢失。进一步地,所述服务器还用于:当所述服务器由异常宕机到恢复正常工作时,通过所述事务日志区中恢复数据。保证了数据的安全性。第二方面,本申请实施例提供一种分布式存储方法,包括:客户端获得待写入的目标数据;所述客户端通过第一负载均衡策略向多个服务器中的一个发送写请求,所述写请求包括所述目标数据。通过第一负载均衡策略使得多个服务器共同分担写数据的压力,提高写入性能。进一步地,所述客户端通过第一负载均衡策略向多个服务器中的一个发送写请求,包括:所述客户端通过轮询算法向所述多个服务器中的一个发送写请求。第三方面,本申请实施例提供一种分布式存储方法,包括:服务器接收客户端发送的写请求,其中,所述写请求由客户端通过第一负载均衡策略发送,所述写请求包括待写入的目标数据;所述服务器响应所述客户端发送的所述写请求,根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘。本申请实施例通过第二负载均衡策略能够将目标数据均匀的存储在服务器内的各个磁盘上。进一步地,所述服务器的磁盘中存储有一个索引的一个主分片和/或副本分片;所述通过第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘,包括:通过所述第二负载均衡策略确定存储所述目标数据的目标磁盘;将所述目标数据写入所述目标磁盘存储的索引的主分片。进一步地,一个索引的主分片的个数等于所述多个服务器的磁盘总数,一个索引的不同主分片存储在不同的磁盘上。提高了服务器中磁盘的利用率。进一步地,所述方法还包括:若当前用于存储新数据的第一索引的存储容量达到预设阈值,则创建第二索引的主分片,所述第二索引为替换所述第一索引的用于存储新数据的索引。本申请实施例通过固定容量自动分区机制,排除了merge的影响,避免单独的分区过大,致使merge影响写入稳定性。进一步地,所述根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘,包括:所述服务器采用轮询算法将所述目标数据写入多个磁盘中的一个磁盘。进一步地,所述通过第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘,包括:通过所述第二负载均衡策略确定存储所述目标数据的目标磁盘;将所述目标数据存入缓存区;通过flush方式将所述目标数据从所述缓存区写入所述目标磁盘。本申请实施例通过先将目标数据存储缓存区,然后在flush到磁盘中,减少了服务器的IO次数。进一步地,所述方法还包括:在将所述目标数据写入所述缓存区时,将所述目标数据写入事务日志区。保证了数据的一致性和高可用性。进一步地,所述方法还包括:当所述服务器由异常宕机到恢复正常工作时,通过所述事务日志区中恢复数据。保证了数据的一致性和高可用性。第四方面,本申请实施例提供一种客户端,包括:数据获得模块,用于获得待写入的目标数据;请求发送模块,用于通过第一负载均衡策略向多个服务器中的一个发送写请求,所述写请求包括所述目标数据。第五方面,本申请实施例提供一种服务器,包括:请求接收模块,用于接收客户端发送的写请求,其中,所述写请求由客户端通过第一负载均衡策略发送,所述写请求包括待写入的目标数据;数据写入模块,用于响应所述客户端发送的所述写请求,根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘。第六方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第二方面或第三方面的方法。第七方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第二方面或第三方面的方法。本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明本文档来自技高网...

【技术保护点】
1.一种分布式存储方法,其特征在于,包括:/n服务器接收客户端发送的写请求,其中,所述写请求由客户端通过第一负载均衡策略发送,所述写请求包括待写入的目标数据;/n所述服务器响应所述客户端发送的所述写请求,根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘。/n

【技术特征摘要】
1.一种分布式存储方法,其特征在于,包括:
服务器接收客户端发送的写请求,其中,所述写请求由客户端通过第一负载均衡策略发送,所述写请求包括待写入的目标数据;
所述服务器响应所述客户端发送的所述写请求,根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘。


2.根据权利要求1所述的方法,其特征在于,所述服务器的磁盘中存储有一个索引的一个主分片和/或副本分片;
所述根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘,包括:
通过所述第二负载均衡策略确定存储所述目标数据的目标磁盘;
将所述目标数据写入所述目标磁盘存储的索引的主分片。


3.根据权利要求2所述的方法,其特征在于,一个索引的主分片的个数等于多个服务器的磁盘总数,一个索引的不同主分片存储在不同的磁盘上。


4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
若当前用于存储新数据的第一索引的存储容量达到预设阈值,则创建第二索引的主分片,所述第二索引为替换所述第一索引的用于存储新数据的索引。


5.根据权利要求1所述的方法,其特征在于,所述根据第二负载均衡策略将所述目标数据写入多个磁盘中的一个磁盘,包括:
通过所述第二负载均衡策略确定存储所述目...

【专利技术属性】
技术研发人员:丁继强郭庆谢莹莹于宏亮
申请(专利权)人:曙光信息产业股份有限公司曙光信息产业江苏有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1