Java 实现 Elasticsearch2.X 数据备份及还原(一)

本文介绍了如何使用Java来实现Elasticsearch2.X的数据备份,通过封装ES操作命令为HTTP请求,并利用CloseableHttpClient执行。文章详细阐述了创建仓库快照、创建快照备份的步骤,并在配置文件中设置了快照路径。最后,提供了测试代码并验证了备份成功的事实。下篇将讨论数据的还原过程。
摘要由CSDN通过智能技术生成

前几天,领导要求在现有系统上增加个数据(ES及MySqlDB)备份及还原功能,仔细想想DB备份常见,可直接java运行时执行mysqldump命令就行了,那么,Elasticsearch数据备份常见是使用curl工具执行指令,是不是也可以用java来代替操作呢?

不再犹豫--Beyond,直接开搞,在开搞之前,来复习有关ES操作的几个简单指令:

1、获取快照:curl -XPUT 'http://ip:port/_snapshot/reponame',reponame仓库快照名称,可用于判断仓库快照是否存在;

2、创建仓库快照 :curl -XPUT 'http://ip:port/_snapshot/reponame'

3、创建快照(备份):curl -XPUT 'http://ip:port/_snapshot/reponame/snapshot_name1?wait_for_completion=true' ,wait_for_completion=true 表示等待创建完成后返回;

另外,我们还需要在es服务端的配置文件中配置快照路径path.repo,如下图配置:

好了,熟悉以上几个指令后,有没有发现,其实它们就是一些http请求指令,我们只要发给ES服务端处理就行。

这里,我们将es的操作命令封装成http请求,再使用CloseableHttpClient的execute()方法来执行HttpGet请求提交到ES服务器,通过解析返回信息判断处理结果。废话不多说,直接上代码:

/**
 * 判断快照仓库是否存在
 *
 * @param repoName 仓库快照
 * @return
 * @throws Exception
 */
public boolean isSnapshotRepoExists(String repoName) throws Exception {
    CloseableHttpClient client = HttpUtil.g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值