Web服务:集群与负载均衡的基本介绍以及在Python Web下的搭建

集群与分布式

三大结构:

链接:https://www.zhihu.com/question/20004877/answer/282033178

单机结构

单机结构是我们平常最常用的结构,当一个系统业务量很小的时候,所有的代码都放在一个项目中,然后这个项目部署在一台服务器上。整个项目所有的服务都由这台服务器提供。这就是单机结构。
当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式。

集群结构

单机处理到达瓶颈的时候,就把单机结构的项目复制几份,这样就构成了一个“集群”。集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成了一个集群。每个节点都提供相同的服务,那么这样系统的处理能力就相当于提升了好几倍(有几个节点就相当于提升了这么多倍)。

但是用户的请求究竟由哪个节点来处理呢? 要实现这个功能,就需要在所有节点之前增加一个“调度者”的角色,用户的所有请求都先交给它,然后它根据当前所有节点的负载情况,决定将这个请求交给哪个节点处理。这个“调度者”就是——负载均衡服务器,本段所描述的功能就是负载均衡

但是,当你的业务发展到一定程度的时候,可能会出现一个问题——无论怎么增加节点,整个集群的性能提升效果并不明显。这时候,就可以用分布式结构。

分布式结构

分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,这些子系统能够独立运行在web容器中,即这个系统是由一个个子系统共同协作,每个子系统完成一部分任务,从而实现整个系统的业务功能。


集群与负载均衡

单机结构简要示意图:
在这里插入图片描述
集群结构简要示意图:
在这里插入图片描述
Django/Flask在Linux上的部署方式

所采用的方案
Nginx(Web Server) + uWSGI(通信接口) + Django/Flask(Web APP)

概念介绍

  • WSGI
    Web服务器网关接口(Python Web Server Gateway Interface)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。
  • uWSGI
    可以看作是一个应用程序,帮助我们实现WSGI协议。
  • Nginx
    Nginx是一款高性能的http服务器/反向代理服务器及电子邮件代理服务器。在这里,Nginx接受来自客户端的Http请求发送给uWSGI,uWSGI处理请求并将关键信息传递给web应用(django,flask等),应用返回Response经由uWSGI发送给Nginx,Nginx再发送给客户端。
  • 总结
    在本方案中,我们使用了Nginx的两大功能:反向代理与负载均衡,Nginx相当于是Web服务器,负责接收请求,以及进行负载均衡;uwsgi是服务器和服务端应用程序的通信协议,规定了怎么把请求转发给应用程序和返回。通信过程: 客户端发送一个http请求,被Nginx服务器接收,Nginx服务器将请求转发给uwsgi,uwsgi将请求转发给实现uwsgi协议的应用程序(Django/FLask)。

步骤概述
Linux环境下:

  1. 安装Nginx
  2. 安装uwsgi
  3. 修改nginx配置文件:nginx.conf(配置负载均衡)
  4. 修改uwsgi.ini配置文件,使其与nginx通信

详细搭建步骤链接:https://blog.csdn.net/qq_42517220/article/details/88917193

Nginx常用负载均衡的分配策略

https://blog.csdn.net/haeasringnar/article/details/82925372
https://blog.csdn.net/gu_wen_jie/article/details/82149003


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值