集群的分类、特点以及区别

以访问web为例。

假定一台主机,它的内存为4G,2个cpu,如果服务器接收1000个静态请求(每个请求占用2M空间),50个动态请求(每个请求占用10M空间),则所占用的空间差不多达到服务器的内存上限,此时服务器处理请求的速度会变很慢,很难满足客户的需求。

解决方法:scale on(向上扩展),扩大内存和CPU,通过调用一台性能好的主机来处理请求。缺陷:只能在一定的范围内使用,而且价格难以接受。

scale out(向外扩展),加服务器。也就是所讲到的负载均衡。

LB:负载均衡集群

图示为请求访问前端服务器,前端服务器将请求分发给后台的3台服务器上进行处理。

3台服务器,用户请求可能只有一种,该怎么实现将用户请求分到3台服务器上?

通过DNS A记录,不同的解析返回不同的返回值(负载均衡)。前端服务器通过某种调度算法将请求发送给后台服务器。(RR:轮调,请求第一次给1,第二次给2,第三次给3,以此类推),假设1的性能是2和3的两倍,为了考虑公平和效率,能者多劳,所以用(WRR:加权轮调算法,第1台服务器设置 weight 2 ,其它两台设置 weight 1。)

如果用户发一个帖到1服务器上,第二次访问的时候请求被分发到2服务器上,帖子就不能被看到,为了解决以上出现的问题,可以将用户发到1服务器上的帖保存到数据库上,这样当再次访问请求被分发到2服务器上是,通过检索数据库从而获得数据,这样能够让请求无论到达哪个服务器上都能检索信息。

注:上传的附件保存到哪?比如上传图片,图片本身不能保存到数据库上,可以将上传的附件保存到另一个设备(nfs)上,数据库保存附件的链接,如果请求要访问附件,可以访问数据库所保存的链接获得所需的附件。页面文件不应该放在nfs服务器上,应该放在本地。如果需要更新页面,通过rsync服务将第1台主机上的文件目录作为更新目录,在1更新后通知2和3,让它们将文件复制过去,这就不会造成页面的不同步为了。工作原理图如下:

HA:高可用集群

如果只有一个前端服务器,万一前端服务器挂了,整个集群就挂了,这显然并不合理。

再加一个前端服务器,一个作为primary,一个作为secondary,主的挂了以后,secondary工作。这就是所说的高可用集群(HA)。

两个前端服务器之间通过心跳检测判断是否在工作,如果secondary检测不到primary心跳,将认为primary已经死了,将资源抢夺过来进行调度。

heartbeat:每隔一秒或者半秒传递一次,能收到心跳,证明还活着。

HA和LB的区别:

LB有一定的高可用能力,但不是高可用集群,因为后台服务器没有heartbeat检测;LB是以提高服务的并发处理能力为着眼点,HA是以提升服务的始终在线能力为着眼点。

如果第3台主机挂了,调度器重新将请求分发给1和2,所以不会因为1台主机挂了而无法工作。

怎样让前端服务器知道后端服务器挂了,将不给它发送请求?

前端服务器对后端服务器有heartbeat check(健康检查)。

怎么去衡量可用性?在线时间/(在线时间+故障时间),一般我们使用的主机为99%。

nfs,共享存储设备,存储前端机共享的内容,并发能力有限。

第一个图,DAS存储方式,第一个服务器写入的时候,nfs通过锁告知第二个服务器,并拒绝第二个服务器写入,防止存储设备坏掉。

第二个图,NAS存储方式,一台服务器一个进程,同时向raid设备写入,先是在各自服务器上的内存写,再合并到共享设备,加入第一个服务器写入2行,第二个服务器删除10行,合并后会造成数据丢失。这样显然不好,需要通过fence机制进行管理。

当Vip访问集群时,集群中的一个节点将获取Vip,并与它进行通信,当为Vip服务的节点死机了,另外一个节点将获取Vip,继续为它服务,数据不会丢失。这样的弊端在于如果集群中的一个节点通信失效,那么集群中另外一个节点必须保证将已经失效的节点与正在访问的共享资源隔离开,才能重新获取Vip,出问题的集群节点本身没有这个功能,因为该集群在此时可能已经失去响应,处于半死不活状态,需要借助恐怖分子将它一枪爆头,死要死彻底,这就是通过fence机制来完成的。

两台主机间通过heartbeat检测是否还活着。

时间: 2024-11-29 01:53:34

集群的分类、特点以及区别的相关文章

分布式、集群、微服务的区别

出处:  分布式与集群的区别是什么? 下面就正经解释下三种结构的区别吧- 单机结构 我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了.整个项目所有的服务都由这台服务器提供.这就是单机结构. 那么,单机结构有啥缺点呢?我想缺点是显而易见的,单机的处理能力毕竟是有限的,当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求.此时便出现了集群模式,往下接着看. 集群结构 集群模式在程序猿界有各种装逼解释,有的

从JAVA多线程理解到集群分布式和网络设计的浅析

对于JAVA多线程的应用非常广泛,现在的系统没有多线程几乎什么也做不了,很多时候我们在何种场合如何应用多线程成为一种首先需要选择的问题,另外关于java多线程的知识也是非常的多,本文中先介绍和说明一些常用的,在后续文章中如果有必要再说明更加复杂的吧,本文主要说明多线程的一下几个内容: 1.在应用开发中什么时候选择多线程? 2.多线程应该注意些什么? 3.状态转换控制,如何解决死锁? 4.如何设计一个具有可扩展性的多线程处理器? 5.多线程联想:在多主机下的扩展-集群? 6.WEB应用的多线程以及

HA集群详细配置和实例

一.集群的介绍 二.集群需要的软件 三.集群的配置 四.实例讲述集群 一.集群的介绍 集群的概念 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术. 集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性和可缩放性. HA==high available 二台服务器

RHCS练习1--网络规划和集群介绍

一 网络规划 拓扑图就不上了,直接上IP划分 主机1 public    eth0    rhcs1.public.example.com    192.168.0.1 private    eth1    rhcs1.private.example.com    10.10.10.1 storage    eth2    rhcs1.storage.example.com    192.168.1.101 主机2 public    eth0    rhcs2.public.example.c

Nginx负载均衡集群介绍

第1章 集群介绍 1.1 集群简介 1.1.1 什么是集群 简单说,集群就是一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器,这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理.当用户客户机请求集群系统时,集群给用户的感觉就是一台服务器干一件事. 1.2 集群的优势特点 高性能(performance) 一些国家重要的计算密集型应用(如天气预报,核试验模拟等

oracle云计算及大型数据库集群系统架构

数据库集群技术是将多台服务器联合起来组成集群来实现综合性能优于单个大型服务器的技术,这种技术不但能满足应用的需要,而且大幅度的节约了投资成本.数据库集群技术分属两类体系:基于数据库引擎的集群技术和基于数据库网关(中间件)的集群技术. 在数据库集群产品方面,其中主要包括基于数据库引擎的集群技术的Oracle RAC.Microsoft MSCS.IBM DB2 UDB.Sybase ASE,以及基于数据库网关(中间件)的集群技术的ICX-UDS等产品. 1为什么搭建数据库集群 随着经济的高速发展,

【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

集群概念介绍(一) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进行配置安装,前后经历2,3个

rac学习--集群概念介绍

集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集

互联网服务器集群基本概念入门

2019-08-18 关键字:Linux集群.集群服务器.负载均衡集群.高可用集群 互联网的核心组件是各种服务站点.例如购物领域我们有淘宝.京东.拼多多等,出行领域我们有滴滴.首约.货拉拉等,通讯领域则有微信.QQ等.这些服务站点的背后是靠一台台性能出众的电脑来提供各种服务的.但随着互联网所覆盖的人群越来越广.在人们生活中的渗透越来越深,我们每时每刻所发起的服务请求都都是海量的,而单台计算机的计算能力又是极其有限的.为了满足日益增长的计算需求,就产生了一种被称为 “服务器集群” 的计算服务模式.