解密Elasticsearch:深入探究这款搜索和分析引擎 | 京东云技术团队

💡 原文中文,约5200字,阅读约需13分钟。
📝

内容提要

本文介绍了使用Elasticsearch实现画像系统的经验,总结了通讯、内存和持久化三个方面。使用高检索性能满足业务需求,注意mapping的优化和使用适当的拒绝策略。同时提到了Elasticsearch的瓶颈和其他可选方案,如ClickHouse和Pilosa。

🎯

关键要点

  • 使用Elasticsearch实现画像系统的经验总结,涵盖通讯、内存和持久化三个方面。
  • Elasticsearch集群最小单元为三个节点,使用Netty进行节点间的RPC通讯。
  • 内存分为on heap和off heap,on heap由JVM管理,off heap由Lucene管理。
  • Elasticsearch的持久化机制包括segments刷新和translog日志,类似于Redis的RDB+AOF模式。
  • 用户画像系统面临人群预估、人群包圈选和人包判定等难点,需秒级返回结果。
  • 使用Elasticsearch的高检索性能满足业务需求,通过DSL语句进行查询。
  • 构建人群包时需注意深度查询和批量写入的优化,使用线程池和适当的拒绝策略。
  • 优化mapping以提高性能,特别是关闭不必要的index和doc value。
  • Elasticsearch在实时写入时会降低检索性能,建议使用读写分离和拆分index。
  • 除了Elasticsearch,还可以考虑ClickHouse和Pilosa作为替代方案。
➡️

继续阅读