浅析集群、分布式、负载均衡

news2024/11/14 10:31:16

平时开发或者面试中进场听到集群、分布式、负载均衡等系列的名词,他们之间有什么联系呢,本文就简要的抛砖引玉一下。

集群

1.什么是集群

集群一般指的是服务器集群。集群其实就是一组相互独立的计算机,通过高速的网络组成一个计算机系统。而很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器,对用户来说无感知。

2.集群的优势

1、高性能

例如有1千台服务器同时计算运行,其运行效率肯定远大于单机的运行效率。

2、高性价比

通过使用普通的服务器,使用集群组合其性能也能达到昂贵的小型机服务器的性能,但是价格缺很低,能够节约大量资金可谓性价比满满,这也是后来国内大型电商等逐步去除IOE的目的。

3、可伸缩性

例如平时业务最多需要10台服务器,但是考虑到大促(比如618、双11)这些促销抢购节点,需要瞬时的强大并发承载。这就可以提前预估服务器,在极端的情况下,可以实现动态的服务器扩容。

3.集群的分类

集群一般分为以下三种类型:

  • 负载均衡集群(Load balancing clusters)简称LBC
  • 高可用性集群(High-availability clusters)简称HAC
  • 高性能计算集群(High-perfomance clusters)简称HPC

一般我们平时接触最多的就是负载均衡集群,通过前端 Nginx 把请求分发给后端的不同后端web服务器,通过随机算法或者权重算法等对流量的分摊保证系统的正常运行。
高可用性集群和负载均衡有点类似,但是它一般都是按照主从模式来进行的,比如一主一从,一主多从等模式。其侧重点在于主节点有异常,从节点能够快速切换保证系统的正常运行。
高性能计算集群一般都是运用在大量计算型的业务上,比如挖矿都是用的高性能集群来进行密集的操作。

负载均衡

在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给其中的一台后端服务器去处理。

在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。
在这里插入图片描述

分布式

分布式是指将不同的业务分布在不同的地方,而集群则是将几台服务器集中在一起,实现同一业务。

分布式中的每一个节点,都可以做集群,而集群并不一定就是分布式的。

分布式数据一致性

分布式系统中,解决了负载均衡的问题后,另外一个问题就是数据的一致性了。

在分布式集群中,很难保障数据的一致性,在以往的单节点服务中,通常使用锁来实现,当发生并发冲突时 通过对锁的持有获得对象的操作权,从而保证数据在同一时刻只允许被一个请求操作。

如果在集群中,若同样采用锁的机制,那么需要一台节点用来管理分配锁,当其他节点进行请求前,首先去获取锁从而获得执行权。不过这样会产生单节点问题,即管理锁的节点挂掉了,那么整个集群将无法工作。同时,由于锁的机制会使整个集群变成串行化单节点的形式,也失去了集群的意义。

所以,在集群中需要一种高容错的分布式一致性算法,因此提出了Paxos算法。在Paxos算法的基础上后续有出现了:ZAB、Raflt等算法。Raft算法也是解决分布式系统一致性问题的,与 Paxos 实现的功能相同,相对来说更容易实现和理解。

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

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

相关文章

深度学习笔记之Transformer(六)Position Embedding铺垫:Skipgram与CBOW模型

深度学习笔记之Transformer——PositionEmbedding铺垫:Skipgram与CBOW模型 引言回顾: Word2vec \text{Word2vec} Word2vec模型补充:关于 Word2vec \text{Word2vec} Word2vec的一些说明 引言 上一节介绍了 Word2vec \text{Word2vec} Word2vec…

【动态规划算法】第九题:64. 最小路径和

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你…

Todo-List案例版本一

初级使用e.target.value 记得安装npm i nanoid与UUID类似 快捷键ctrlH替换内容 src/components/MyHeader.vue <template><div class"todo-header"><input type"text" placeholder"请输入你的任务名称&#xff0c;按回车键确认&quo…

express框架中使用ejs

1.设置模块引擎为ejs app.set("view engine","ejs") 2. 设置模版文件存放位置 说明&#xff1a;模版文件&#xff1a;具有模版语法内容的文件。 app.set(vies,path.resolve(__dirname,"./views")) 3.render渲染 app.get(/home,(req,res)>{/…

MySQL第三天(简单单表查询)

前言 今天的三个题目是针对于单表查询和多表查询的课后作业&#xff0c;针对于初学者还是很合适的听有用处的&#xff0c;我会把我的答题过程一步一步写出来&#xff0c;有需要的小伙伴可以参考哦… 第一题、单表信息查询 题目代码如下&#xff1a; 作业&#xff1a;1.创建表…

【计算机组成原理总结】

第一章计算机系统概述 第二章数据的表示与运算 第三章存储系统 第四章 指令系统 第五章 中央处理器 第六章 总线 第七章 输入输出设备

Mac如何在终端使用diskutil命令装载和卸载推出外接硬盘

最近用 macOS 装载外接硬盘的时候&#xff0c;使用mount死活装不上&#xff0c;很多文章也没详细的讲各种情况&#xff0c;所以就写一篇博客来记录一下。 如何装载和卸载硬盘&#xff08;或者说分区&#xff09; mount和umount是在 macOS 上是不能用的&#xff0c;如果使用会…

Clickhouse入门(一)

第一章 Clickhouse简介 ClickHouse (C编写)是俄罗斯的Yandex(相当于百度)于2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08;OLAP&#xff09;&#xff0c;能够使用SQL查询实时生成分析数据…

电脑各配置跟不上,造成频繁花屏。

本人用的是i3 7350K&#xff0c;然而散热器是二十多块的杂牌&#xff0c;CPU温度经常不稳定&#xff0c;可以在监控软件看到比较详细的情况&#xff0c;然后我的显卡是gtx1080&#xff0c;内存加到双条24G。 最近一直花屏&#xff0c;我甚至怀疑是不是显卡坏了&#xff0c;然后…

特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的回归数据特征选择

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的回归数据特征选择 部分源码 %--------------------

css 字体间距 设置

一、css word-spacing属性设置字间距&#xff08;单词的间距&#xff09; word-spacing 属性增加或减少单词间的空白&#xff08;即字间隔&#xff09;&#xff1b;在这个属性中&#xff0c;“字” 定义为由空白符包围的一个字符串。也就是说该属性是以空格为基准进行调节间距…

【一】PCIe基础知识

一、PCIe概述 1、PCIe速度 PCI采用总线共享式通讯方式&#xff1b;PCIe采用点到点(Endpoint to Endpoint)通讯方式&#xff0c;互为接收端和发送端&#xff0c;全双工&#xff0c;基于数据包传输&#xff1b;两个PCIe设备之间的连接称作一条链路(link)&#xff0c; 一条链路可…

Nginx报跨域问题怎么解决

这就是报错信息&#xff0c;可以看出这里是一个请求发送了两次&#xff0c;这是什么原因呢&#xff1f; 这种请求是因为它是applocayion/json格式的请求&#xff0c;在请求一个资源的时候&#xff0c;先会发送一个预检请求&#xff0c;然后才会发送真正的请求&#xff0c;那为…

桥接模式:如何实现支持不同类型和渠道的消息推送系统?

上一节课我们学习了第一种结构型模式&#xff1a;代理模式。它在不改变原始类&#xff08;或者叫被代理类&#xff09;代码的情况下&#xff0c;通过引入代理类来给原始类附加功能。代理模式在平时的开发经常被用到&#xff0c;常用在业务系统中开发一些非功能性需求&#xff0…

Web前端 Day 2

元素显示模式 块元素 独占一行 宽、高、内外边距可以设置 eg. div 行内元素 一行可以存在多个 eg. span 行内块元素 一行可以存在多个 宽、高、内外边距可以设置 是否独占一行 表格标签 <table> <caption></caption> 表格标题&#xff08;概括&#…

手把手的教你安装PyCharm --Pycharm安装详细教程(一)(非常详细,非常实用)

简介 Jetbrains家族和Pycharm版本划分&#xff1a; pycharm是Jetbrains家族中的一个明星产品&#xff0c;Jetbrains开发了许多好用的编辑器&#xff0c;包括Java编辑器&#xff08;IntelliJ IDEA&#xff09;、JavaScript编辑器&#xff08;WebStorm&#xff09;、PHP编辑器&…

面向对象编程主线一

面向对象编程 一、Java面向对象学习的三条主线 Java类及类的成员&#xff1a;属性、方法、构造器&#xff1b;代码块、内部类面向对象的三大特征&#xff1a;封装性、继承性、多态性、&#xff08;抽象性&#xff09;其他关键字&#xff1a;this、super、static、final、abst…

分治法求最近点对问题

目录 蛮力法 分治法 探究分治规模小于一定程度时采用暴力解法 蛮力法 算法思想 蛮力法&#xff0c;顾名思义&#xff0c;即穷举所有点与点之间的距离&#xff0c;两层循环暴力找出最近点对。算法执行可视化如图1所示&#xff0c;word文档GIF静态显示&#xff0c;附件已含动…

BTY Carnival - Task2 | Get the OG Role Win USDT

欢迎来到比特元社区&#xff01; 比特元是一条兼具平行链与零知识证明技术的EVM兼容区块链。BitYuan的生态系统dns.bityuan.com即将开放公测。用户完成任务即获得白名单资格&#xff0c;可进入到DC群的DNS白名单频道 &#xff0c;我们将定期开展抽BTY等活动&#xff0c;并且将…

2022年第十三届JAVA B组国赛

文章目录 A.重合次数&#xff08;模拟&#xff09;B.数数&#xff08;数学&#xff09; A.重合次数&#xff08;模拟&#xff09; Answer:494 这个题目比较坑人&#xff0c; public class Main {static BufferedReader br new BufferedReader(new InputStreamReader(System.…