首页 > 其他分享 >从单服务器模式到负载均衡设计

从单服务器模式到负载均衡设计

时间:2022-12-13 20:36:43浏览次数:65  
标签:关系 负载 IP 数据库 扩展 服务器 从单

从单服务器模式到负载均衡设计

作者:Grey

原文地址:

博客园:从单服务器模式到负载均衡设计

CSDN:从单服务器模式到负载均衡设计

单服务器模型是最简单的一种架构,参考如下图
img

用户访问一个 URL,URL 会先到 DNS 服务器进行域名解析,然后返回给客户端一个 IP 地址,客户端会通过这个 IP 地址访问到真正的服务,服务接收到客户端请求以后,返回对应的 HTML 页面,就完成了整个过程。

当然,以上是静态页面,相对复杂的应用会配置数据库,架构如下

img

在选择数据库的时候,会涉及数据库选型问题,有两类比较主流的数据库可以选择,即关系型数据库非关系型数据库

关系型数据库也被称为关系型数据库管理系统(RDBMS),关系型数据库以表和行来表示和存储数据。其优势是你可以使用 SQL 语句在不同的数据库表中执行连接操作。

非关系型数据库也被称为 NoSQL 数据库。 一般被归纳为四类:键值存储、图形存储、列存储和文档存储。非关系型数据库一般不支持连接操作。

对于大多数开发者来说,关系型数据库是最好的选择,因为它们已经存在了40多年且一直运行良好;然而,如果关系型数据库不适合你的特定用例,

比如

  • 应用需要超低的延迟。

  • 数据是非结构化的,或者你没有任何关系型数据。

  • 只需要对数据进行序列化和反序列化(JSON、XML、YAML等)。

  • 需要存储大量的数据

则非关系型数据库可能是正确的选择。

关系型和非关系型数据库的选型可以参考这个网站:DB-Engines Ranking

随着用户数量增多,单服务架构的设计可能会导致一些问题,比如:

用户是直接连接到网络服务器的。如果网络服务器离线,用户将无法访问网站,在另一种情况下,如果许多用户同时访问网络服务器,并达到网络服务器的负载极限,用户一般会遇到较慢的响应或无法连接到服务器。

针对这些问题,有两种主要的思路,分别是:水平扩展垂直扩展

垂直扩展,简言之就是在你的服务器上增加更多的配置,比如 CPU、内存 等资源。

水平扩展,简言之就是增加更多的服务实例来扩展的服务能力。

当流量较低时,垂直扩展是一个很好的选择,简单直接。但是垂直扩展也有严重的局限性,因为

  • 不可能在一台服务器上增加无限的 CPU 和内存。

  • 垂直扩展不具备故障转移和冗余功能。如果一台服务器瘫痪了,整个网站/应用程序就会完全瘫痪。

由于垂直扩展的局限性,水平扩展对于大规模的应用来说是比较理想的。

水平扩展的一个技术就是负载均衡。可以比较好的解决这个问题。架构如下

img

如图所示,用户直接连接到负载均衡器的公共 IP。在这种设置下,网络服务器已经无法被客户直接访问。为了提高安全性,服务器之间的通信使用了私有 IP。私有 IP 是一个只能在同一网络中的服务器之间到达的 IP 地址;但是,它在互联网上是无法到达的。负载均衡器通过私有 IP 与网络服务器进行通信。
在图中,在添加了一个负载均衡服务器和第二个 Web 服务器后,我们成功地解决了没有故障转移的问题,并提高了Web层的可用性。

  • 如果服务器1离线,所有的流量将被路由到服务器2。这可以防止网站脱机。我们还将在服务器池中添加一个新的健康的Web服务器,以平衡负载。

  • 如果网站流量迅速增长,而两台服务器不足以处理这些流量,负载均衡器可以优雅地处理这个问题。你只需要向网络服务器池添加更多的服务器,负载平衡器就会自动开始向它们发送请求。

参考资料

System Design Interview

标签:关系,负载,IP,数据库,扩展,服务器,从单
From: https://www.cnblogs.com/greyzeng/p/16980532.html

相关文章

  • Horizon安装副本服务器报错(未解决,猜测可能是删除时候没有清理注册表导致的)
     在本地LDAP群集中找不到架构主机。节点******.com上发生错误查找架构主机时出错。请确保此节点可访问并且没有LDAP复制问题。环境:已经安装好了一次副本服务器,后续因为......
  • Linux 配置FTP服务器详解
    在这篇文章中你将学会如何在Linux环境下安装FTP服务器,设置FTP访问权限,验证服务配置是否成功0X01实验环境虚拟机:CentOS7物理机:Windows11虚拟软件:Vmware160X02安装F......
  • 公有云-实验三 使用无服务器函数发邮件
    实验三使用无服务器函数发邮件概述在本实验中,我们将会使用腾讯云的消息队列CKafka、无服务器云函数SCF和对象存储COS,实现一个异常日志检测及记录系统。当业务系统中的应......
  • 应用服务器小笔记
    转自:https://baike.baidu.com/item/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/4971773 一、应用服务器:通过各种协议把商业逻辑曝露给客户端的程序应用服务器......
  • socket的客户端,服务器范例
    socket的客户端,服务器范例:(一)范例一:(1)服务器端:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types......
  • Linux系统如何查看服务器带宽及网络使用情况
    前言操作系统:Linux操作环境:Centos7Linux系统中如何查看服务器带宽?本篇文章主要和大家分享一下Linux系统中查看服务器带宽的方法,有需要的朋友可以参考一下。 li......
  • 虹科方案 | 适用于 VMware vSphere® 环境的 Mac Pro® 和微型服务器存储连接
    一、前言Thunderbolt支持ATTO的VMWareESXi和ThunderLink产品线,使我们能够创建基于Mac的vSphere设置,从而能够为我们的macOS服务器提供虚拟化服务。将虚拟硬件、快照和Veeam......
  • https代理服务器
    0在netty(二十五)http代理服务器(四)困难 中,始终困惑于chrome(mac)不信任我们的自签名证书然而charles是做到了,我们从头来过,先不搞代理服务器的,先搞个简单服务器,排除是否是m......
  • 哪些操作会消耗海外服务器带宽?
    作为站长,肯定有遇见服务器带宽一直跑满或流量不够用的情况,为了保证网站的稳定运行,需要及时购买或升级流量带宽。那么你们知道为什么香港服务器带宽会跑满?下面我们就简......
  • NGNIX 配置一个服务器上80端口绑定多个域名多个网站
    NGNIX配置一个服务器上80端口绑定多个域名多个网站  1:域名解析修改: 修改回原来的主机: 2:Ngnix.conf补充:server{listen80;server_namexxx.comwww.xxx.com;......