悟空聊架构-公众号

悟空聊架构-公众号

请警惕 ES 的三大坑-LMLPHP

这是悟空的第 104 篇原创文章

作者 | 悟空聊架构

来源 | 悟空聊架构(ID:PassJava666)

  • 1.3.2 数据预热

    1.3.3 冷热分离

    1.3.4 避免使用关联查询

    二、ES 架构之坑

    通常情况下,我们会使用 ES 的集群模式,在集群规模不大的情况下,性能还算可以,但如果集群规模变得很大,则会遇到集群瓶颈,也就是说集群扩大,性能提升甚微,甚至不增反降。

    ES 的集群也是采用中心化的分布式架构,整个集群只有一个是 Master 节点。而它的职责非常重要:负责整个集群的元数据管理,元数据包含全局的配置信息、索引信息、节点信息,如果元数据发生改变,则需要 master 节点将变更信息发布到集群的其他节点。

    另外因为 master 节点的任务处理是单线程的,所以每次处理任务时,需要等待全部节点接收到变更信息,并处理完变更的任务后,才算完成了变更任务。

    那么这样的架构会带来什么问题:

    解决方案:采用 ES 的 tribe node 特性实现 ES 多集群。文中后面会介绍下 tribe node 的原理。

    三、业务场景的坑

    ES 的被广泛应用到多个场景,比如查询日志、查询商品资料、数据聚合等。而这些场景的需求又有非常大的差异,这也是一个坑。

    解决方案:按业务场景划分 ES 集群,同样采用 ES tribe node 功能。

    四、ES Tribe Node 方案

    ES tribe node  功能原理图如下所示:

    参考资料: 

    https://www.infoq.cn/article/SbfS6uOcF_gW6FEpQlLK https://www.elastic.co/guide/en/elasticsearch/reference/2.0/modules-tribe.html advance-java

    ES 搜索引擎系列文章汇总:

    一、别只会搜日志了,求你懂点原理吧

    二、ES 终于可以搜到”悟空哥“了!

    三、1W字|40 图|硬核 ES 实战

    - END -

    本文分享自微信公众号 - 悟空聊架构(PassJava666)。
    如有侵权,请联系 support@oschina.cn 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    05-27 18:01
    查看更多