[发明专利]一种实现Apache Solr读写分离的方法和装置有效
申请号: | 201810573076.1 | 申请日: | 2018-06-06 |
公开(公告)号: | CN108763572B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 何小成;王晓斌;黄三伟 | 申请(专利权)人: | 湖南蚁坊软件股份有限公司 |
主分类号: | G06F16/33 | 分类号: | G06F16/33;G06F9/455;G06F9/50 |
代理公司: | 长沙心智力知识产权代理事务所(普通合伙) 43233 | 代理人: | 谢如意 |
地址: | 410013 湖南省长沙市高新区*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 apache solr 读写 分离 方法 装置 | ||
本申请涉及一种实现Apache Solr读写分离方法、装置、计算机设备和存储介质。所述方法包括:接收持久化程序的数据写入请求,将数据写入至写入集群和快照集群中;接收Apache Solr客户端的搜索请求,从读取集群和快照集群中搜索数据;接收持久化程序发送的段合并指令,对写入集群中的数据执行段合并操作;接收持久化程序发送的同步指令,从写入集群的数据目录中增量加载索引文件到读取集群的堆外内存中;接收持久化程序发送的数据清理指令,清理快照集群中已同步完毕的过期数据。采用本方法能够将读操作和写操作分离开来,避免形成对系统资源进行竞争的局面,保证了服务器的正常运行,在数据同步前完成段合并操作,避免在同步时进行段合并而造成系统崩溃。
技术领域
本申请涉及计算技术领域,特别是涉及一种实现Apache Solr读写分离的方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了Apache Solr技术,Apache Solr是一款功能强大的企业级搜索引擎,它基于Lucene实现,支持近实时的全文搜索,它具有“段合并”的机制,当写入的数据段数量达到设定的阙值时,就会触发“段合并”,将多个数据量较小的段合并到一个段中。在亿级数据量的高并发写入时,Apache Solr会频繁触发“段合并”,而它在“段合并”时会持有写入锁,影响实时写入速度,并且有大量的磁盘IO操作,且由于搜索请求产生大量的读操作,而读操作会与写操作抢占系统资源,导致服务器出现崩溃的情况。
发明内容
基于此,有必要针对上述读写操作竞争导致服务器崩溃的问题,提供一种能实现读操作和写操作相互隔离,以保证服务器正常运转的Apache Solr读写分离的方法、装置、计算机设备和存储介质。
一种实现Apache Solr读写分离的方法,所述方法包括:
接收持久化程序的数据写入请求,根据所述数据写入请求将数据写入至写入集群和快照集群中;
接收Apache Solr客户端的搜索请求,根据所述搜索请求从读取集群和快照集群中搜索数据;
接收持久化程序发送的段合并指令,并根据所述段合并指令对写入集群中的数据执行段合并操作;
接收所述段合并指令并根据所述段合并指令执行段合并操作后,接收持久化程序发送的同步指令,根据所述同步指令从写入集群的数据目录中增量加载索引文件到读取集群的堆外内存中;
接收所述同步指令并根据所述同步指令执行同步操作后,接收持久化程序发送的数据清理指令,根据所述数据清理指令清理快照集群中已同步完毕的过期数据。
在其中一个实施例中,在所述接收持久化程序的数据写入请求,根据所述数据写入请求将数据写入至写入集群和快照集群中之前还包括:
采用docker容器化部署将Apache Solr系统分别部署到写入集群和读取集群中;
采用单独部署的方式将Apache Solr系统部署到快照集群中。
在其中一个实施例中,所述写入集群接收数据的写入,实现数据的持久化存储;
所述读取集群通过堆外内存存储索引对外提供搜索服务;
所述快照集群采用堆外内存存储索引,接收数据写入,并对外提供搜索服务。
在其中一个实施例中,所述接收持久化程序发送的同步指令,根据所述同步指令从写入集群的数据目录中增量加载索引文件到读取集群的堆外内存中包括:
接收持久化程序发送的同步指令;
根据所述同步指令预设同步时间;
根据所述同步时间进行数据同步,将该段时间内写入的数据从写入集群增量加载到读取集群的堆外内存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南蚁坊软件股份有限公司,未经湖南蚁坊软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810573076.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种作业地图更新方法
- 下一篇:一种基于机器学习的OLAP引擎路由方法及系统