Elasticsearch 多种跨机房灾备方案对比与实战解读

简介: 本文将会介绍几种 Elasticsearch 常见的灾备方案,同时提供了 Demo 案例方便大家动手体验。

1 引言

Elasticsearch 集群的高可用,保证服务的连续性是企业最关注的需求。通常当企业达到一定规模时,不管是在云上还是线下都会有多个机房做异地灾备,确保在某个机房不可用时,还能持续对外提供业务。本文将会介绍几种 Elasticsearch 常见的灾备方案,同时提供了 Demo 案例方便大家动手体验。

2 方案概要

方案 定期快照 跨机房部署集群 应用双写 借助消息队列实现双写 CCR 跨集群复制 极限网关
描述 定期将索引备份到外部存储,例如 S3,HDFS。备份的数据可以在备集群中恢复。 一个集群中的节点分布在不同的机房。 应用程序同时将数据写入两个集群。 应用程序先将数据写入消息队列,然后由下游的消费者消费并写入集群。 Elasticsearch 官方的跨集群复制功能,基于文档操作实现订阅复制。 写请求交给网关,网关实时写入主集群,然后异步写备集群。
优点 1.一致性高。2.成本低。3.即使主集群和备集群都崩溃,仍然通过快照将数据恢复到新集群中。 1.部署简单。2.成本低。3.一致性高。 1.应用端灵活可控,开发简单。 1.数据可靠性高,不易丢失。 1.一致性高。2.设置简单。3.延迟低。4.提供完善的 API ,可以监控同步进度。 1.无缝透明,应用程序无需任何调整。2.网关自动处理故障情况。3.随时可以进行主备切换。4.一致性高,通过校验任务确保数据完全一致。
缺点 1.数据不是实时备份,通过快照恢复时,延迟可能导致数据丢失。2.无法实时切换到备集群。 1.对网络带宽和延迟要求较高,仅适用于同城灾备。2.可能由于机房间网络中断造成脑裂问题。 1.一致性差。2.集群故障时数据会丢失。3.延迟高。 1.引入额外的消息队列组件,维护成本高,开发难度大。2.延迟高。 1.切换复杂,需要手动操作,并且切换的时候可能会丢数据。2.属于 Elastic Stack 的白金版(PLATINUM)付费功能,需要额外付费。3.从 Elasticsearch v6.7 版本开始才可以使用。4.集群之间拉取数据会增加额外的负载并影响磁盘和网络性能。

3、方案

CCR 跨集群复制

file

应用双写

file

借助消息队列实现双写

file

极限网关

file


相关文章:
Elasticsearch 多种跨机房灾备方案对比与实战解读

为者常成,行者常至