分片架构设计技巧

news2024/11/16 11:59:35

Elasticsearch集群设计技巧

ES的基本架构

在这里插入图片描述

  1. 节点可以配置为不同角色,通过选举Master管理集群
  2. Coordinating:协调节点;Master:管理节点;Data:数据存储节点

在这里插入图片描述

数据是按照索引分片的,而不是按照节点分片,每个分片可以有多个副本来保证高可用,例如图中P0有2个R0副本

ES的选举

在这里插入图片描述

  1. 先根据节点的clusterStateVersion比较,clusterStateVersion越大,优先级越高
  2. clusterStateVersion相同时,进入compareNodes,其内部按照节点的ID比较(ID为节点第一次启动时随机生成)

在这里插入图片描述

Zen Discovery 采用了很多分布式共识算法中的想法,但只是有机地采用,并没有严格按照理论所规定的那个模型,7.0 是基于 Raft 但不全是 Raft

ES的部署架构模式

模式1-Master和Data混合部署

在这里插入图片描述

  1. 节点同时配置为Master和Data
  2. 每个节点都可以接收和处理客户端请求,写入操作会转发到数据主分片的Node
  3. 适用于数据量不大的业务

模式2-Master和Data分离部署

在这里插入图片描述

  1. Master节点和Data节点分离部署,Master节点数量3个或5个,Data节点数量可以几十个
  2. Master节点不处理读写请求,只负责集群管理,Data节点处理读写请求和数据存储
  3. 适用于数据量比较大的业务

模式3-Coordinating分离部署

在这里插入图片描述

  1. Master节点数量3个或5个,Data节点数量可以几十个,Coordinating节点2个以上
  2. Master节点不处理读写请求,只负责集群管理,Coordinating负责读写聚合,Data节点负责数据存储
  3. 适用于数据量比较大,读写请求比较复杂的业务

模式4-Cross cluster replication

在这里插入图片描述

  1. 配置为2个集群为 Cross cluster replication,Leader负责数据读写,Follower复制数据、负责数据读取
  2. 适用场景:本地化、聚合存储

Redis cluster设计技巧

Redis cluster基本架构

在这里插入图片描述

  1. Cluster分为多个分片,不同分片保存不同数据
  2. 每个分片内部通过主备复制来保证可用性
  3. 分片内部自动实现Master选举,但不依赖Sentinel,Cluster本身具备分片选举的能力
  4. 客户端连接集群需要特定的实现,例如jedisCluster,因为Cluster有特有的Redis命令

Redis数据分布和路由

在这里插入图片描述

  1. 所有key按照Hash算法分为16384个槽位,然后将槽位分配给分片
  2. 节点之间通过Gossip交换信息,节点变化的时候会自动更新集群信息
  3. 每个节点都有所有key的分布信息
  4. Client连接任意节点,由节点用move指令来告诉实际的数据位置

MongoDB/HDFS集群设计技巧

MongoDB sharding架构

在这里插入图片描述

mongos

  1. 独立部署的代理程序,应用程序请求发给mongos
  2. 可以和应用程序部署在一起,也可以和Shard服务器部署在一起
  3. 为了提升性能,mongos会缓存Config Server上保存的cluster配置信息

Config Server

  1. 存储集群的元数据
  2. 自身通过replicat set保证高可用
  3. 当Config Server挂掉的时候,cluster进入read only

Shard

  1. 存储分片数据的服务器
  2. 自身通过replica set保证高可用,如果全部挂掉,分片就无法访问了

HDFS架构

在这里插入图片描述

NameNode

集群管理节点,保存集群元数据,管理集群(平衡、分配等)

DataNode

存储实际的数据,数据按照block存储

JournalNode

  1. 当Active NameNode修改集群状态后,会写日志到JournalNode集群里面
  2. StandBy NameNode会监听JournalNode,发生变化的时候会拉取日志
  3. JournalNode至少3个,达到多数日志复制写入才算成功

FailoverController

  1. NameNode节点内的一个独立进程,监控NameNode状态
  2. 依赖Zookeeper做高可用

各个架构的简单分析对比

维度ESRedis ClusterMongoDB shardingHDFS
实现复杂度高,需要选举Master节点,且角色类型众多高,需要Gossip协议来交互信息低,Config Server管理集群低,NameNode管理集群
部署复杂度中,需要根据业务规模采用不同的部署模式低,只有一种模式,平滑伸缩高,3类节点,且Config server和Shard要部署主备高,部署Zookeeper、NameNode、DataNode、JournalNode
硬件成本中,每个分片要部署master和slave节点高,Config server和Shard要部署主备高,节点类型很多
支持集群规模超大规模中等规模,建议服务器数量100以内超大规模超大规模
适用场景数据查询和分析缓存数据存储数据存储

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在C#方法中 out、ref、in、params 关键字的用法

out:关键字: 指定的参数在进入函数时会清空自己,必须在函数内部赋初值 ref关键字: 指定的参数必须在进入函数时赋初值,在函数内部可以重新赋值 In关键字: 指定的参数必须在进入函数时赋初值,…

MySQL进阶篇(五)- 锁

一、概述(P121) 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性…

51、部署PaddleSeg的pp_liteseg到MNN框架、OpenVINO框架和OAK框架、NPU(RK3399 PRO)框架

基本思想:需要一个快的实例分割模型,由于需要配置oak使用,所以就记录和实现一下微软社区提供的思路,去部署PaddleSeg的轻量级(实际是语义)分割模型 所有的实验模型,花了两天。。。mmp 自己训练模型,开始整…

[附源码]java毕业设计药品销售管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【AI】浅谈梯度下降算法(理论篇)

前言 在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent) 是最常采用的方法之一,另一种常用的方法是最小二乘法。 目前正在学习这方面相关的内容,因此简单谈谈与梯度下降法相关…

13T搅拌运输车冷却系统改进设计

目 录 摘 要 1 Abstract 2 1绪论 5 1.1选题背景及意义 5 1.2研究现状 6 1.2.1 影响13T混凝土搅拌运输车冷却系统的因素以及目前存在的问题 6 1.2.2目前存在的问题 6 1.2.3现代冷却系统研究现状及发展方向 7 1.3研究主要内容 8 2 13T混凝土搅拌运输车冷却系统组成功用和选型 9 2…

m基于PTS+TR的OFDM系统PAPR联合抑制算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 部分传输序列(Partial Transmit Sequence , PTS)由于其不受载波数量限制,并且能够有效的,无失真的降低OFDM信号峰均比,而受到广泛关注。部分传输序列算…

m基于matlab的无线光通信CDMA闭环链路功率控制算法仿真,对比了OOK,2PPM,4PPM,8PPM,16PPM

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 在光通信领域,多址技术主要有WDM(波分复用)、TDM(时分复用)及OCDMA(光码分多址)三种方式。OCDMA技术从70年代中期开始出现,现在引起了人们的广泛重视。将CDMA(码分…

谁能拒绝一个会动的皮卡丘挂件

说在前面 🎈相信很多80、90后的朋友,对QQ宠物印象非常深刻,每次开机宠物就会自动跑出来。曾经很多人想饿死他,但失败了;也有很多人一上线就退出,但就是不愿因取消“开机自动开启”的勾选。2018年09月15日&a…

基于simulink的直升机控制系统

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 直升机机体减振为目标,研究基于自适应滤波技术的前馈控制问题.为了模拟机体的力学特性以及旋翼对机体的激振作用,采用了FIR,SIIR等滤波模型进行识别和控制.通过对作动器和与之相适应的滤…

【MyBatis】二、入门程序

第一个程序 一、resources目录 放在resources目录的一般是资源文件、配置文件&#xff0c;直接放在该路径的资源相当于放到了类的根路径下。 二、开发步骤 1.打包方式jar <!--打包方式jar--><packaging>pom</packaging>2.引入依赖 mybatis依赖 mysql驱动…

网页设计成品DW静态网页Html5响应式css3——电影网站bootstrap制作(4页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

求圆心到点的直线与圆的相交点

求圆心到点的直线与圆的相交点 点B为圆上一动点&#xff0c;已知圆心O(x2,y2), 圆外点A(x1,y1)&#xff0c;圆半径r值&#xff0c;求B(x,y)坐标。 由图可知,产生下面两个公式。 m/n y1-y2/x1-x2 m^2n^2r^2 由上面的公式可以得出 n的长度计算公式为n^2 r^2 / [ (y1-y2 / x1-x…

昨日,一老师课前预测日本赢球,结果令人惊叹

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 世界杯是当前最为热门的一个体育赛事&#xff0c; 也是很多小伙伴最为喜欢的一个体育运动之一 而在昨日第四场&#xff1a;F组第一轮&#xff0c;比赛时间&#xff1a;2022年11月23日 21:00 德国VS日本 被一老师成功预测…

视频怎么加水印?这里有你想要的答案

现在不管是游戏解说&#xff0c;还是一些网课视频&#xff0c;亦或是视频博主制作的vlog&#xff0c;我们都能看到这些视频带上了水印&#xff0c;它不仅可以防止其他人随意盗用视频&#xff0c;还可以很好地为自己作宣传&#xff0c;吸引流量。不过还是有很多小伙伴没有著作权…

大部分PHP程序员,都搞不懂如何安全代码部署【二】(nginx篇)

在此之前发布了 代码安全部署的&#xff0c;里面写的nginx 配置安全写了一点点&#xff0c;今天具体补充一下nginx 的配置 nginx站点目录及文件URL访问控制 一、根据扩展名限制程序和文件访问 利用nginx配置禁止访问上传资源目录下的PHP、Shell、Perl、Python程序文件。配置…

基于图像识别的小车智能寻迹控制系统

目录 摘要…… I Abstract II 基于图像识别的智能寻迹控制系统设计 I Design of Intelligent tracking Control system based on Image recognition II 目录 III 第1章 绪论 1 1.1 课题背景 1 1.1 国内外文献综述 1 1.2 论文研究内容 2 第2章 基于图像识别的智能寻迹控制系统方…

代码随想录训练营第30天|LeetCode 332.重新安排行程、51. N皇后、 37. 解数独、回溯总结

参考 代码随想录 题目一&#xff1a;LeetCode 332.重新安排流程 这道题目有几个难点&#xff1a; 一个行程中&#xff0c;如果航班处理不好容易变成一个圈&#xff0c;成为死循环有多种解法&#xff0c;字母序靠前排在前面&#xff0c;让很多同学望而退步&#xff0c;如何该…

没有项目管理经验,可以参加PMP考试吗?

咱们先来了解一下PMP&#xff0c;PMP认证是一项针对项目管理的资格认证&#xff0c;属于管理学中的经济/项目管理&#xff0c;也是目前职业资格认证中含金量较高的&#xff0c;堪比MBA、MPA。 许多大型私企和外企在招聘项目管理者和项目组成员的时候都优先考虑持有PMP认证的人…

【问题】Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口

Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口 文章目录Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题**问题** &#x…