微服务框架 SpringCloud微服务架构 29 ES 集群 29.3 集群职责及脑裂
创始人
2024-03-29 17:15:01
0次

微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

SpringCloud微服务架构

文章目录

      • 微服务框架
      • SpringCloud微服务架构
      • 29 ES 集群
        • 29.3 集群职责及脑裂
          • 29.3.1 ES 集群的节点角色
          • 29.3.2 ES集群的分布式查询
          • 29.3.3 ES 集群的脑裂
          • 29.3.4 总结

29 ES 集群

29.3 集群职责及脑裂

29.3.1 ES 集群的节点角色

elasticsearch中集群节点有不同的职责划分:

节点类型配置参数默认值节点职责
master eligiblenode.mastertrue备选主节点:主节点可以管理和记录集群状态、决定分片在哪个节点、处理创建和删除索引库的请求
datanode.datatrue数据节点:存储数据、搜索、聚合、CRUD
ingestnode.ingesttrue数据存储之前的预处理
coordinating上面3个参数都为false则为coordinating节点无路由请求到其它节点 合并其它节点处理的结果,返回给用户

在这里插入图片描述

默认情况下ES 的集群节点,拥有这全部的角色,“身兼数职”

但是在实际开发中,肯定不能让一个节点身兼数职

【原因】

  • 不同的职责对硬件的需求不一样
  • 职责之间可能会产生相互影响

一个典型的ES 集群,肯定会把每个节点的职责做拆分,不同的节点做不同的事

【如何控制?】

29.3.2 ES集群的分布式查询

elasticsearch中的每个节点角色都有自己不同的职责,因此建议集群部署时,每个节点都有独立的角色。

在这里插入图片描述

这就是一个典型的ES 集群的结构

29.3.3 ES 集群的脑裂

默认情况下,每个节点都是master eligible节点,因此一旦master节点宕机,其它候选节点会选举一个成为主节点。当主节点与其他节点网络故障时,可能发生脑裂问题。

【举个栗子】

现在有三个节点

在这里插入图片描述

节点1 当选了主节点,剩下两个候选节点

假设现在发生了网络故障

在这里插入图片描述

现在node2 和 node3 无法与node1 取得连接了【现在就相当于集群分开了】

在这里插入图片描述

然后它俩可能就会以为“老大”挂了,就又选了一个主节点【现在的情况,集群中出现了两个主节点】

【进行一些数据交换后】

一旦网络恢复

在这里插入图片描述

就会出现不一致的情况,这样就出事儿了

为了避免脑裂,需要要求选票超过 ( eligible节点数量 + 1 )/ 2 才能当选为主,因此eligible节点数量最好是奇数。对应配置项是discovery.zen.minimum_master_nodes,在es7.0以后,已经成为默认配置,因此一般不会发生脑裂问题。

29.3.4 总结

master eligible节点的作用是什么?

  • 参与集群选主
  • 主节点可以管理集群状态、管理分片信息、处理创建和删除索引库的请求

data节点的作用是什么?

  • 数据的CRUD

coordinator节点的作用是什么?

  • 路由请求到其它节点
  • 合并查询到的结果,返回给用户

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...