1 Elasticsearch对复杂分布式机制的透明隐藏特性
Elasticsearch是一台分布式系统,之所以分布式,是为了应对大数据量,他把整个分布式系统的一些复杂的东西隐藏起来,我们不用去关系他们,直接可以使用es。
隐藏的特性或机制:
1.1 分片机制
之前我们随便可以将document数据插入到es集群中,我们有没有care过数据是如何进行分片的,就是说document存放到哪一个shard中的。
1.2 Cluster discover 集群发现机制
比如说我们再单台服务器上面运行一个es节点,这个es节点的health状态是yellow,这个我们是知道的,当我们再启动一个es进程,最为一个节点的时候,这个进程会自动发现集群,并且自动加入到集群中,还接收了部分数据,replica shard 数据。
1.3 shard负载均衡
假设现在有3个es节点,25个shard要分配,es会自动进行均匀的分配,以保持每个节点的均衡的读写负载请求。
还有 shard副本, 请求路由,集群扩容, shard重分配等
2 Elasticsearch的垂直扩容与水平扩容
假设现在有6台服务器,每台上面可以存储1T的数据,现在数据量增加到8T,有两种扩容方案:
2.1 垂直扩容
购置更加强大的服务器,比如将其中的两台服务器换成可以存储2T数据的服务器,这个时候4 + 2*2 = 8T
缺点:高配置的服务器成本非常高。
2.2 水平扩容
购置两台1T的服务器,直接添加到集群中。
业界比较采用,很多普通的服务器组织在一起,可以构成强大的计算和存储能力。
3 增加或减少节点时的数据rebalance
比如上面前5个节点,每一个节点上有一个shard,但是第六个节点有2个shard,这个时候,最后一个节点同其他节点是不平衡的,他的存储和请求的负载比较高的,这个时候,集群中新增一个节点,第六个节点会分配一个shard到新节点上,实现rebalance。
4 Master节点
在集群中,有一个master节点,管理集群的元数据,比如索引的元数据,节点的增加和删除,维护节点的元数据,默认情况下,会自动选择一个节点作为master节点,但是master节点不承载所有的请求,所以说master节点不会是一个单点瓶颈。只是做一些轻量级的事情。
5节点平等的分布式架构
5.1 节点平等
每一个节点都能接收所有的请求
5.2 自动请求路由
每一个节点接收到请求之后都能够把这个请求路由到有相关数据的其他节点上去
5.3 相应收集
最原始接收的节点负责从其他节点采集相应的数据,然后把汇总的数据返回到客户端
当然现在只是一些基础的概念解释,后面我们还会继续深入的结合案例升入的讲解和学习,请关注