Elasticsearch的架构是什么样的?如何做到负载均衡以及处理节点故障?

Elasticsearch | 作者 lambertzhao | 发布于2014年12月28日 | 阅读数:7020

Elasticsearch介绍是基于P2P architecture,对于一个document的通过hash进行分配并建立索引,还有人介绍Elasticsearch会维护一个routing table,那么查询的时候是通过routing table进行定位吗?还是通过hash计算进行定位?如果通过routing table进行定位,数据量达到一定量以后,肯定会很慢,如果通过hash定位,出现某个节点坏掉了,那么算法就要进行更新,那么以前的那些是按照原来算法进行分配的,新的按照新的算法分配,这也是一个很复杂的问题。希望大神来回答,哪里有关于Elasticsearch架构以及实现原来的文档推荐啊?
已邀请:

stab - freshman

赞同来自: ld512870

routing table是用来确定你搜索的index的shard或者replica存在哪个node上的,routing table的大小取决与index的数量、shard数和replica的数量。
至于查询的话,如果你查询提够了DocId之类的,在通过hash就可以知道,你要找的Doc在哪个shard上,在通过routing table知道在哪个node上了,然后去node上取回来就好了。你若是不提供DocId,那么ES会在该index(或者indics) shards所在的node上执行搜索语句,然后各自返回结果,由coordinating node gather之后返回给用户。

要回复问题请先登录注册