【成为架构师2-2】伪分布式与垂直拆分:快速解决单机性能问题的实践方案

    技术2022-07-10  120

    系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

    目录

    1 架构演进阶段的新需求2 单机资源瓶颈产生时的环境3 架构演进,伪分布式,提升性能三大分离结构(图中仅两种)设计思路什么问题没有解决 4 垂直拆分,解耦四种垂直拆分:设计思路

    1 架构演进阶段的新需求

    原始的All in one 的单机系统无法满足需求,将会主要暴露出以下两个问题

    访问人多的时候,访问能够快一点 (性能问题)部分出错的时候不要全部挂掉 (耦合问题)

    2 单机资源瓶颈产生时的环境

    此时最大的成本,是时间成本能用“钱”解决的系统问题,往往不是问题老板最不愿意见到的,是解决一个系统问题,花很长时间(市场和投资人等不起)

    解决思路:增加硬件资源(时间短),避免大规模代码重构(时间长)

    3 架构演进,伪分布式,提升性能

    三大分离结构(图中仅两种)

    读写分离(会引发主从延时的问题)动静分离,图中表现了文件服务器(第三方的OSS也是)与业务逻辑的服务器分离;现代前端,像vue就是动静分离的,对比古典的jsp,就无法实现动静分离前后台分离,客户端访问与后台管理访问分离
    设计思路

    用最快的速度,增加硬件资源,提升系统性能,增加访问速度

    什么问题没有解决
    耦合问题:依旧是一个挂了全部就挂了主从延时新问题读写分离只能提升读性能,无法解决数据库量的问题

    4 垂直拆分,解耦

    五八同城早期的页面结构,就像是BBS一样 有四种主要结构:首页、贴子发布页、帖子(分类)列表、帖子详情

    四种垂直拆分:
    业务垂直拆分(拆分的基础和依据,还是沈剑的那句话“脱离业务的架构,都是耍流氓”)代码垂直拆分(子系统解耦)数据库垂直拆分(数据量降低,延时缓解)研发团队垂直拆分(专业化,效率提升)

    设计思路

    用最快的速度,增加硬件资源,解耦


    伪分布式之所以称之为“伪”是因为它在整体系统层面依旧是一个单体,垂直拆分只是子系统之间实现了部分解耦,子系统之间有了一定的隔离性,但它也依旧是一个整体。

    下一篇将介绍反向代理,实现真正的多机集群,并讨论nginx的负载均衡问题。

    上一篇回顾:【成为架构师2-1】容量设计:流量高低,对架构究竟有什么影响 下一篇更精彩:【成为架构师2-3】反向代理:接入层扩容,负载均衡

    Processed: 0.010, SQL: 9