在构建云原生应用的过程中,对于技术组件的云化选择是非常重要的。
1. 简介
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
2. 迁移原理
快照适用场景:
-
离线迁移;
-
源端数据量较大(GB、TB、PB级别)的场景;
-
同账号下,同区域或跨区域快照数据迁移的场景;
Logstash适用场景:
-
在线迁移,需要开启白名单;
-
迁移全量或同步增量数据,对实时性要求不高的场景;
-
仅对查询结果进行迁移的场景;
-
需对待迁移数据进行过滤的场景;
-
版本跨度较大的数据迁移场景,例如5.x迁移到6.x或7.x;
elasticsearch-migration(elasticsearch-exporter)适用场景:
-
在线迁移,需要开启白名单;
-
开源工具,安装简单,解压即可使用;
-
可以部分跨版本;
elasticsearch-dump适用场景:
- 数据量较小的场景,需要开启白名单。
reindex适用场景:
- 慢,需要开启白名单。
3. 迁移方案
-
搭建目标环境
-
快照备份索引
-
目标集群重建