分类: 数据库开发技术
2022-12-08 10:04:41
众所周知单个机房在出现不可抗拒的问题(如断电、断网等因素)时,会导致无法正常提供服务,会对业务造成潜在的损失。所以在协同办公领域,一种可以基于同城或异地多活机制的高可用设计,在保障数据一致性的同时,能够{BANNED}最佳大程度降低由于机房的仅单点可用所导致的潜在高可用问题,{BANNED}最佳大程度上保障业务的用户体验,降低单点问题对业务造成的潜在损失显得尤为重要。
同城双活,对于生产的高可用保障,重大的意义和价值是不可言喻的。表面上同城双活只是简单的部署了一套生产环境而已,但是在架构上,这个改变的影响是巨大的,无状态应用的高可用管理、请求流量的管理、版本发布的管理、网络架构的管理等,其提升的架构复杂度巨大。
结合真实的协同办公产品:京办(为北京市政府提供协同办公服务的综合性平台)生产环境面对的复杂的政务网络以及京办同城双活架构演进的案例,给大家介绍下京办持续改进、分阶段演进过程中的一些思考和实践经验的总结。本文仅针对ES集群在跨机房同步过程中的方案和经验进行介绍和总结。
?
?
Logstash分为三个部分input 、filter、ouput:
1. 对于T时刻的数据,先使用Logstash将T以前的所有数据迁移到有孚机房京东云ES,假设用时?T
2. 对于T到T+?T的增量数据,再次使用logstash将数据导入到有孚机房京东云的ES集群
3. 重复上述步骤2,直到?T足够小,此时将业务切换到华为云,{BANNED}最佳后完成新增数据的迁移
适用范围:ES的数据中带有时间戳或者其他能够区分新旧数据的标签
?
1) 源码下载直接解压安装包,开箱即用
2)修改对内存使用,logstash默认的堆内存是1G,根据ECS集群选择合适的内存,可以加快集群数据的迁移效率。
?
3. 迁移索引
Logstash会帮助用户自动创建索引,但是自动创建的索引和用户本身的索引会有些许差异,导致{BANNED}最佳终数据的搜索格式不一致,一般索引需要手动创建,保证索引的数据完全一致。
以下提供创建索引的python脚本,用户可以使用该脚本创建需要的索引。
create_mapping.py文件是同步索引的python脚本,config.yaml是集群地址配置文件。
注:使用该脚本需要安装相关依赖
yum install -y PyYAML
yum install -y python-requests
拷贝以下代码保存为 create_mapping.py:
import yaml import requests import json import getopt import sys