Elasticsearch 集群基本概念

构建集群命令

启动es节点:
bin/elasticsearch -Ecluster.name=my_cluster -Epath.data=my_cluster_node1 -Enode.name=node1 -Ehttp.port=5200 -d
bin/elasticsearch -Ecluster.name=my_cluster -Epath.data=my_cluster_node2 -Enode.name=node2 -Ehttp.port=5200 -d

基本概念

Cluster State

记录集群的相关数据称为: cluster state,主要记录如下信息
· 节点信息,如节点名称,连接地址等
· 索引信息,如索引名称、配置等
· …

Master Node

· 可以修改 Cluster State 的节点叫做Master Node,一个集群只有一个存在
· cluster state 存储在每个节点上,master维护最新版本,并同步给其他节点
· master节点是集群所有节点选举出来的,可称为master eligible节点,相关配置:node.master:true : 这个节点是可选举的节点(默认true )

Coordinating Node

处理请求的节点称为Coordinating Node,该节点为所有节点的默认角色,不能取消
· 路由请求到正确的节点处理,比如创建索引请求到master节点

Data Node

存储数据的节点为 data 节点,默认节点都是data类型,相关配置:
· node.data:true

Cluster Health

GET _cluster/health
查看集群的健康状态:
green健康状态,所有主副分片正常分配
yellow 所有主分片正常分配,有副本分片未进行正常分配
red 有主分片未分配

高可用保证

服务可用性:
- 2个节点的情况下,允许一个节点停止服务
数据可用性
- 引入副本(Replication)解决
- 每个节点都有完备的数据

故障转移

node1: P0,R1
node2: P1,R2
node3: P3,R0
====> node1挂了 ===>
1、重新发起master选举,Node2变成master,此时P0没有,集群处于red状态
2、R0升级为主分片变成P0,集群处于yellow状态
3、在Node2中创建R0,集群处于green状态
====> 最终成为 ===>
node2: P1,R0,R2
node3: P2,P0,R1

文档分布式存储

通过某种算法实时计算,将文档映射到 分片上
计算分片公式:
- shard = hash(routing) % number_of_primary_shards
- hash算法保证均匀散列在分片中
- routing默认是文档id,可自行制定
- number_of_primary_shard是主分片数(这就是为什么分片术不能修改的原因)

倒排索引不可更改

· 好处:
- 不用考虑并发写文件问题,杜绝锁机制带来的性能问题
- 由于文件不再更改,可以充分利用文件系统缓存
- 利于生成缓存数据
- 利于文件压缩存储,节省磁盘空间
· 弊端: 写入新文档时,必须重新构建倒排索引文件,替换老的,导致文档实时性差

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值