架构初谈

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

架构初识

定义

  • 架构,又称软件架构。

    • 是有关软件整体结构与组件的抽象描述.。
    • 用于指导软件系统各个方面的设计
  • 通俗定义:

    • 实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用
  • 架构的重要性

    • 地基没打好,大厦容易倒
    • 地基坚实了,大厦才能盖得高
    • 站在巨人肩膀上,才能看得远

    • 架构没设计好,软件容易崩,用户体验上不去。最终要么重构,要么放弃

    • 架构设计好了,软件的稳定性上去了,用户体验高了,口碑一点点就打造出来了

    • 良好的架构基础,也为软件的未来发展提供了更多的可能。为用户赋能,实现自身价值

架构类型

  • 单机

    • 软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上

    • 优点

      • 简单
    • 问题

      • C10K问题——C10K 问题 (kegel.com)

        • C10 problem,即单机处理10k个并发连接的问题,随着 epoll 、kqueue等技术的不断发展,高性能网络编程回答了C10K问题、但在互联网飞速发展的今天、我们继续面对的C10M C10B等问题。
      • 运维需要停服

        • 任何运维操作都需要停服,因为只有一个单体服务,有用户使用的时间点没有办法运维
        • 单机服务的模式,除了简单之外没有任何优点。当今互联网时代,单机服务的形态一般只适合出现在预研或初创阶段,但凡业务有发展和迭代的诉求,就应该快速做架构迭代。
  • 单体

    • 单体架构——分布式部署
      • image-20220715101346349
      • 优点——水平扩容、运维不需要停服
      • 问题——职责太多,开发效率不高、爆炸半径大
posted @ 2022-10-23 18:54  Luciferpluto  阅读(1)  评论(0)    收藏  举报  来源