计算机软件架构发展史

计算机软件架构发展历史(一)
软件架构初识
概述
基本概念
软件架构演进过程
单体架构初步设计
Web服务与数据库分开
本地缓存和分布式缓存
反向代理与负载均衡设计
数据库读写分离设计
数据库按业务进行分库
大表拆分为小表
LVS或F5让多个Nginx负载均衡
DNS轮询实现机房的负载均衡
大应用拆分成小应用
抽离微服务实现工程复用
容器化技术设计及应用
云平台服务部署
总结(Summary)
重难点分析
FAQ分析
Bug分析
软件架构初识
概述
为了更好理解互联网软件架构,我们现在介绍一下,一百万到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知。

基本概念
在介绍架构之前,为了避免初学者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍。

分布式

系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。

高可用

系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性。保证系统的高可用性,可从如下几个9说起,如图所示:

为了提高可用性,我们要么提高系统的无故障时间,要么减少系统的故障恢复时间,这就需要我们知道故障的原因。这个原因通常分为两大部分:

无计划的系统故障
1)系统级故障:包括主机、操作系统、中间件、数据库、网络、电源以及外围设备。
2)自然灾害、人为破坏,以及供电问题等。

有计划的日常任务:
1)运维相关:数据库维护、应用维护、中间件维护、操作系统维护、网络维护。
2)升级相关:数据库、应用、中间件、操作系统、网络,包括硬件升级。

我们再对这些故障做个归类:

网络问题:网络链接出现问题,网络带宽出现拥塞等
性能问题:慢 SQL、Java Full GC、硬盘 IO 过大、CPU 飙高、内存不足等
安全问题:被网络攻击,如 DDoS 等。
运维问题:系统总是在被更新和修改,架构也在不断地被调整,监控问题等
管理问题:没有梳理关键服务及服务的依赖关系,运行信息没有和控制系统同步等
硬件问题:硬盘损坏、网卡出问题、交换机出问题、机房掉电、挖掘机问题等
总之,我们要正确认识故障,故障不可避免。尤其是在大型分布式系统中,出现故障是一种常态。有时出现故障根本就不知道出现在了什么地方。所以我们要对故障原因先有一个认识,与此同时我们要基于故障有应对的策略,也就是我们所说的“弹力

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值