关于分布式,集群与负载均衡及其联系与区别

-- 关于分布式,集群与负载均衡相关的联系与区别
【官网】:#

应用场景

当单体应用无法满足需求,需要拆散服务,或横向增加服务器节点时我们慢慢的就要接触集群管理,分布式处理等问题了。

基础资源

使用须知

请结合实际应用场景处理相关问题

配置步骤

【分布式】.

[定义]

一个程序或系统,只要不同业务运行在不同的机器上,就可以叫分布式.


1)最简单的一个分布式架构图.

[分布式目的]

可靠性:解决中心化带来的中心宕机,整个系统崩溃的问题.

分散负载:减轻中心化带来的高负载。

[分布式的问题]

一致性

[1]Load Balance是负载均衡。

【集群】.

[定义]

集群就是实现相同业务的机器(物理的或逻辑的)集合,可以属于同一机房,也可分属不同的机房

但集群上跑的不一定是分布式系统。

1)分布式与集群的区别联系.


分布式(工作方式)

集群(节点集合)

概念

一个系统不同的业务模块运行在不同的机器上.

运行相同业务的多个机器(逻辑上的,可以不在同一个机房)

当一个节点挂掉后

系统崩溃

一个节点挂掉另外一个节点立刻顶上。

优化性能的方式

不同业务运行在不同节点,缩短业务执行时间

提高单位时间内的任务数

联系

分布式上每个节点(代表一个业务)都可以做集群.

[比喻]

饭店人多了,请多个厨师可以炒相同菜,厨师就是集群。

后来为了提高效率,请了切菜员,(切菜与炒菜就是分布式的).

后来切菜的也不够用了,又请了一个切菜员,切菜员也成了一个切菜的集群了。


[参考]https://www.cnblogs.com/aspirant/p/5697807.html

负载均衡】

[定义]

按照一定的策略把任务分配到不同的操作单元上去执行.

[负载均衡的实现方式]

概念

特征

http重定向

httpheadlocation重定向.

1:至少保证转移请求的压力小于执行请求的压力,才有意义.//类似下载站

2: 受限于主服务器的限制.

DNS负载均衡

Dns解析域名到ip.

1:可以把用户请求解析到最近的一个服务器。

2:会有解析缓存延时。

反向代理负载均衡

任何对于实际服务器的HTTP请求与响应都必须经过调度器

1几乎所有主流的Web服务器都热衷于支持基于反向代理的负载均衡.

2反向代理的调度器扮演的是用户和实际服务器中间人的角色,调度器转发请求并等待实际服务器的HTTP响应,并将它反馈给用户

3:策略丰富可以根据不同实际服务器配置设置权重。

4:调度服务器可以知道实际服务器的tcp连接数,响应时间,流量,是否可用等,可以基于此调节均衡策略.

5:由于使用http层面,建立连接这些有不小的消耗,性能极致无法发挥出来。

IP负载均衡(LVS-NAT)

NAT服务器:相对于反向代理负载均衡,它工作在传输层

它可以修改发送来的IP数据包,将数据包的目标地址修改为实际服务器地址

直接路由(LVS-DR)

NAT是工作在网络分层模型的传输层(第四层),而直接路由是工作在数据链路层(第二层)

它通过修改数据包的目标MAC地址(没有修改目标IP),将数据包转发到实际服务器上,不同的是,实际服务器的响应数据包将直接发送给客户羰,而不经过调度器。

IP隧道(LVS-TUN)

基于IP隧道的请求转发机制:将调度器收到的IP数据包封装在一个新的IP数据包中,转交给实际服务器, 然后实际服务器的响应数据包可以直接到达用户端。目前Linux大多支持,可以用LVS来实现,称为LVS-TUN,与LVS-DR不同的是, 实际服务器可以和调度器不在同一个WANt网段,调度器通过 IP隧道技术来转发请求到实际服务器,所以实际服务器也必须拥有合法的IP地址。



[]负载均衡有硬件和软件两种.

[硬件负载均衡]:

4-7层负载均衡功能做到一个硬件里面,如F5,梭子鱼.  f5-bigip 性能比较好,立竿见影,价格昂贵,一般适合于大型网站公司,网游公司。

[软件负载均衡]

分为四层和七层 LVS属于四层负载均衡,工作在tcp/ip协议栈上,通过修改网络包的ip地址和端口来转发, 由于效率比七层高,一般放在架构的前端. 七层的负载均衡有nginx, haproxy, apache等, 工作在应用层,因此可以将HTTP请求等应用数据发送到具体的应用服务器, 如将图片请求转发到特定的服务器上,总之可以做到更智能的负载均衡,这些功能在四层负载均衡上不好实现,一般放在架构的后面位置,布置在应用服务器前面.

[负载均衡的算法]

1. 轮询(Round Robin)

2、加权轮询(Weighted Round Robin)

3、动态轮询

4、随机

5、最快算法(最快算法基于所有服务器中的最快响应时间分配连接)

6、最少连接(系统把新连接分配给当前连接数目最少的服务器)

[参考]https://blog.csdn.net/nicewuranran/article/details/52860769

常见问题

快速入门

参考资料