为什么要做架构设计
大家都做,所以我也做。
所有的系统必须要有架构设计
公司要求,系统开发必须要有架构设计的流程
如果是以上的原因,就失去了做架构的意义,是为了做架构而做架构,可能会浪费人力物力得不偿失。那么做架构的目的是什么呢?
架构设计的主要目的是为了解决软件系统复杂度带来的问题
系统复杂度的来源
高性能
为了提高性能又从两个方面可以提升
计算机内部复杂度的关键就是操作系统,操作系统和性能最相关的是进程和线程。人们发明出进程,一个进程对应一个任务,会占用独立的内存。多个进程之间为了相互通信所以设计各种通信方式:管道、消息队列、共享储存等等。
人们为了解决单线程会阻塞用户使用的问题所以发明了多线程,多进程多线程可以使性能更大的提升。
在互联网时代,有时用户访问量会急剧升高。例如2017年春节微信红包收发红包每秒达到 76 万个。为了解决这种问题,单机的性能提升是解决不了问题的,只能通过加大机器的数量来得到提升。
通过集群的方式提高性能,最常见的两种方式是任务分配和任务分解。
任务分配:任务分配是指每台服务器都可以都处理完整的业务任务,由任务分配器分配任务。
任务分解:任务分解是指把复杂的系统拆解成不同的小功能。即不同的业务服务器。