架构初谈
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情
架构初识
定义
-
架构,又称软件架构。
- 是有关软件整体结构与组件的抽象描述.。
- 用于指导软件系统各个方面的设计
-
通俗定义:
- 实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用
-
架构的重要性
- 地基没打好,大厦容易倒
- 地基坚实了,大厦才能盖得高
- 站在巨人肩膀上,才能看得远
(
-
架构没设计好,软件容易崩,用户体验上不去。最终要么重构,要么放弃
-
架构设计好了,软件的稳定性上去了,用户体验高了,口碑一点点就打造出来了
-
良好的架构基础,也为软件的未来发展提供了更多的可能。为用户赋能,实现自身价值
)
架构类型
-
单机
-
软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上
-
优点
- 简单
-
问题
-
C10K问题——C10K 问题 (kegel.com)
- C10 problem,即单机处理10k个并发连接的问题,随着 epoll 、kqueue等技术的不断发展,高性能网络编程回答了C10K问题、但在互联网飞速发展的今天、我们继续面对的C10M C10B等问题。
-
运维需要停服
- 任何运维操作都需要停服,因为只有一个单体服务,有用户使用的时间点没有办法运维
- 单机服务的模式,除了简单之外没有任何优点。当今互联网时代,单机服务的形态一般只适合出现在预研或初创阶段,但凡业务有发展和迭代的诉求,就应该快速做架构迭代。
-
-
-
单体
- 单体架构——分布式部署
- 优点——水平扩容、运维不需要停服
- 问题——职责太多,开发效率不高、爆炸半径大
- 单体架构——分布式部署

浙公网安备 33010602011771号