elasticSearch分布式系统的一些特性

1:es对复杂的分布式系统机制的隐藏透明性
es是一套分布式的系统,分布式是为了应对大数据量,而对我们来说隐藏了复杂的分布式机制
分片机制:我们随便创建相应的document就能直接保存到es集群中,而不需要管这个doc会被保存在那个分片中
cluster discovery(集群发现机制):将集群的状态从yellow改成green的时候,我们只需要再启动一个es节点,如果集群名称相同的话,那么这个节点就会自动的加入到这个集群中去,并且加入进入之后,之前的primary shard如果没有分配他的replica shard那么就会自动的将replica shard进行分配
shard 负载均衡:假设我们集群中有3个节点,总共25个shard需要分配到3个节点中去,这个时候es会自动的自行均匀分配,以保证每一个节点的均衡读写负载请求

shard 副本、请求路由、集群扩容、shard重分配这些我们都不需要重分配

2:es的垂直扩容与水平扩容
垂直扩容:采购更强大的服务器,一般不采用这个方案,一来成本高昂,二来相比于水平扩容没有那么高的可用性三来会有瓶颈
水平扩容:业界经常采用的方案,采购更多的普通的服务器,性能一般,但是很多普通的服务器组织在一起,就能构成很强大的计算能力和存储能力

扩容对程序的透明性

3:增加或者减少节点的数据的rebalance

保持负载均衡

4:master节点

(1):创建或者删除索引

(2):增加或者删除节点

5:节点对等的分布式架构

注意:一个doc只会存在一个primary shard中(replica shard应该也会存在的),因为数据被分片了,每个shard只会存放部分数据

(1):节点对等,每个节点都能接收所有的请求

(2):自动请求路由:某个节点在接收到相应的数据的请求的时候,能自动将这个请求路由到相关数据的其他请求中去

(3):响应收集:最初的那个接收节点的能自动将其他节点中接收到的数据收集起来

如果要搜索相应的数据,这个请求有可能被上图中的每一个节点进行接收然后处理,这个就是节点对应,然后某个节点接收后但是这个节点中不存在相应的数据那么就会自动路由到存放相关数据的节点中,然后相关数据的节点将数据进行返回,最后最初接收请求的节点将数据进行收集等,最后返回