解密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作为替代方案。
🏷️
标签
➡️