文章四:Elasticsearch 的扩容与集群升级

集群扩容:

集群扩容需求背景:

  1. 存储容量瓶颈:集群磁盘使用率超过 50% 时需启动扩容评估,超过 75% 时必须立即扩容,避免触发磁盘水位保护机制导致写入异常。
  2. CPU 与系统负载过高:节点 CPU 使用率长期居高不下、系统 Load 持续高于核数,导致查询与写入响应延迟显著增加。
  3. 内存资源不足:节点整体内存占用过高,包括 JVM Heap 内存和文件系统缓存(Filesystem Cache)不足,引发频繁 GC、查询性能下降。
  4. IO 与网络瓶颈:集群出现节点级 IO、机架级 IO 或网络 IO 瓶颈,影响分片迁移、数据同步和业务读写性能。
  5. 版本性能与功能升级需求:旧版本存在性能局限,新版本(如 ES 7.7+ 引入 off-heap 内存优化、ES 7.13.x 新增 Frozen Tier 冷数据层)有显著性能提升和新特性支持,需通过扩容适配新架构。

集群扩容方案:

横向扩容:

纵向扩容:

  • 增加垂直硬件的吞吐能力
  • 提升硬件性能提升最明显

程序内核升级:

新的版本的ES的性能一定是优于老版本的,可以采用升级内核的方式解决问题。这也是一种变相扩容的方式。

集群扩容总体方案:

  • 集群规模可以:10~20 20~40 40~60.60~80.但是不建议扩充超过100节点的集群,
  • 如果超过的话可以使用CCS这种方式解决问题,对于数据的同步可以使用CCR。

集群横向扩容实战:

  1. 禁用集群自动平衡,因为我们添加新的节点时,他会自动的将分片进行平衡,但是如果我们的节点启动失败,就会造成问题。还有就是假设我们增加多个节点的话,每个节点的加入都会让他进行一次资源的平衡,这个也占用es的资源。
复制代码
   PUT _cluster/settings
   {
     "persistent": {
       "cluster": {
         "routing": {
           "rebalance.enable":"none"
         }
       }
     }
   }
   参数含义:让 Elasticsearch 自动把分片均匀分配到所有节点上,不让某个节点压力太大。
  1. 新增节点全部部署之后,重新开启

es集群挂载多个磁盘:

同一个 ES 节点 同时使用多块本地磁盘(像 Windows C 盘、D 盘一样),提升容量、IO,且一块盘坏了只影响部分数据,不整节点崩溃。

编辑配置文件

复制代码
# 数据存储路径(多个磁盘/目录)
path.data:
  - /data1/es-data
  - /data2/es-data
  - /data3/es-data

# 其他必须配置
cluster.name: es-cluster
node.name: node-1
network.host: 0.0.0.0

授权目录

复制代码
mkdir -p /data1/es-data /data2/es-data /data3/es-data
chown -R elastic:elastic /data1 /data2 /data3

重启es

复制代码
./bin/elasticsearch -d

集群缩容:

ES 缩容不是直接关节点! 直接关节点 = 数据丢失 / 集群变红 / 业务崩溃。正确缩容 = 先把数据挪走 → 再下线节点 → 最后删除。

java 复制代码
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.exclude._ip": "要下线的节点IP"
  }
}

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.exclude._host": "主机名"
  }
}

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.exclude._name": "节点名称"
  }
}

之后等待当前节点上所有的分片都迁移完成。迁移完成之后在执行关闭节点操作

取消exclude:

java 复制代码
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.exclude._ip": null
  }
}


##其他的配置也同样

索引升级实战

下面的案例使用滚动升级的案例,将已有版本进行升级:

升级 Elasticsearch |弹性安装与升级指南 8.19 |弹性 这个是滚动升级的官网。按着官网操作就可以了。

集群降级

集群升级之后不可以进行降级操作,只能是通过原始的方式,reindex这种方式。

相关推荐
小Ti客栈9 小时前
Spring Boot 集成 Springdoc-OpenAPI 与 Knife4j实现接口文档与可视化调试
java·spring boot·后端
Ai拆代码的曹操10 小时前
Spring 事务 REQUIRES_NEW 嵌套调用:连接池翻倍的秘密
java·后端·spring
阿部多瑞 ABU10 小时前
新帝国殖民主义:文化-情感-金融复合体的当代运作机制
大数据·人工智能·金融
动恰客流统计10 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
Ivanqhz11 小时前
Rust &‘static str浅析
java·前端·javascript·rust
阿里云大数据AI技术12 小时前
阿里云 Elasticsearch 9.4 Agent Builder 实战
人工智能·elasticsearch·agent
weixin_4196583114 小时前
Docker 搭建 Jenkins 服务
java·docker·jenkins
captain37614 小时前
多线程线程安全问题
java·java-ee
CoderYanger14 小时前
A.每日一题:1979. 找出数组的最大公约数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
狙击主力投资工具15 小时前
通达信电脑版分时图成交量颜色怎么调? 分时成交量的的颜色怎么修改.股票分时图成交量修改颜色
大数据