隐藏了复杂的分布式机制
- 分片机制(ES会帮我们决定document插入在哪个分片里)
- 集群发现机制(当启动一个新的节点,新节点能够发现集群并加入进去,还接受了部分数据)。这块更多是针对新节点来说,新节点发现集群。
- shard负载均衡(假设现在有3个节点,ES会保证请求均衡的分配到三个节点上)
- shard副本(ES帮我们创建的副本)
- 请求的路由(ES帮我们自动路由有这个数据的节点上)
- 集群扩容和shard重分配(有新节点加入,自动扩容,并加入集群,然后重新分片数据)。这块更多是针对集群来说的,与集群发现机制有些不同
扩容方案
- 垂直方案:将一个1T的机器替换为2T的机器,从而实现扩容。这种替换机器来扩容的方式称为垂直扩容。该方案成本比较高,因为单台机器的性能越好,价格越高
- 水平方案:增加一个1T的机器,利用集群发现机制实现集群扩容和shard重分配
扩容对应用程序是透明的
- 增加/删除节点会发生shard rebalance
- master节点,用来维护元数据。比如节点的增加/移动、索引的创建和删除。master节点不会承载所有的请求,而是部分。
- 节点对等的分布式架构:每个节点都能接收请求,并且支持彼此的请求路由,并等待结果然后返回。
