可用性优化

可用性问题表现在三个方面:

  • ES内核健壮性不足 - 异常集群、压力过载集群容易出现雪崩
    • 服务限流
    • 容忍机器网络故障
    • 异常查询
  • 容灾 - 误操作后回复数据
    • 使用ES插件实现数据备份和回荡
  • 系统缺陷 - Master节点堵塞,分布式死锁,滚动重启缓慢

    • 修复缺陷

      性能优化

      日志,监控等时序场景,对写入性能要求非常高。
  • 写入: 利用段文件上记录的最大最小值进行查询裁剪,加速主键去重的过程

  • 查询:优化段文件合并策略

    • 数据预热: 后台系统自动搜索热数据,提前让数据加载到fs cache
    • 减少深度分页

      成本优化

  • 硬盘: 数据具有冷热特性,使用冷热分离架构,将大量访问不频繁的数据放到单独的一个索引,将查询频繁的放到一个索引

    写入优化

  • 写入索引时,将关联的数据直接写进去,减少用join,因为es的复杂查询很耗费性能

相关链接

  1. 10 分钟快速入门海量数据搜索分析引擎 Elasticearch
  2. ES数十亿数据量级的场景下如何优化查询性能?