ElasticSearch High Level REST API(6)获取集群信息

ElasticSearch 集群原理

节点

一个运行中的EasticSearch 被称为一个节点,而集群是由多个用于拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力,当有新的节点加入或移除,集群会重新平均分布所有的数据。

集群中的节点分为主节点和从节点。主节点负责管理集群范围内的所有变更,例如增加、删除索引或节点变更,我们可以将请求发送到任意节点,每个节点都知道任意文档所处的位置,并且能将我们的请求转发到我们操作要对应的节点上。

分片

分片是底层的一个工作单元,一个分片就是一个Lucene示例,一个分片就是一个完整的搜索引擎。我们的索引数据被存储到分片中,一个分片可以存储多条索引文档。

分片是数据的容器,文档存储在分片内,分片又被分配到集群的各个节点。当集群规模扩大或缩小时,ElasticSearch会自动在各节点中迁移分片,使得数据仍然均匀的分配到集群中。

分片分为主分片和副本分片。主分片数量是固定的,在索引建立时就已确定。副本分片只是作为主分片的一个拷贝,作为硬件故障时保护数据不丢失的一个备份,副本分片允许处理搜索查询请求,但不允许处理修改、删除的操作。

获取集群信息

Info API

ElasticSearch 可以通过info()方法检索群集信息:

@GetMapping("info")
public void info() {
    MainResponse response = null;
    try {
        response = client.info(RequestOptions.DEFAULT);
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }
    //返回集群的各种信息
    ClusterName clusterName = response.getClusterName(); //集群名称
    String clusterUuid = response.getClusterUuid(); //群集的唯一标识符
    String nodeName = response.getNodeName(); //已执行请求的节点的名称
    Version version = response.getVersion(); //已执行请求的节点的版本
    Build build = response.getBuild(); //已执行请求的节点的构建信息
    log.info("clusterName: {}", clusterName);
    log.info("clusterUuid: {}", clusterUuid);
    log.info("nodeName: {}", nodeName);
    log.info("version: {}", version);
    log.info("build: {}", JSON.toJSONString(build));
}
clusterName: Cluster [elasticsearch]
clusterUuid: Yw4Baaw9S72T8KqsuiOs9Q
nodeName: node-1
version: 7.1.0
build: {"productionRelease":true,"qualifiedVersion":"7.1.0","snapshot":false}

Ping API

通过使用ping()方法可以检查集群是否连接成功,并返回一个布尔值:

boolean response = client.ping(RequestOptions.DEFAULT);

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/19/elasticsearch-high-level-rest-api-obtaining-cluster-information/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
ElasticSearch High Level REST API(6)获取集群信息
ElasticSearch 集群原理 节点 一个运行中的EasticSearch 被称为一个节点,而集群是由多个用于拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的……
<<上一篇
下一篇>>
文章目录
关闭
目 录