🥖ElasticSearch-11-ElasticSearch集群特性
❤集群架构说明

一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。
cluster.initial_master_nodes: ["node1", "node2","node3"]
在Elasticsearch主要分成两类节点,一类是Master,一类是DataNode。
在Elasticsearch启动时,会选举出来一个Master节点。当某个节点启动后,然后使用Zen Discovery机制找到集群中的其他节点,并建立连接。
discovery.seed_hosts: ["192.168.230.130", "192.168.230.131", "192.168.230.132"]
Master节点主要负责:
- 管理索引(创建索引、删除索引)、分配分片
- 维护元数据
- 管理集群节点状态
- 不负责数据写入和查询,比较轻量级
在Elasticsearch集群中,会有N个DataNode节点。DataNode节点主要负责:
- 数据写入
- 数据检索
一个Elasticsearch集群中,只有一个Master节点。在生产环境中,内存可以相对小一点,但机器要稳定。大部分Elasticsearch的压力都在DataNode节点上,在生产环境中,内存最好配置大一些
作为用户,我们可以将请求发送到集群中的任何节点 ,包括主节点。 每个节点都知道任意文档所处的位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点,它都能负责从各个包含我们所需文档的节点收集回数据,并将最终结果返回給客户端。 Elasticsearch 对这一切的管理都是透明的。
❤集群特性-故障转移
当集群中只有一个节点在运行时,意味着会有一个单点故障问题——没有冗余。 幸运的是,我们只需再启动一个节点即可防止数据丢失。当你在同一台机器上启动了第二个节点时,只要它和第一个节点有同样的 cluster.name 配置,它就会自动发现集群并加入到其中。但是在不同机器上启动节点的时候,为了加入到同一集群,你需要配置一个可连接到的单播主机列表。之所以配置为使用单播发现,以防止节点无意中加入集群。只有在同一台机器上
运行的节点才会自动组成集群。
如果启动了第二个节点,集群将会拥有两个节点 : 所有主分片和副本分片都已被分配 。

比如我建立一个索引指定有3个分片,且每个分片都有1个副本,在我的集群中:
PUT /ralph_index{"settings": {"number_of_shards": 3,"number_of_replicas": 1,"index": { # 我默认所以安装了ik 如未安装去掉就行"analysis.analyzer.default.type": "ik_max_word"}}}
通过 elasticsearch-head 插件查看集群情况

文章参考
