本篇文章,我们来总结一下,在宏观上,ES中的数据是如何分布的,为什么能便捷地进行扩容。
宏观结构
1 集群cluster
集群这个概念从业务层面来看,是聚合了某方面功能的节点的组合,一般由单个或多个节点组成。在ES中,具有相同的cluster.name的节点就为同一个集群, 一个集群就是由一个或多个拥有相同cluster.name的节点组成。
集群也是ES中最顶层的对象,在同一个集群中,ES会将数据均匀地分散到集群中的各个节点,每当由新的节点加入或者删除时,集群会在节点间重新均匀地分配数据,以达到分布式储存的目的。
集群是由节点组成的。
2 节点
一个运行中的ES实例被成为一个节点,一个或多个节点(ES实例)则组成一个集群。
每个集群中会有主节点,ES会自动进行主节点选举,对用户透明。主节点的主要职责是管理集群范围內的数据变更,包括索引的增加/删除 ,节点的增加/删除,监控节点的状态等。并不负责具体的细节变更,比如文档级别的变更或搜索。所以它的工作负荷相对其他节点而言较轻,当集群流量增加时,它不会成为瓶颈。
当集群中有多个节点时,除主节点外,其他为从节点。各个节点能均匀地分摊集群的负载,实现负载均衡,以及数据冗余备份,当某个节点因为硬件故障丢失数据时,其他节点存放的冗余数据可以保证整个集群的数据完整性。
每个节点都可以处理任意请求,每个节点都知道任