码迷,mamicode.com
首页 > 其他好文 > 详细

从零开始学架构(一)

时间:2019-02-04 16:41:18      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:分组   单元   模块   常用   学生信息管理系统   了解   spring   不能   交换   

基本概念

架构设计&程序设计

架构设计的关键思维的判断和取舍,程序设计的关键思维是逻辑和实现。

系统&子系统

系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个体不能单独完成的工作。系统能力不是个体能力之和。

子系统和系统定义一样,只不过视角有差异,多半是更大系统的一部分。

以微信为例:

技术图片

模块&组件

系统从逻辑的角度拆分后得到的单元叫模块,从物理的角度拆分得到的单元叫组件。划分模块的目的是职责分离,划分组件的目的是单元服用。

举例:

一个学生信息管理系统,从逻辑角度拆分可分为“登陆注册模块”、“成绩模块”、“学籍模块”;从物理的角度拆分有Nginx、Web服务器、MySQL。

框架&架构

框架像spring强调的是规范,架构强调的是结构。

架构设计的目的

整个软件技术的发展史,其实就是一部与“复杂度”斗争的历史,如:机器语言->汇编->高级语言,再如:面向函数(C)->面向对象(C++、java)。架构设计也不例外,架构设计的主要目的是为了解决复杂度带来的问题。

 复杂度来源-高性能

高性能带来的复杂度主要体现在两个方面:单机复杂度和集群复杂度。

单机复杂度:

如果我们要完成一个高性能的软件系统,需要考虑一下技术点:多进程、多线程、进程间通信、多线程并发等。

集群复杂度:

1.常用的任务分配器有硬件网络设备(如F5、交换机等),软件网络设备(如LVS),负载均衡软件(如Nginx、HAProxy)或者是嵌入在程序中的算法。

2.对一个复杂的业务系统可以进行模块拆分,分布式开发。

技术图片

 

技术图片

技术图片

 

从零开始学架构(一)

标签:分组   单元   模块   常用   学生信息管理系统   了解   spring   不能   交换   

原文地址:https://www.cnblogs.com/sjp007/p/10351772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!