什么是架构?架构如何演进?

大家好,我是IT孟德,You can call me Aman(阿瞒,阿弥陀佛的ē,Not阿门的ā),一个喜欢所有对象(热爱技术)的男人。我正在创作架构专栏,秉承ITer开源精神分享给志同道合(爱江山爱技术更爱美人)的朋友。专栏更新不求速度但求质量(曹大诗人传世作品必属精品,请脑补一下《短歌行》:对酒当歌,红颜几何?譬如媳妇,吾不嫌多...青青罗裙,一见动心,但为佳人,挂念至今...),通过朴实无华、通俗易懂的图文将十六载开发和架构实战经验娓娓道来,让读者茅塞顿开、相见恨晚...如有吹牛,不吝赐教。关注wx公众号:IT孟德,一起修炼吧! 

专栏文章推荐:

为什么要用分布式ID?雪花算法有哪些坑?

网关有什么用?如何进行网关选型?

 架构实战:2万字真实案例全方位解析高并发系统性能优化之道

 架构师指南:像呵护感情一样构建无懈可击的系统稳定性防线

系统性能评估:如何定义并发数、响应时间和吞吐量

实战:混合云架构Nginx+Lua实现流量跨机房分发

架构图的魅力:如何用UML提升架构设计的质量

为什么要做架构设计?架构设计包含哪些内容?

架构师的职责是什么?程序员如何转型为架构师?

Mysql数据库连接池druid、hikaricp优化实战

1、前言


        我们的城市最初可能只是一个维持极少人生活的小渔村单体架构。为了响应总设计师“构建社会主义市场经济”的伟大愿景和“打造改革开放经济特区”的宏伟蓝图,适应下海潮、打工潮居住生活的楼房集群开始疯狂增长。随着外来人口流量越来越大,集居住、工作、购物、教育和医疗等于一体的聚居地各种弊端日益突出,交通、消防、卫生和治安等问题严重制约城市进一步发展,于是住宅小区、金融街、商业街、工业园、教育城等独立的集群应运而生,分布在城市不同的功能区通过马路、立交、地铁等互联互通。城市里早晚高峰的流量存在明显的波动规律,潮汐车道、地铁发班频率都会动态调整,节假日期间大量的政府单位停车场会对外开放,体育场所和公园等同时具备应急功能,这种弹性设计在保证城市灵活运转的前提下持续优化资源利用率。

2、系统架构的定义


        系统架构(System Architecture) 是描述单个或多个系统整体结构的设计蓝图,定义了系统的组件划分、部署策略、交互方式以及非功能性需求(性能、可用性、可扩展性...)。系统架构通过集群实现资源聚合与高可用,借助分布式提升容错与扩展性,并依托弹性机制动态适应变化。其核心目标是通过结构化设计实现系统功能的高效运行、资源的灵活调度以及对外部环境变化的动态适应能力。

  • 集群(Cluster):多台物理或虚拟服务器组成的协同工作单元,通过负载均衡故障转移等技术解决相同服务单点故障和性能瓶颈问题。

  • 分布式(Distributed):将系统功能模块拆分到多个独立节点上,通过消息传递或远程调用协作共同完成业务目标,本质是通过去中心化解耦系统复杂性、提升系统的扩展性和容错性。

  • 弹性(Elastic):根据业务需求动态调整计算、存储等资源,实现资源的高效利用与业务连续性保障。

3、演进路径


        架构演进通常遵循从简单到复杂、从集中到分布、从刚性到弹性的路径(实际可能会有交叉和重叠)。主要阶段如下:

单体 → 分层(集群) → SOA→ 微服务(分布式) → 云原生(弹性)

3.1、单体架构

        所有功能模块(UI、业务逻辑、数据访问)集中在单一代码库中,部署为单一服务。

缺点:

  • 代码耦合度高,修改需全量发布。

  • 横向扩展难,只能增加服务器规格提升性能。

适用场景小型系统、初创企业。

3.2、分层架构

        系统按职责垂直划分为多个逻辑层(如MVC、DDD),关键服务(如Web服务器、数据库)进行多节点部署,形成集群,提高系统的可用性和处理能力。

特点

  • 资源聚合:节点横向扩展,通过负载均衡器将请求分发到集群中的多个服务器上,提高系统的处理能力。

  • 高可用性:通过冗余节点实现故障转移。即使某个服务器出现故障,其他服务器可以继续提供服务,保证系统的持续运行。

3.3、微服务架构

        按业务边界拆分为细粒度独立服务,每个服务拥有独立数据库和部署流程。服务之间通过远程调用(如RPC、REST API)协同工作,形成逻辑上的分布式协作。

特点

  • 去中心化:通过服务拆分和数据分片,可独立部署和扩展,无单一控制节点。

  • 容错性:服务间松耦合,单点故障不影响整体功能。

3.4、云原生架构

        结合云计算能力(如Kubernetes)实现自动伸缩,应对流量波动与成本优化。

特点

  • 自动伸缩:根据负载情况自动增减计算资源,平衡系统性能和成本。

  • 自愈能力:系统能够在检测到故障后自动进行故障转移和恢复,提高系统的可靠性和可用性。


专栏文章推荐:

为什么要用分布式ID?雪花算法有哪些坑?

网关有什么用?如何进行网关选型?

 架构实战:2万字真实案例全方位解析高并发系统性能优化之道

 架构师指南:像呵护感情一样构建无懈可击的系统稳定性防线

系统性能评估:如何定义并发数、响应时间和吞吐量

实战:混合云架构Nginx+Lua实现流量跨机房分发

架构图的魅力:如何用UML提升架构设计的质量

为什么要做架构设计?架构设计包含哪些内容?

架构师的职责是什么?程序员如何转型为架构师?

Mysql数据库连接池druid、hikaricp优化实战

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT孟德

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值