Elasticsearch 分布式集群搭建
2015-08-25 13:23:47 最后更新: 2015-08-25 13:39:53 访问数量:2497
2015-08-25 13:23:47 最后更新: 2015-08-25 13:39:53 访问数量:2497
一个节点是一个 Elasticsearch 实例,一个集群由一个或多个节点构成,他们具有相同的 cluster.name
一个集群中的各节点协同工作,分项数据和负载
只要节点在同一网段下,设置一致的 cluster.name,启动的 Elasticsearch 即可互相检测到对方,组成集群
集群中一个节点会被选举为主节点,主节点的职责是维护整个集群的状态,并且在节点加入或者离开集群时重新分片
每次集群的状态改变会通知到集群中的其他节点(方式取决于discovery模块的具体实现)
节点可以设置属性 node.master 为 false 来避免被选举为 master 节点,或者将节点设置为客户端节点(node.client 属性设置为 true)
discovery.zen.minimum_master_nodes 用来设置一个集群中最少的合格 master 节点数,对于 2 个节点以上的集群,建议设置为大于 1 的值
例如,如果有 5 个节点,discovery.zen.minimum_master_nodes 设置为 3,那么,如果两个节点掉线,这两个节点恢复连接后不会自己组建集群,而是会加入原集群中
我们可以与集群中的任何节点通信,每一个节点都知道文档存在于哪个节点上,并且将请求转发到相应的节点上,并将返回结果收集、返回给客户端
elasticsearch 通过节点间相互 ping 来验证其他节点是否存活的,当 master 节点不存活,则会立即初始化一个选举选出新的 master
可以通过 discovery.zen.fd 的下列配置用来设置错误监测
配置项 | 意义 |
discovery.zen.fd.ping_interval | ping 的频率,默认1s |
discovery.zen.fd.ping_timeout | ping 的超时时间,默认 30s |
discovery.zen.fd.ping_retries | ping 失败或超时的重试次数 |
通过:
可以检测集群的健康程度,返回:
status 字段使我们最感兴趣的字段,他提供了三种颜色用来定义集群的健康状态
颜色 | 意义 |
green | 所有分片和复制分片均可用 |
yellow | 所有主分片可用,部分或全部复制分片不可用 |
red | 主分片部分或全部不可用 |
欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤