Elasticsearch 集群》系列,共包含以下文章:

  • 1️⃣ 冷热集群架构
  • 2️⃣ 合适的锅炒合适的菜:性能与成本平衡原理公式解析
  • 3️⃣ ILM(Index Lifecycle Management)策略详解
  • 4️⃣ Elasticsearch 跨机房部署
  • 5️⃣ 快照与恢复功能详解
  • 6️⃣ Elasticsearch 快照恢复 API 参数详解
  • 7️⃣ 安全地删除快照仓库、快照
  • 8️⃣ 快照生命周期管理 SLM(理论篇)
  • 9️⃣ 快照生命周期管理 SLM(实战篇)
  • 🔟 跨集群检索(Cross-Cluster Search)

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!

Elasticsearch 跨机房部署

  • 1.关键因素考量
    • 1.1 网络因素
    • 1.2 集群配置
    • 1.3 硬件与架构
    • 1.4 性能优化
    • 1.5 容灾与恢复
    • 1.6 监控与运维
    • 1.7 成本考量
  • 2.跨机房部署实际案例:电商平台全球搜索服务
    • 2.1 业务背景
    • 2.2 集群架构设计
      • 2.2.1 机房布局
      • 2.2.2 关键配置
      • 2.2.3 索引策略
      • 2.2.4 跨集群复制(CCR)配置
    • 2.3 实际运行效果
      • 2.3.1 性能指标
      • 2.3.2 故障处理实例
    • 2.4 经验总结

1.关键因素考量

在跨机房和跨机架部署 Elasticsearch 时,需要考虑以下关键因素以确保集群的 稳定性性能可靠性

1.1 网络因素

  • 网络延迟:机房之间的网络延迟应尽可能低(建议 <10ms< 10ms<10ms)。
  • 带宽容量:确保有足够带宽处理节点间通信和数据传输。
  • 网络稳定性:避免频繁的网络抖动和中断。
  • 跨机房专线:考虑使用专用网络连接而非公共互联网。

1.2 集群配置

  • 分片分配感知:配置 cluster.routing.allocation.awareness.attributes 实现机架/机房感知。
  • 副本策略:确保每个分片的副本分布在不同的机架/机房。
  • 最小主节点数:设置 discovery.zen.minimum_master_nodes 防止脑裂(通常为 (master节点数/2)+1 )。

1.3 硬件与架构

  • 机架/机房标记:为节点配置明确的机架/机房属性(如 node.attr.rack_id)。
  • 主节点分布:将主合格节点均匀分布在不同的机架/机房。
  • 负载均衡:确保数据节点在各机架/机房间均衡分布。

1.4 性能优化

  • GC 调优:因跨机房通信增加延迟,需优化垃圾回收设置。
  • 索引刷新间隔:可适当增加 refresh_interval 减少频繁刷新。
  • 批量操作:增加批量操作大小以减少跨机房请求次数。

1.5 容灾与恢复

  • 快照策略:定期备份到异地机房。
  • 故障转移测试:定期模拟机房故障测试恢复流程。
  • 跨机房复制:考虑使用 CCR(跨集群复制)实现异地容灾。

1.6 监控与运维

  • 监控网络指标:密切监控跨机房延迟、丢包率等。
  • 日志集中收集:将各机房日志集中到统一位置分析。
  • 运维工具:确保运维工具能跨机房操作。

1.7 成本考量

  • 带宽成本:评估跨机房数据传输成本。
  • 硬件成本:考虑是否需要增加副本数提高容错能力。
  • 维护成本:跨机房部署增加的运维复杂度。

通过综合考虑这些因素,可以构建一个既具备高可用性又能保持良好性能的跨机房 Elasticsearch 集群。

2.跨机房部署实际案例:电商平台全球搜索服务

2.1 业务背景

某大型跨境电商平台需要为其全球用户提供商品搜索服务,要求:

  • 1️⃣ 亚洲、欧洲、美洲用户访问延迟均低于 200ms200ms200ms
  • 2️⃣ 单个机房故障不影响搜索服务可用性。
  • 3️⃣ 支持跨地区商品数据实时搜索。

2.2 集群架构设计

2.2.1 机房布局

[北京机房] - 主数据中心├─ 机架A (10个数据节点)├─ 机架B (10个数据节点)└─ 机架C (3个主节点 + 2个协调节点)[法兰克福机房] - 欧洲灾备中心├─ 机架A (5个数据节点)└─ 机架B (3个主节点 + 2个协调节点)[弗吉尼亚机房] - 美洲灾备中心├─ 机架A (5个数据节点)└─ 机架B (3个主节点 + 2个协调节点)

2.2.2 关键配置

elasticsearch.yml 部分配置:

# 北京节点配置示例
cluster.name: global-ecommerce-search
node.attr.zone: bj
node.attr.rack: rack_a  # 或rack_b/rack_c
discovery.seed_hosts: ["bj-es01:9300", "fra-es01:9300", "vir-es01:9300"]
cluster.initial_master_nodes: ["bj-master01", "bj-master02", "fra-master01"]

跨机房路由设置:

PUT _cluster/settings
{"persistent": {"cluster.routing.allocation.awareness.attributes": "zone,rack","cluster.routing.allocation.awareness.force.zone.values": "bj,fra,vir","cluster.remote.bj.seeds": "bj-es01:9300","cluster.remote.fra.seeds": "fra-es01:9300","cluster.remote.vir.seeds": "vir-es01:9300"}
}

2.2.3 索引策略

商品索引配置:

PUT products
{"settings": {"number_of_shards": 12,"number_of_replicas": 2,"auto_expand_replicas": "0-1","routing.allocation.include.zone": "bj,fra,vir"},"mappings": {...}
}

2.2.4 跨集群复制(CCR)配置

PUT _ccr/auto_follow/global_products
{"remote_cluster": "bj","leader_index_patterns": ["products"],"follow_index_pattern": "{{leader_index}}-follower"
}

2.3 实际运行效果

2.3.1 性能指标

指标北京本地访问欧洲跨机房访问美洲跨机房访问
平均查询延迟45ms45ms45ms120ms120ms120ms150ms150ms150ms
索引吞吐量12,00012,00012,000 docs/s8,0008,0008,000 docs/s7,5007,5007,500 docs/s
故障转移时间-28s28s28s32s32s32s

2.3.2 故障处理实例

事件:❌ 2023 年北京机房网络中断 15 分钟。

系统响应

  • 自动将流量切换到 法兰克福 机房。
  • 协调节点自动将写入请求路由到 弗吉尼亚 机房。
  • 网络恢复后自动同步数据差异。
  • 用户感知到的服务中断时间为 323232 秒。

2.4 经验总结

  • 主节点分布:保持奇数个主节点且分布在多个机房(采用 3-2-2 分布)。
  • 数据冷热分离:将热数据主要存放在北京机房,其他机房存放温数据。
  • 动态调整:根据时区自动调整各机房副本数(亚洲白天增加北京副本)。
  • 监控重点
    • 跨机房网络延迟(GET _nodes/stats/transport
    • 分片同步状态(GET _cat/recovery?v
    • 跨集群复制延迟(GET _ccr/stats

这个方案成功支持了平台日均 5 亿次搜索请求,在双11大促期间承受了 3 倍流量增长,同时保证了 99.99%99.99\%99.99% 的可用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90386.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90386.shtml
英文地址,请注明出处:http://en.pswp.cn/web/90386.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

立式数控深孔钻的工艺及光学检测方法 —— 激光频率梳 3D 轮廓检测

引言立式数控深孔钻作为深孔加工的关键设备&#xff0c;其工艺水平直接影响零件加工质量。深孔加工面临排屑、散热等挑战&#xff0c;而光学检测技术的发展为深孔加工精度控制提供了新途径。激光频率梳 3D 轮廓检测技术与立式数控深孔钻工艺的结合&#xff0c;实现了深孔加工与…

【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现

YOLOv4详解&#xff1a;模型结构、损失函数、训练方法及代码实现 motivation YOLO系列作者Joseph Redmon与Alexey Bochkovskiy致力于解决目标检测领域的核心矛盾&#xff1a;精度与速度的平衡。YOLOv4的诞生源于两大需求&#xff1a; 工业落地&#xff1a;在移动端/边缘设备…

chromedriver下载与安装方法

chromedriver下载地址&#xff1a; 版本在&#xff1a;http://chromedriver.storage.googleapis.com/index.html 这是下载后&#xff1a; 把exe文件复制到浏览器的安装目录下 把exe文件复制到python的安装目录下 配置环境变量:此电脑→右击属性→高级系统设置→环境变量→用户…

基于QT(C++)实现(图形界面)选课管理系统

选课管理系统1 概述1.1 课程设计目的和意义根据课程大纲设定&#xff0c;面向对象课程设计的目的是&#xff1a;&#xff08;1&#xff09;理解面向对象的基本思想和三大机制&#xff0c;掌握基于 C 语法的面向对象的基 本概念和开发模式&#xff0c;熟练运用面向对象思维模式…

【阿里云-ACP-1】疑难题解析

1.弹性伸缩 AS 在企业中有广泛的应用场景,不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。以下关于弹性伸缩的使用说法正确的是( ) 选项内容 A 弹性伸缩可以用于云数据库 RDS 的自动扩容 B 弹性伸缩支持自动将 ECS 实例或 ECI 实例添加到 Memcache 实…

NLP:seqtoseq英译法案例

本文目录&#xff1a;一、案例概述二、数据集三、案例步骤&#xff08;一&#xff09;导入工具包和工具函数&#xff08;二&#xff09;数据预处理&#xff08;三&#xff09;构建数据源对象&#xff08;四&#xff09;构建数据迭代器&#xff08;五&#xff09;构建基于GRU的编…

docker的准备与部署

docker的重复使用bilibli 黑马视频 方便查看docker容器。设置格式通过官网dock查看格式命令 命令别名&#xff0c;简化输入

Java 大视界 -- Java 大数据在智能教育自适应学习路径规划与学习效果强化中的应用(362)

Java 大视界 -- Java 大数据在智能教育自适应学习路径规划与学习效果强化中的应用(362) 引言: 正文: 一、Java 构建的智能教育数据架构 1.1 多维度学习数据实时采集 1.2 知识图谱构建与知识点关联 二、Java 驱动的自适应学习路径规划 2.1 多模型融合的路径生成 2.2 学习效果…

2.1 为什么定义tensor数据结构?

PyTorch选择定义Tensors而非直接使用NumPy进行运算和数据处理&#xff0c;主要是因为Tensors在功能、性能和场景适配性上更贴合深度学习的需求。以下是关键原因分析&#xff1a; 1. 自动求导与计算图支持 核心差异&#xff1a;PyTorch的Tensors在运算时会自动构建计算图&#x…

Qt Quick 3D渲染

Qt Quick 3D是Qt框架中用于创建3D图形界面的强大模块&#xff0c;它提供了声明式的QML API&#xff0c;使得开发者无需深入底层图形API就能构建复杂的3D场景。本文将全面介绍Qt Quick 3D的核心概念和技术细节&#xff0c;包括3D场景坐标系统、场景环境设置、光照与材质系统、相…

笔试——Day17

文章目录第一题题目思路代码第二题题目&#xff1a;思路代码第三题题目&#xff1a;思路代码第一题 题目 小乐乐改数字 思路 模拟 当前位置为偶数时&#xff0c;改为0&#xff1b;否则改为1记得取出前导0&#xff1b;stoi()函数可以直接自动去除前导0 代码 第二题 题目&a…

【c#】完美解决部署IIS 报错 0x8007000d

1、错误页面&#xff1a;2、解决思路&#xff1a; 1、点击IIS站点&#xff0c;右键点击浏览到文件夹下&#xff0c;路径打开cmd&#xff0c;找到对应的站点的dll&#xff0c;运行失败会提示错误原因。需要安装某些dll2、选中站点&#xff0c;点击模块&#xff0c;检查模块AspNe…

Visual Studio 2010-.Net Framework 4.0项目-NPOI安装

在管理Nuget程序包中搜索NPOI&#xff0c;下载最新版会报错&#xff1a;使用程序包控制台输入&#xff1a;Install-Package NPOI -Version 2.5.1

Redis原理之分布式锁

上篇文章&#xff1a; Redis原理之缓存https://blog.csdn.net/sniper_fandc/article/details/149141968?fromshareblogdetail&sharetypeblogdetail&sharerId149141968&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link​​​​​​​ 目录 1 …

网络基础19:OSPF单区域原理实验

一、实验拓扑二、设备配置AR1 配置<AR1> system-view [AR1] interface GigabitEthernet0/0/0 [AR1-GigabitEthernet0/0/0] ip address 192.168.1.1 24 [AR1-GigabitEthernet0/0/0] quit[AR1] ospf 1 router-id 0.0.0.1 [AR1-ospf-1] area 0 [AR1-ospf-1-area-0.0.0.0] ne…

【实战推荐】小白也能上手的多端陪玩系统平台项目源码

在当今的游戏市场中&#xff0c;游戏陪玩服务已经成为了一个热门领域。无论是寻找高手带自己升级、学习游戏技巧&#xff0c;还是仅仅想找人一起玩耍&#xff0c;越来越多的玩家倾向于通过专业的陪玩平台找到合适的伙伴。对于想要进入这个市场的创业者和开发者来说&#xff0c;…

[hot 100 ]最长连续序列-Python3

需要时间复杂度为O(n)&#xff0c;如果采用暴力求解则为O(n^2)1.在遍历hash表的时候检查是否当前值为连续序列的最小值,如果是&#xff0c;则跳过此次循环,这样使得原本需要对每个值进行一次遍历变成了对每个值只访问一次:2.使用set()和普通for num in nums的区别&#xff1a;

[element-plus] el-table show-overflow-tooltip 没有显示省略号

<el-table-columnprop"col2"label"列2"width"70"show-overflow-tooltip/> </el-table-column>不知道为什么没有省略号 再给加个样式 <el-table-column prop"col2" label"列2" width"70" show-ove…

网络基础19--OSPF路由协议单区域

一. RIP的不足跳数评估非最优路径&#xff1a;RIP以跳数作为度量值&#xff0c;不考虑带宽&#xff0c;可能导致次优路径选择。网络规模限制&#xff1a;最大跳数为16&#xff0c;限制了网络规模。收敛速度慢&#xff1a;更新周期长&#xff08;默认30秒&#xff09;&#xff0…

SpringBoot 整合 Langchain4j 实现会话记忆存储深度解析

目录 一、前言 二、AI大模型会话记忆介绍 2.1 AI 大模型的会话记忆是什么 2.2 AI 大模型为什么需要会话记忆 2.3 AI 大模型会话记忆常用实现方案 2.4 LangChain4j 会话记忆介绍 2.4.1 LangChain4j 会话记忆介绍 2.4.2 LangChain4j 会话记忆类型 三、Langchain4j 会话记…