es切片和集群

解决单点故障

支持高并发

解决海量数据

1.cluster 集群:包含多个节点,每个节点属于哪个集群是通过一个集群名称(集群名称,默认是elasticsearch)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常

通过集群名称来决定的

2.Node 节点:集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要(在执行运维管理操作的时候),默认节点会去加入一个名称为"elasticsearch"的集群,如果直接启动一堆节点,那么它们会自动组成一个elasticsearch集群,当然一个节点也可以组成一个elasticsearch集群

集群中的一个节点,节点也有一个名称

3.shard(分片):单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。每个shard都是一个lucene index。

4.replica(复制品):预防宕机,为主分片创建多个副本,默认创建五个,从切片默认一个,从切片可以修改。因此可以为每个shard创建多个replica副本

从分片,来做数据冗余

es的流程

一个集群里有多个节点,Node1,Node2,Node3

ES默认就是分布式存储,Es的数据存储都是分片进行存储,一个索引库下有多个主shard,当然为了解决主shard单点故障问题,每个主shard还可以有多个从shard,来做数据冗余。

1.创建索引库的时候,就要确定主shard的数量,后续shard数量是不能修改的。

2.主shard不能和它和当前它自己的从分片在同一个节点,同一家人不能都在一家公司

3.分片都是分别在各个节点上的

4.一个主可以有多个从,但是一个从只能有一个主。

5.同一个主分片的从分片,也不能在同一个节点。

6.主切片位置确定不能改,从切片可以改。

写数据时,怎么得知主分片位置

通过计算documentId 的hashi值的主shard数量,再看计算出的分片在哪个一个主分片

连接节点,存储数据,并将数据复制给从分片。

读数据:也是hash模以主切片的数量,连接该节点。获取主切片从分片信息,通过负载均衡,从多个从分片获得一个从分片,然后读。

后面我想了想,主切片存量不够了怎么办,又不能新增主切片。

我问ai,重新搞个索引库,然后多指定些主切片

为了提高并发,主切片负责写,从切片负责读。

5.集群状态,红绿灯 ,绿色健康,黄色能用(从部分不活跃),红色不健康,至少一个主 不活跃。

6.增加节点,从分片会自动负载均衡。

索引库可以有多个主分片,一个文档只存在一个分片

7.节点都是分了类型的,master节点,client节点,data节点-存放数据的

master节点:类似于注册中心,管理所有数据节点和分片的关系

client节点:负载均衡节点,客户端先连接的client节点,接收外部发生的请求,放在本地,通过计算,计算hash值,进行连接操作。

角色分配不清楚,会出现脑裂问题,高并发,既要接收数据,又要管理,又要写,脑容量不够,最好给节点分配角色。

node.master

node.data 两个都是默认为true

master:代表有资格,决定的话,node.data = false

数据节点:node.master = false

负载均衡

相关推荐
一直要努力哦2 小时前
Redis最终篇分布式锁以及数据一致性
数据库·redis·缓存
wqq_9922502772 小时前
ssm面向品牌会员的在线商城小程序
数据库·小程序
sun0077004 小时前
ubuntu增加swap交换空间
linux·运维·服务器
java1234_小锋4 小时前
详细描述一下Elasticsearch索引文档的过程?
大数据·elasticsearch·搜索引擎
呼啦啦呼啦啦啦啦啦啦4 小时前
在win10环境部署opengauss数据库(包含各种可能遇到的问题解决)
数据库
m0_748230214 小时前
mysql约束和高级sql
数据库·sql·mysql
Diamond技术流4 小时前
从0开始学习Linux——环境变量详解
linux·服务器·学习·centos·软件安装·环境变量
疯狂吧小飞牛4 小时前
openssl颁发包含主题替代名的证书–SAN
运维·服务器·网络
疯狂吧小飞牛5 小时前
openssl创建自签名证书
linux·服务器·ssl
刘艳兵的学习博客5 小时前
刘艳兵-DBA046-ASSM表空间的全表扫描范围由哪些因素综合确定?
数据库·sql·oracle·刘艳兵