集群和负载均衡的区别 nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集群和负载均衡的区别 nginx相关的知识,希望对你有一定的参考价值。

1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。

3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统 (Cluster)主要解决下面几个问题:高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
参考技术A 集群和负载均衡的区别如下:
1、集群(Cluster)
所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
2、负载均衡(Load Balance)
网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。
3、特点
(1)高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
(2)高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。
(3)负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
LVS系统结构与特点
1. Linux Virtual Server:简称LVS。是由中国一个Linux程序员章文嵩博士发起和领导的,基于Linux系统的服务器集群解决方案,其实现目标是创建一个具有良好的扩展性、高可靠性、高性能和高可用性的体系。许多商业的集群产品,比如RedHat的Piranha、 Turbo Linux公司的Turbo Cluster等,都是基于LVS的核心代码的。
2. 体系结构:使用LVS架设的服务器集群系统从体系结构上看是透明的,最终用户只感觉到一个虚拟服务器。物理服务器之间可以通过高速的 LAN或分布在各地的WAN相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的物理服务器,让整个集群表现得像一个服务于同一IP地址的虚拟服务器。
3. LVS的三种模式工作原理和优缺点: Linux Virtual Server主要是在负载均衡器上实现的,负载均衡器是一台加了 LVS Patch的2.2.x版内核的Linux系统。LVS Patch可以通过重新编译内核的方法加入内核,也可以当作一个动态的模块插入现在的内核中。
参考技术B 集群是集群,也就是2个以上的nginx服务器来共同进行分配分担任务。
负载均衡(用nginx)他只是负责转发收到的数据,本身并不参与解析收到的信息,如同送快递他只负责送,不会看里面真的是什么东西

SignalR集群采用Nginx进行负载均衡后连接失败

参考技术A 笔者在近期使用signalr开发一个即时Web聊天应用,为了以后打基础,使用Redis做了一个简单的消息队列。但是当signalr服务器进行集群化的时候,由于使用了两个以及以上的集群, 在初步实验的时候,在JS连接客户端的时候出现了一下的客户端报错。由于在一开始的单例服务中, 使用反向代理是完全可行的。所以,排除掉了服务器端编写的错误。

    之后,笔者在服务器端查看了有关SignalR服务的日志。在对比日志后发现, 在用户的一次连接中, 两个服务端同时生成一个Connection Id 。并在握手失败后,又移除的Connection Id 。

    经过对比后,笔者进一步猜想,可能是由于负载均衡的时候将JS客户端的请求分发到多个signalr实例,所以造成了,虽然客户端的连接到服务端,由于消息包接受的并不完整而导致,握手流程的失败。

    而后,笔者将Nginx的服务器中的负载均衡方式由默认配置,改为了 ip_hash ,而后一次通过了握手,连接建立成功。

以上是关于集群和负载均衡的区别 nginx的主要内容,如果未能解决你的问题,请参考以下文章

集群和负载均衡的区别 nginx

SignalR集群采用Nginx进行负载均衡后连接失败

ngin负载均衡集群

服务器如何实现集群和负载均衡

Eureka高可用与负载均衡

阿里云自建k8s集群使用slb负载均衡