一、集群类型:

1、负载均衡集群(LB集群--Load Balancing):

考虑提高服务器容量,是实现伸缩性扩展的主要技术。

当并发请求出现下面的情形时,就要考虑扩展:

1200请求:1s

1500请求:2s

1800请求:10s

扩展类型:

Scale up:向上,需要更强大性能的服务器,缺点是:提高的上限是有限的,并且它的性价比较差。

Scale out:向外,需要n多台主机。

A、LB的软件解决方案:

LVS(Linux Virtual Server)、

Haproxy、

Nginx等。

B、LB的硬件解决方案:

F5 BIG-IP、

Citrix Netscaler、

A10、

Array 、

Redware等。

2、高可用集群(HA集群--High Availability):

高可用,衡量服务可用性,平均无故障时间/(平均无故障时间+平均故障修复时间)。

高可用是用冗余设计,来保障稳定性。

HA的解决方案:Heartbeat、Corosync+pacemaker、

Cman+pacemaker、Cman+rgmanager、Keepalived等。

3、高性能集群(HP集群--High Performace):

向量机。

并行处理进群。

HP的解决方案:Hadoop

二、提高服务器性能的技术:

1、NoSQL:

MongoDB

2、分布式文件系统

MogileFS

三、LVS:ipvsadm/ipvs,根据请求的目标套接字(包括端口协议类型TCP或UPD)来实现转发。

只有在并发连接数非常大时,才使用LVS做负载均衡,如淘宝、京东;对于小型的站点一般使用Haproxy。

CIP<----->VIP----DIP<----->RIP

1、LVS类型:

(1)、NAT:

A、RS应该使用私有地址;

B、RS的网关必须指向DIP;

C、RIP和DIP必须在同一网段内;

D、请求和响应的报文都要经过Director;

     在高负载场景中,Director很可能成为系统性能瓶颈;

     注意:一般请求报文较小,但响应报文比请求报文大的多。

E、支持端口映射;

F、RS可以使用任意支持集群服务的OS;

(2)、DR(Direct Routing):让前端路由将请求发往VIP时,只能是Dirctor上的VIP

解决方案:

a、静态地址绑定,但不可用,因为未必有路由器的配置权限

或者Dirctor调用时静态地址绑定将难以适用。

b、修改Linux内核参数,将RS的VIP配置为LO接口别名,

限制linux仅对对应的接口的ARP请求做响应。

特性:

A、RS可以使用私有地址;但也可以使用公有地址,此时可以直接通过

互联网连入RS以实现配置、监控等。

B、RS的网关一定不能指向DIP

C、RIP跟Directory要在同一物理网络内 (不能由路由器分隔)

D、请求报文进过Directory,但响应报文一定不经过Directory

E、不支持端口映射;

F、RS可以支持大多数的OS(隐藏VIP)

(3)、TUN:IP隧道,实现跨互联网转发。

特性:

A、RIP、DIP、VIP都得是公网地址。

B、RS的网关一定不能指向DIP

C、RIP跟Directory不在同一物理网络内。

D、请求报文进过Directory,但响应报文一定不经过Directory

E、不支持端口映射;

F、RS的OS必须要支持隧道功能(两个IP首部)。

(4)、FULLDAT:这是linux的内核发展的2.3.2以后引入的一种新类型,但需要对LVS内核打补丁后才能使用的一种类型。跨网络的NAT类型。

2、Session持久机制:

(1)、session绑定:始终将同一个请求者的练级诶定向至同一个RS,这种方式无容错能力,并反均衡。

(2)、session复制:在RS质检同步session,因此,每个RS持有集群中所有的session;对于大规模集群环境不适用。

(3)、session服务器:利用单独部署的服务器,来统一管理session,这种方式避免的上两种的缺陷,是最好的。

3、LVS的调度算法scheduler method:共10种。

 LVS的缺陷无法感知后台RS的运行状态,如果某个RS故障,LVS一样会根据调度算法将请求分配给它。

(1)、静态方法:仅根据算法本身进行调度。

RR:Rount Robin轮询。这种调度方式的Session持久机制:session复制/session服务器

WRR:Weighted RR 加权轮询,根据权重比例进行调度。这种调度方式的Session持久机制:session复制/session服务器

SH:Source Hashing 源地址哈希。这种调度方式的Session持久机制:session复制/session服务器/session绑定.

DH:Destination Hashing 目标地址哈希。服务器端有多个防火墙时,为了保证请求和响应从同一个防火墙进出,这种方式比较少见。

(2)、动态方法:不但根据算法还要根据RS当前的负载状况。

LC:Least Connection 最少链接算法。

Overhead=Active*256+Inactive,结果小者胜出,结果一样轮询。

WLC:Weighted Least Connection 加权最少链接算法。

Overhead=(Active*256+Inactive)/weighted,结果小者胜出,结果一样轮询。

SED:Shortest Expect Delay 最小期望延迟。

Overhead=(Active+1)*256/weighted,结果小者胜出,结果一样轮询。

NQ:Nerver Queue 永不排队。现根据权重挑选,叫每个服务器都接收一个请求,然后根据算法

Overhead=(Active+1)*256/weighted,结果小者胜出,结果一样轮询。

LBLC:locality-Based Least Connection 基于本地的最少链接,相当于DH+LC,用的较少。

LBLCR:Replicated and Locality-Based Least Connection带复制的基于本地的最少链接,用的较少。

4、LVS集群服务CS(Cluster Service):

根据请求的目标套接字(包括端口协议类型TCP或UPD)来实现转发。

172.16.100.7:80

#yum -y install ipvsadm

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-O] [-M netmask]

ipvsadm -D -t|u|f service-address

ipvsadm -C

ipvsadm -R

ipvsadm -S [-n]

ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]

ipvsadm -d -t|u|f service-address -r server-address

ipvsadm -L|l [options]

ipvsadm -Z [-t|u|f service-address]

(1)、集群服务相关,注意ipvs不可和iptables同时使用,定义ipvs是要至少要清空iptables的filter,要执行如下命令。

iptables -F -t filter

service iptables save

A、-A:定义一个集群服务。

a、-t:tcp

b、-u:udp

c、-f:firewall mark防火墙标记,通常用于将两个或以上的服务绑定为一个服务进行处理时使用。

d、service-address:

-t IP:Prot

-u IP:Prot

-f firewall_mark

e、-s scheduler:默认WLC

f、-p [timeout] :persistent Connection 持久链接。

B、-E:修改定义过的集群服务属性。

C、ipvsadm -D -t|u|f service-address 删除指定的集群服务。

D、ipvsadm -C :清空所有的集群服务

E、ipvsadm -S:定义的集群服务要保存,否则机器重启失效。

F、ipvsadm -R :载入集群服务。

G、ipvsadm -L :查看ipvs规则

-n:数字格式显示IP地址。

-c:显示连接数相关信息。

--stats:显示统计数据。

H、ipvsadm -Z :计数器清零。

(2)、RS相关。

A、-a:向指定的集群服务CS中添加RS

-t|u|f service-address :将RS添加到那个集群服务CS中

-r server-address:指定RS,可以包含IP:port,只有支持端口映射的LVS类型才允许此处使用跟集群服务不同的端口。

[-g|i|m] 指定LVS类型,-g(Gateway) 为DR,默认为DR;-i(ipip)TUN;-m(masquerade)NAT

-w weight:指定RS权重,可以省略默认为1.

B、-e:修改指定的集RS属性

C、ipvsadm -d -t|u|f service-address -r server-address:从指定的CS中移除一个RS

5、LVS持久连接类型:可以对LVS的任意调度算法实现持久连接;在定义集群服务时,使用参数-p 指定持久连接类型即可,这样就实现了session的绑定。

PCC 持久客户端连接:在有效时长内,将来自于同一个客户端发往VIP的所有请求(注意不管端口)统统定向同一个RS。

PPC:在有效时长内,将来自于同一个客户端发往某VIP的某端口的所有请求统统定向同一个RS。

PFMC:端口绑定(port affinity ),基于防火墙标记,将两个或以上的端口绑定为同一个服务。可PFMC其端口范围介于PCC和PPC之间。

6、LVS的缺陷以及使用场景。


(1)、LVS的缺陷是自身无法感知后台RS的运行状态,如果某个RS故障,LVS一样会根据调度算法将请求分配给它。

解决方案:写脚本检查或者keeplalived、ldirectord(heartbeat、corosync)

(2)、Director的自身可用性,即高可用问题?

解决方案:keeplalived、ldirectord(heartbeat、corosync)

(3)、只有在并发连接数非常大时,才使用LVS做负载均衡,如淘宝、京东;对于小型的站点一般使用Haproxy。

转载于:https://blog.51cto.com/8757576/1660510

集群类型以及提高服务器性能的技术概述相关推荐

  1. 万级K8s集群背后etcd稳定性及性能优化实践

    作者:唐聪, 腾讯 CSIG 后台开发工程师 本文旨在帮助大家了解 etcd集群场景下稳定性与性能优化经验引的容量,避免给后面留坑. 背景与挑战 随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云 ...

  2. 裸金属服务器性能描述,金山云-文档中心-集群支持裸金属服务器

    容器服务支持金山云裸金属服务器作为集群中的节点.容器直接运行于高性能裸金属服务器上,无虚拟化性能损失,将为您带来更强劲的性能体验. 使用前须知 金山云容器服务暂不负责裸金属服务器的创建,裸金属服务器仅 ...

  3. Keepalived高可用集群来实现web服务器负载均衡集群

    Keepalived高可用集群来实现web服务器负载均衡集群 一.Keepalived的介绍 Keepalived是一个提供HA重要的底层工具,最早期的作用是为ipvs提供HA功能的,还是一个可以提供 ...

  4. node redis集群_如何使用集群扩展Node.js服务器

    node redis集群 by Michele Riva 由Michele Riva 如何使用集群扩展Node.js服务器 (How to scale your Node.js server usin ...

  5. Elasticsearch集群类型和选举策略

    集群类型 空集群     空集群是集群的节点只含有一个节点数的集群部署策略,当集群的节点只含有一个,该节点默认为主节点,所有的索引分片都是会部署到该节点上,如果索引的分片策略设置副本数时,此时的集群节 ...

  6. 高密度ARM集群(阵列)服务器-随录

    **高密度ARM集群(阵列)服务器-随录** 1.产品概述 随着移动互联网的高速发展,移动应用越来越丰富,端云架构的应用需求也越来越 多,因此产生了"服务器+移动端"的应用形式. ...

  7. WCF学习之:利用Throttling提高服务器性能

    如果WCF服务用到服务器的稀缺资源,该资源的创建和销毁极耗服务器时间和性能,这种情况如果提高服务器性能呢?     我们知道WCF的实例模式有三种:Per-Call .Per-Session .Sin ...

  8. Linux 安装并搭建 3.10.7 RabbmitMQ 集群之搭建RabbitMq服务器(一)

    原文链接:Linux 安装并搭建 3.10.7 RabbmitMQ 集群之搭建RabbitMq服务器(一) 关注公众号"超级IT人生"不走丢,查看最新技术文章 RabbitMQ的应 ...

  9. redis5.0集群搭建(两台服务器)

    redis5.0集群搭建(两台服务器) 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-5.0.2 版本. 两台虚拟机都是 C ...

最新文章

  1. 关于学习Python的一点学习总结(54->集合->堆->双端队列)
  2. c++11中thread join和detach的区别
  3. 数据结构 【实验3 链表基本操作】
  4. python 数据平滑_数据平滑方法的原理和应用
  5. 计算机理论python字符串作业_[Python基础 ] Day_07_作业参考答案
  6. python机器学习案例系列教程——k均值聚类、k中心点聚类
  7. 《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka的常用配置
  8. 马蹄疾 | 聊聊你可能并没有完全掌握的 Flex 布局:从概念入手,丝丝入扣
  9. Error in loadNamespace(name) : there is no package called ‘yaml’
  10. 第一章 Crystal Reports简介
  11. 12、阈值分割基础理论
  12. ad采样的符号位_AD采样后数据如何在FPGA中转化为有符号数
  13. Android - MTK系统源码结构
  14. dm385和8127的区别
  15. 51单片机数码管密码锁
  16. MapReduce之Map join操作
  17. 导出excel.支持在线打开保存
  18. 怎么在b站引流?b站怎么吸粉?b站引流技巧和方法
  19. Linux故障之内核反向路由检测
  20. linux怎么找宝塔地址,宝塔Linux面板安全入口地址忘了(方法一)

热门文章

  1. 全网最全的git命令大全
  2. JavaScript 字符串截取方法汇总
  3. JavaScript 之arguments、caller 和 callee 介绍
  4. 虚拟云服务器 网站备案,云虚拟主机可以做备案吗
  5. java json float_java – Json解析问题(值自动更改为float)
  6. 浙江工商大学计算机专业有博士点吗,[浙江工商大学]统计学(博士点)
  7. Excel 如何让复制的内容保持原文本格式
  8. render注册一个链接组件_vue: 单文件组件 render函数
  9. dell服务器硬盘锁_服务器十大排行
  10. matlab求傅里叶级数展开式_明明学过积分和三角函数就能秒理解傅里叶变换.........