前面我们对ES基本概念和API的基本使用进行大致的说明,有兴趣的朋友可以参考一下专栏
ES专栏
这一章我们使用java来整合es查询
elasticsearch为什么要集群。- 高可用 –高可用是分布式系统架构设计中必须考虑的因素之一,它通常是指可以设计减少系统不能提供服务的时间。如果系统没运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%
- 负载均衡
- 负载均衡集群为企业提供了更实用的系统。该系统使负载可以在计算机集群中尽可能平均地分摊处理。该负载可能使需要均衡地应用程序处理负载或网络流量负载。这样地系统非常适合于运行同一组应用程序地大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。
- 高性能
- 将遛遛分发到不同机器,充分利用多机器多cpu,从串行计算到并行计算提高系统性能。
- Cluster 集群
- 一个es集群由一个或多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识。
-
Node节点
- 一个ES实例即一个Node,一台机器可以有多个实例,正常使用下每个实例都应该会部署在不同的机器上。ES的配置文件中可以通过node.master、node.data来设置节点类型。
- node.master:表示节点是否具有成为主节点的资格。
- true代表是有自个竞选主节点
- false代表没有资格竞选主节点
- node.data:表示节点是否存储数据
- node.master:表示节点是否具有成为主节点的资格。
- 一个ES实例即一个Node,一台机器可以有多个实例,正常使用下每个实例都应该会部署在不同的机器上。ES的配置文件中可以通过node.master、node.data来设置节点类型。
-
Node节点组合
-
主节点+数据节点(master+data)
- 节点既有成为主节点资格,又存储数据
node.master: true
node.data: true
-
数据节点(data)
- 节点没有成为主节点的资格,只存储数据
node.master: false
node.data: true
-
客户端节点(client)
- 不会成为节点,也不会存储数据
看起来好像好像没有作用,但是它主要是针对海量请求的时候时候可以进行负载均衡
-
-
分片
- 每个索引都有一个或多个分片,每个分片存储不同的数据。分片可以分为主分片(primary shard)和复制分片(replica shard),复制分片是主分片的拷贝。默认每个主分片都有一个复制分片,一个索引的复制分的数量可以动态的调整,复制分片从不与它的主分片在同一个节点上。
{ "nba": { "aliases": {}, //别名 "mappings": {}, //映射 "settings": { //索引设置 "index": { "creation_date": "1645150581465", //创建时间 "number_of_shards": "1", //分片数量 "number_of_replicas": "1", //副本数量 http://172.25.45.150:9200"uuid": "-xxsKdJKT0yqitrwbYYE8g", "version": { "created": "7040299" }, "provided_name": "nba" } } } }