当前位置: 首页 > news >正文

系统分析师20:【案例特训专题3】系统设计与运维

1 Web开发

1.1 Web开发涉及技术的综合应用

  • 高性能
  • 高可用
  • 可维护
  • 应变
  • 安全
    在这里插入图片描述

1.2 Web系统架构演化过程

1.2.1 单台机器到数据库与Web服务器分离

在这里插入图片描述

  • 早期的web系统往往以单台机器形态出现,web网站无论是前端还是后台数据库都部署在一台服务器上,部署起来比较简单;
  • 当单台服务器面临很大的访问请求时,无法应对这些请求,此时可以将数据库与web服务器分离,将系统拆分为应用服务器和数据库服务器,整体效率要高些。

1.2.2 应用服务器集群

在这里插入图片描述
当并发程度进一步扩大,两台服务器无法应对请求时,进一步考虑把原来单台应用服务器升级为应用服务器集群

系统演变到这里,将会出现下面几个问题:
1、用户的请求由谁来转发到具体的应用服务器=》负载均衡
2、用户如果每次访问到的服务器不一样,那么如何维护session的一致性=》有状态与无状态问题

2 负载均衡

2.1 负载均衡的引入

在这里插入图片描述

2.2 负载均衡技术

在这里插入图片描述

2.2.1 应用层负载均衡

  • http重定向。HTTP重定向就是应用层的请求转发。用户的请求其实已经到了HTTP重定向负载均衡服务器,服务器根据算法要求用户重定向,用户收到重定向请求后,再次请求真正的集群。
    • 特点:实现简单,但性能较差。
  • 反向代理服务器。在用户的请求到达反向代理服务器时(已经到达网站机房),由反向代理服务器根据算法转发到具体的服务器。常用的apache、nginx都可以充当反向代理服务器。
    • 特点:部署简单,但代理服务器可能成为性能的瓶颈。

2.2.2 传输层负载均衡

  • DNS域名解析负载均衡。DNS域名解析负载均衡就是在用户请求DNS服务器,获取域名对应的IP地址时,DNS服务器直接给出负载均衡后的服务器IP。
    • 特点:效率比HTTP重定向高,减少维护负载均衡服务器成本。但一个应用服务器故障,不能及时通知DNS,而且DNS负载均衡的控制权在域名服务商那里,网站无法做更多的改善和更强大的管理。
  • 基于NAT的负载均衡。基于NAT的负载均衡将一个外部IP地址映射为多个IP地址,对每次连接请求动态地转换为一个内部节点的地址。
    • 特点:技术较为成熟,一般在网关位置,可以通过硬件实现。像四层交换机一般就采用了这种技术。

2.3 负载均衡算法

2.3.1 静态算法(不考虑动态负载)

  • 轮转算法:轮流将服务请求(任务)调度给不同的节点(即:服务器)
  • 加权轮转算法:考虑不同节点处理能力的差异
  • 源地址哈希散列算法:根据请求的源IP地址,作为散列键从静态分配的散列表找出对应的节点
  • 目标地址哈希散列算法:根据请求目标lP做散列找出对应节点
  • 随机算法:随机分配,简单,但不可控

2.3.2 动态算法(考虑动态负载)

  • 最小连接数算法:每个节点处理能力相同的情况下,新请求分配给当前活动请求数量最少的节点
  • 加权最小连接数算法:考虑节点处理能力不同,按最小连接数分配
  • 加权百分比算法:考虑了节点的利用率、硬盘速率、进程个数等,使用利用率来表现剩余处理能力
  • 硬件负载均衡:FS
  • 软件负载均衡:LVSNginx、HAproxy

3 Session共享机制

在这里插入图片描述- 方案1:携带session的cookie;

  • 方案2:服务器间同步sesssion;
  • 方案3:将session存入redis。

4 有状态与无状态

  • 无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。
  • 有状态服务(stateful service)则相反,它会在自身保存一些数据,先后的请求是有关联的。
  • 判断以下构件是有状态服务还是无状态服务∶
    (1)ldentification Bean(身份认证构件):有状态服务
    (2) ResPublish Bean(资源发布构件):无状态服务
    (3)ResRetrieval Bean(资源检索构件):无状态服务
    (4)OnlineEdit Bean(在线编辑构件):有状态服务
    (5)Statistics Bean(统计分析构件):无状态服务

5 持久化技术——ORM

  • ORM (object Relational Mapping) :对象与关系数据之间的映射。
  • 映射关系表
    在这里插入图片描述
  • 实现技术对比表
    在这里插入图片描述

6 数据库读写分离化

  • 主从数据库结构特点
    1、一般:一主多从,也可以多主多从。
    2、主库做写操作,从库做读操作
  • 主从复制步骤:
    1、主库(Master)更新数据完成前,将操作写binlog日志文件。
    2、从库(Salve)打开I/O线程与主库连接,做binlog dump process,并将事件写入中继日志。
    3、从库执行中继日志事件,保持与主库一致。
    在这里插入图片描述
http://www.lryc.cn/news/467153.html

相关文章:

  • Linux 局域网中使用NTP配置时间服务
  • Shiro会话管理和加密
  • GPON、XG-PON和XGS-PON的区别
  • Spring 项目返回值枚举类编写技巧
  • 【操作系统】06.进程控制
  • 16天自制CppServer-day02
  • 时空智友企业流程化管控系统uploadStudioFile接口存在任意文件上传漏洞
  • Linux 中文件的权限说明
  • MySql数据库中数据类型
  • Godot中的信号
  • vba学习系列(8)--指定列单元格时间按时间段计数
  • 大型企业软件开发是什么样子的? - Web Dev Cody
  • 【stm32】DMA的介绍与使用
  • 哈希表的魔力
  • 《YOLO 目标检测》—— YOLO v3 详细介绍
  • WNN 多模态整合 | Seurat 单细胞多组学整合流程
  • 【Linux】磁盘文件系统(inode)、软硬链接
  • 网安加·百家讲坛 | 徐一丁:金融机构网络安全合规浅析
  • 九、pico+Unity交互开发——触碰抓取
  • 老机MicroServer Gen8再玩 OCP万兆光口+IT直通
  • jmeter 从多个固定字符串中随机取一个值的方法
  • priority_queue (优先级队列的使用和模拟实现)
  • VisionPro 手部骨骼跟踪 Skeletal Hand Tracking 虚拟首饰
  • class 9: vue.js 3 组件化基础(2)父子组件间通信
  • Laravel|Lumen项目配置信息config原理
  • 2024系统分析师考试---论区块链技术及其应用
  • 为您的 Raspberry Pi 项目选择正确的实时操作系统(RTOS)
  • 鸿蒙应用的Tabs 组件怎么使用
  • 第四天 文件操作与异常处理
  • 【密码分析学 笔记】ch3 3.1 差分分析