Elasticsearch 分布式原理

Elasticsearch致力于隐藏分布式系统的复杂性。以下这些操作都是在底层自动完成的:

将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。

将分片均匀的分配到各个节点,对索引和搜索做负载均衡。

冗余每一个分片,防止硬件故障造成的数据丢失。

将集群中任意一个节点上的请求路由到相应数据所在的节点。

无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移。



我们能够发送请求给集群中任意一个节点。每个节点都有能力处理任意请求。每个节点都知道任意文档所在的节点,

所以也可以将请求转发到需要的节点。


下面的例子中,我们将发送所有请求给Node 1,这个节点我们将会称之为请求节点(requesting node)

我们发送请求,最好的做法是循环通过所有节点请求,这样可以平衡负载。


新建、索引和删除请求都是写(write)操作,它们必须在主分片上成功完成才能复制到相关的复制分片上。

原文地址:https://www.cnblogs.com/hzcya1995/p/13349893.html