• 负载均衡 分布式 集群


    单机模式

    例如有一个在线商城系统,如果这个系统业务量很小,比如在校学生自己随便写的一个小项目,所有的代码都放在一个项目store-web中,然后把这个项目部署在一台服务器上。整个项目所有的服务都由这台服务器提供,这就是单机结构。

    集群模式

    如果业务量增大,一个服务器已经处理不了当前的数据量时,可以采用集群模式。集群模式简单来说,就是将同一份项目代码放在多个服务器上,这多个服务器中每个服务器就是一个节点,所有节点构成一个集群。也就是说每台服务器都跑着相同的项目代码(即store-web)。这样通过将大量请求分配给不同的节点来执行,可以提高系统的处理能力。理论来说有多少个节点系统的处理能力就能提升多少倍。

    这里有一个问题就是如何将大量请求分配给集群中不同的节点来执行。这个就涉及到负载均衡技术。

    负载均衡

    负载均衡服务器起着调度者的作用,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台服务器去处理。负载均衡服务器如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。

    负载均衡经典的有四种实现方式:

    • HTTP重定向实现负载均衡
    • DNS负载均衡
    • 反向代理负载均衡
    • 负载均衡组件

    分布式架构

    还是那个在线商城,如果采用分布式架构,就不能将所有业务塞进一个项目store-web了。需要按照功能模块将业务分解,每个业务构成一个可以单独运行的子系统,所有子系统通过RPC或者MQ等方式互相通信,子系统之间相互调用/依赖来完成在线商城系统的所有功能。比如可以将在线商城系统(store-web)分为:单点登录系统(storelogin-service)、订单系统(storeorder-service)、购物车系统(storecar-service)、搜索系统(storesearch-service)、信息管理系统(stroremng-service)等。

    • 系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。
    • 系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些服务。假设这个商城要搞一次大促,下单量可能会大大提升,因此我们可以针对性地提升订单系统、产品系统的节点数量,而对于后台管理系统、数据分析系统而言,节点数量维持原有水平即可。
    • 服务的复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发。


  • 相关阅读:
    STL中关于map和set的四个问题?
    PHP之Zip扩展,解压缩文件,ZipArchive类
    PHP之音乐ID3扩展
    关于PHP执行超时的问题
    PHP中GD库安装
    PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()
    PHP之xdebug详解
    PHP上传文件详解
    php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点
    深入研究php://input与php://output
  • 原文地址:https://www.cnblogs.com/fan-1994716/p/11923301.html
Copyright © 2020-2023  润新知