📜  集群模块和负载均衡器的区别

📅  最后修改于: 2022-05-13 01:56:14.942000             🧑  作者: Mango

集群模块和负载均衡器的区别

负载平衡在多台服务器之间分配工作负载以提高性能,同时服务器集群,将多台服务器组合为一个实体。

集群模块或集群:集群是一组资源,它们试图实现一个共同的目标,并在组内相互了解。集群中的每个容器、服务器或虚拟服务器称为一个节点。集群通常涉及设置资源(通常是服务器)以在特定通道上交换规范并不断交换它们的状态,即当资源的状态也在其他地方复制时。例如,可以将许多服务器连接在一起以显示为单个服务器并共享一个 IP 地址。

cluster 模块通常支持两种分配传入连接的方法。循环方法,其中主进程侦听传入端口,接受新连接,然后以循环方式将它们分发给工作人员,并使用一些内置技术来避免工作进程过载。另一种方式是主进程创建监听套接字,然后将它们发送给感兴趣的工作人员。工作人员稍后直接接受传入的连接。

最基本的集群使用一对冗余服务器。更高级的集群包含许多其他不同的机器,每台机器都连接并交换有关状态和其他资源的信息。虽然集群在技术上可以包含不同类型的节点,但如果节点不相同,性能会降低。一些可用的集群是高可用性服务器集群、负载平衡集群、高性能集群和存储集群。

负载均衡器:负载均衡器是一种接收所有 HTTP 请求并将这些 HTTP 请求转发到一组服务器中的一个的技术。负载平衡旨在通过拆分作业或流量来避免对任何一台设备造成过度压力。我们可以使用负载平衡器来处理对一台服务器或另一台服务器的请求,但一台服务器不使用其他服务器的资源。此外,一种资源不与其他资源共享其状态。每个负载均衡器基本上都执行诸如不断检查哪些服务器已启动之类的任务。负载均衡器可以简单也可以复杂。简单的负载均衡器通常由 DNS 轮询和一个在 TCP 和 IP 层工作的 OSI 第 3 层/第 4 层 (L3/L4) 负载均衡器组成。更复杂的负载均衡器通常根据应用程序数据(OSI 第 7 层)分配工作

当收到新请求时,根据负载均衡策略将其发送到其中一台服务器。当接收到已经有会话的用户的请求时,将用户发送到同一台服务器(以防止用户转到不同的服务器而无法真正做任何工作)。市面上有很多强大的负载平衡工具,比如 Nginx 或 HAProxy。

Cluster Module 和 Load Balancer 的相似之处:这两种技术有几个共同点:

  • 对于任何外部设备,这两种技术通常看起来都是一个管理所有请求的单一机器。
  • 它们通常都包含反向代理技术,允许单个 IP 地址将流量重定向到不同的 IP 或 MAC 地址。
  • 这两种技术都是为管理数据中心的物理服务器而开发的,但后来扩展到应用程序,创建虚拟服务器、云服务器和容器技术。

集群模块和负载均衡器的区别:

Load Balancers

Cluster Module

Load Balancers distribute the processing load among the group of servers.A cluster is a group of servers that run as if it were a single entity.
Load balancing can be more simple to deploy with different types of serversIt usually requires identical servers within the cluster
Load balancers require additional networking expertise for managing the different types of connected serversServer clusters are more self-contained and managed by a controller automatically
Load balancers can operate independently of the destination servers and thus consumes fewer resources.Cluster modules require node managers and node agents to communicate within the cluster which occupies bandwidth and processing on the servers

Relatively less resilient Load Balancing for applications

eg.-While doing transactions If one server fails, the customer has to re-enter data again from the start as the user state will be lost.

Server clusters are more resilient for applications

eg.-If any server got failed during the transaction, another server within the cluster will work and the customer will complete the transaction.