【软考系统架构设计师】系统架构师必知必会下篇(系统架构设计)
系统架构师必知必会之系统架构设计
一. Web架构设计技术导航
归类 | 归类说明 |
---|---|
从架构来看 | MVP,MVC,MVVM,REST,WebService,微服务,中台 |
从缓存来看 | MemCache,Redis,Squid |
从并发分流来看 | 集群,负载均衡,CDN |
从数据库来看 | 主从复制,内存数据库,反规范化技术,NoSQL,分区分表技术,视图与物化视图 |
从持久化来看 | Hibernate,MyBatis |
从分布存储来看 | Hadoop,FastDFS,区块链 |
从数据编码看 | JSON,XML |
从应用服务器来看 | Apache,WebSphere,WebLogic,Tomcat,JBOSS,IIS |
其他 | 静态化,有状态无状态,响应式Web设计 |
二. Web架构设计技术演化
Step1. 分离技术
- 时至今日,单台服务器的Web系统还应用在比较简单的Web网页系统中。
- 从单台机器到数据库与Web应用服务器的分离。
Step2. 集群与负载均衡技术
- .当访问量进一步提升的时候,Web应用服务器还是忙不过来,这个时候,就引入了Web应用服务器集群
- 早期的服务器升级一般升级单台服务器的配置,而到后来从向上扩展变成了向外扩展。
- 有了集群之后,需要有一个分配业务的机制,这个时候就诞生了负载均衡技术。
- 如果用户每次访问到的应用服务器是不一样的,那么如何维护Session的一致性呢?于是就引入了有状态和无状态技术。无状态的页面请求自然没有问题;有状态时可以使用的技术有Cookies技术,Redis技术等。
Step3. CDN技术
- 引入负载均衡技术之后,往往负载均衡如果和CDN技术配合使用,会达到更好的效果。CDN的原理就是内容分发,在很多分支结点上做镜像。当用户去取数据时,先去就近的镜像站点中看看,取出相应的信息;CDN技术和负载均衡技术他们的原理是不一样的。通过就近原则提高了性能。
- CDN中它本身就有一种机制去同步数据。
Step4. Session同步
- Cookies技术:将Session中的信息直接存到Cookies里面,Cookies的数据存在客户端,每次向服务器请求的时候,它附属在页面请求当中。
- Redis技术:将所有的Session信息都存入到Redis中。达到在各台应用服务器中共享的目的。
- 应用服务器1的Cookies同步到应用服务器2当中,这种机制适合于应用服务器较少的情况。
Step5. 主从数据库
- .解决了应用服务器的瓶颈问题,那么瓶颈问题自然回到了数据库这边。首先我们引入了多台数据库服务器。多台数据库服务器首先遇到的问题就是同步一致性问题
- 数据库集群:读写分离技术,主从数据库(一主多从)技术,主数据库用来增删改数据,多个从数据库服务器用来读数据,这样可以实现有效的分流,提高数据库应用访问的效率;但在此之前需要解决数据同步一致性的问题才可以。