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全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论