关注

Elasticsearch之下

上一篇上一篇

🛡️ 第六幕:集群容灾与扩展

1. 脑裂(Split Brain)

  • 网络分区 → 多个 Master 同时存在 → 数据写坏
  • 对策
    • discovery.zen.minimum_master_nodes = (master_eligible_nodes / 2) + 1(7.x 前)
    • 7.x+ 用 Raft,自动防脑裂

场景:某台服务器宕机

  • 如果挂的是 Data Node
    • Primary Shard 挂了?→ 自动提升 Replica 为 Primary
    • 集群状态变 Yellow(副本缺失),但服务不中断
  • 如果挂的是 Master Node
    • 其他 Master-eligible 节点自动选举新老大(基于 Zen Discovery 或新版 Raft)

如何扩容?

  • 加机器 → 自动加入集群
  • 索引分片会自动 rebalance(数据迁移)
  • 查询自动路由到新节点 → 无缝扩展

💡 最佳实践

  • 至少 3 个 Master 节点(防脑裂)
  • Data 节点按角色分离(hot-warm-cold 架构)

第七幕:调优与问题

瓶颈优化手段
Refresh 太频繁refresh_interval: 30s
Translog 同步太勤translog.durability: async
副本太多写入时设 replicas: 0,写完再加
Bulk 太小单次 Bulk 5–15MB(约 1000–5000 docs)
Mapping 动态膨胀关闭 dynamic: strict

1. 慢查询雪崩

  • 一个复杂聚合占满 CPU → 其他查询排队 → 集群 hang
  • 对策
    • search.default_search_timeout(超时熔断)
    • indices.breaker.*(内存熔断)
    • 监控 thread_pool.search.rejected

2. Field Data 爆炸

  • text 字段做聚合 → 加载到堆内存(Field Data)
  • 对策永远不要对 text 做聚合!用 keyword

3.极限写入架构:

Logstash/Filebeat → Kafka → Spark/Flink → ES Bulk Write

  • 中间加消息队列削峰
  • Flink 做窗口聚合,减少 ES 写入量

🚫 ES 对 JVM 的特殊要求:

  • 堆内存 ≤ 32GB(否则指针压缩失效,内存翻倍)
  • 堆内存 ≤ 物理内存 50%(留一半给 OS Page Cache)
  • 禁用 Swapbootstrap.memory_lock: true
区域用途调优建议
Heap存储查询上下文、聚合中间结果≤ 31GB,G1GC
Page Cache缓存 Segment 文件越大越好(靠 OS 管理)
Translog事务日志SSD 必备
场景为什么不适合正确姿势
强事务ES 不支持 ACID用 MySQL,ES 只做搜索同步
频繁更新更新 = 删除+重建,性能差少量更新 or 用 _update 脚本
大宽表 JOIN不支持 JOIN用 Nested / Parent-Child(慎用)或应用层关联
精确计数(10亿级)total: 10000+ 是估算track_total_hits=true(性能代价大)

✅ 记住
ES 是“搜索加速器”,不是“主数据库”

🎯 终极总结

原则实现目的
不可变性Immutable Segments高并发、缓存友好
近实时Refresh + Translog写入吞吐 vs 可见性平衡
列存聚合Doc Values高效 BI 分析
分片自治Shard = Lucene Index水平扩展
协调解耦Coordinating Node无状态,易扩展

ES 不是银弹,而是一套精密的权衡系统

  • 用 空间换时间(Doc Values + 副本)
  • 用 延迟换吞吐(Refresh 间隔)
  • 用 复杂度换能力(分布式协调)

真正的大神,不是会用 ES,而是知道什么时候不该用 ES

超能力技术实现效果
闪电搜索倒排索引 + 分词毫秒级全文检索
横向扩展分片 + 集群PB 级数据轻松扛
高可用副本 + 自动故障转移节点挂了照常工作
智能分析聚合 + Doc Values实时 BI 报表
近实时Refresh + Translog写入1秒可见,不丢数据

      “如果你还在用 LIKE %keyword% 做搜索,那你不是在查数据,你是在给用户表演‘系统正在思考人生’。”

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/ma15732625261/article/details/157777108

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--