当前位置: 首页 > 知识库问答 >
问题:

负载均衡器、服务器任务、拆分服务器和AWS实例

邓鸿雪
2023-03-14

我正在尝试学习负载平衡和服务器是如何工作的(既有云服务器,也有常规池服务器)。根据我的理解,负载均衡器将用户的请求重定向到压力/连接量最少的服务器,这样无论有多少用户在发出相同的请求,网页都可能快速加载。我感到困惑的部分是每个服务器所做的任务。从我在网上看到的图和诸如此类的东西来看,似乎有多个服务器执行不同的任务,例如发送视图文件(html)、发送静态内容或数据库服务器(MySQL)。但我也听说这样做可能是不好的,因为拆分服务器会使事情变得复杂,例如,使用不同的DNS,每个DNS做不同的事情。所以我想我需要澄清的是,服务器只是在一个服务器上做它需要做的所有事情吗,所以我的意思是,如果一个请求要求一个视图文件,它会被送到同一个服务器上,那个服务器处理静态图像请求,或者post请求,或者get请求等等。

关于AWS实例,这是否意味着每个实例只是您所拥有的“设置”的另一个副本。意思是一个实例的服务器A与数据库服务器A相同,但另一个实例只是它的另一个副本,所以第二个实例的服务器A与数据库服务器A相同?

                            Server A (for doing everything such as sending 
                                      view file, get requests static 
                                      assets etc.)
                            Server B (For database MySQL)
                           /
user ---> DNS ---> load b. -  Server A (for doing everything such as 
                                        sending view file, get requests 
                                        static assets etc.)
                              Server B (For database MySQL)
                           \ 
                              Server A (for doing everything such as 
                                        sending view file, get requests 
                                        static assets etc.)
                              Server B (For database MySQL)

所以基本上,我想问的是,负载均衡器是重定向所有的服务器,使其具有相同的任务,还是负载均衡器将它们发送到具有不同任务的不同服务器。如果是后者,它如何知道什么时候将它发送到服务器,例如服务静态文件,如果有许多请求到这个服务器,负载均衡器将如何处理它?

我的小图中的每组服务器(服务器A和服务器B)是AWS实例的样子吗?

共有1个答案

沈旻
2023-03-14

答案是,服务器执行您配置的任何操作。

有时,人们设计他们的系统,使每个服务器都能响应任何请求,有时,他们有单独的服务器用于单独的任务(例如,一些服务器处理移动请求,一些服务器处理身份验证请求,另一些服务器处理web请求)。在AWS术语中,这些不同的服务器组将是单独的目标组,应用程序负载均衡器将被配置为根据URL的内容向不同的目标组发送请求。

不过,在事情上...数据库服务器从来不放在负载均衡器后面,如上面所示。只有应用程序服务器与数据库服务器进行通信。这就形成了一个三层体系结构:

Load Balancer -> Application Servers -> Database

通常的做法是将数据库放在单独的服务器(或服务器集群)上,以便它们独立于应用程序。这允许应用程序通过添加/删除应用程序服务器来扩展,而不会影响数据库。

将静态内容卸载到AmazonS3也是值得的。这可以像在标记中更改URL一样简单。这改善了带宽,因为AmazonS3是巨大的,这意味着通过应用服务器的流量更少。这改进了应用程序的缩放。

 类似资料:
  • 试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv

  • 用于设置容器内pod的访问方式。 服务 服务定义了访问后端Pod的访问方式。 路由 路由是允许访问集群内路由的规则集合。

  • 我想知道是否有可能将Google云负载平衡器链接到一个外部服务器——一个托管在Google云之外的服务器? 因此,负载均衡器可能会链接到Google Cloud实例,但也可能链接到外部服务器。

  • 负载均衡即服务(Load Balance as a Service,LBaaS)是一项网络高级服务。 顾名思义,它允许租户动态的在自己的网络创建一个负载均衡设备。 负载均衡,可以说是分布式系统中比较基础的组件,它接收前端过来的请求,然后将请求按照某种均衡的策略转发给后端资源池中的某个处理单元,以完成处理。进而可以实现高可用性和横向的扩展性。 OpenStack Neutron 通过高级服务扩展的形

  • 从我们的应用程序创建和运行开始,我们就需要一种发送信息到外边的方法。如果我们当前运行多个 app, 它们也需要一种方法来找到彼此。 我们可以通过域名系统(DNS)使用Mesos-DNS作为服务发现。Mesos-DNS 会给正运行在 Mesos 上的每个应用程序生成一个主机名, 在当前的机器上把这些名字转化成IP地址和端口。如果通过多个 framework(不只是 Marathon)发布应用程序,M

  • 目标:将弹性/静态IP分配给负载平衡器(LB),以服务于处理DNS(端口53)、HTTPS(端口443)、HTTP(端口80)的EC2实例。 需要静态IP来正确配置DNS记录(即A记录)。需要在后端/服务器上终止TLS,以提供无限制的 经典的负载平衡器允许自定义安全规则,并允许在EC2实例上终止SSL。问题是静态IP不能分配给经典LB,只能分配给其中的单个实例,这无法平衡负载。 要分配静态IP,我