系统架构基础知识入门——架构初探

本文从架构初探出发,介绍了系统架构的基础概念,包括单体架构、垂直切分、SOA和微服务。随着业务发展,企业级后端面临挑战,文章深入探讨了云计算、云原生、服务网格以及自动扩缩容等解决方案,以应对资源管理和性能优化等问题。
摘要由CSDN通过智能技术生成

架构初探 - 谁动了我的蛋糕

内容来自字节跳动后端青训营。

一、什么是架构

架构抽象定义:

  • 是有关软件整体结构与组件的抽象描述

  • 用于指导软件系统各个方面的设计

听不懂啊!!!

简单来说就是架构在实现软件方法选择上有指导作用!

image-20220522150111230

架构如果没打好,大厦容易倒!

问题提出!

蛋糕坊要开业了!需要解决以下的问题:

  1. 咋做蛋糕?(先亲自做把!)
  2. 如何卖蛋糕?(客流量不大,边做边卖先!)

单体架构

All in one,所有的东西都在一个进程里,部署在一个机器上。

优点:

  • 简单

缺点:

  • 运维需要停服,用户体验较差(兰师傅拉屎去了,没人做了)

  • 承载能力有限,会产生c10k问题。(人太多了,兰师傅忙不过来了)

C10K问题可以具体看一下下面这个文章

C10k问题简述_爱思考的实践者的博客-CSDN博客_c10k问题

简单来说就是,C10K问题,本质上是操作系统的问题。对于Web1.0/2.0时代的操作系统而言, 传统的同步阻塞I/O模型都是一样的,处理的方式都是requests per second,并发10K和100的区别关键在于CPU。

创建的进程、线程多了,数据拷贝频繁(缓存I/O、内核将数据拷贝到用户进程空间、阻塞), 进程/线程上下文切换消耗大, 导致操作系统崩溃,这就是C10K问题的本质!

可见,解决C10K问题的关键就是:尽可能减少CPU等核心资源消耗,从而榨干单台服务器的性能,突破C10K问题所描述的瓶颈。

单体架构

image-20220522151446813

在单机架构的基础上,将进程部署到多个机器上。

优点:

  • 具备水平扩容能力

  • 运维不需要停服

缺点:

  • 后端进程职责太多,越来越臃肿(啥都得负责啊!只是简单的多部署了几台机器而已,这师傅啥蛋糕都得做,还得自己负责烤,和面等等任务)

  • 爆炸半径较大,进程中一个很小的模块出现问题,都可能导致整个进程崩溃!(孙师傅做蛋糕的时候烤箱坏了,他这人就芭比q了,后续没法做了)

垂直切分

在单机架构基础上,将进程按照某种依据切分开。比如,A 软件和 B 软件的后端原先采用单机架构部署,那就是一个进程部署在多个机器上;如果用垂直应用架构,可以将 A 和 B 的后端拆分为 A、B 两个进程,然后再按照单体模式的思路,部署在多个机器上。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值