系统架构随着技术手段越来越成熟近些年得到了很大的提升,从以前的单系统架构,到应用和数据层分离,集群,分布式集群等等,下面就来一一总结。
一、单应用
单应用顾名思义,就是应用服务和数据库服务都在同一台服务器上运行。一般项目初期会考虑这种架构方式,因为效率决定生死,先要让项目面市,后期考虑优化方案。
二、应用服务和数据库服务分离
从项目上线面市到运营一段时间后,就会发现服务器的负载逐步攀升,当代码层面无法进行优化的时候,就需要考虑增加机器来缓解一台服务器的压力了。
从图中可以看到就是将数据库服务分离到了一台新的服务器去,这样两个服务直接不会互占资源,影响彼此。后面只需要关注应用服务的优化即可。
二、应用服务集群
单台应用服务承载的并发毕竟是有上限的,此时需要部署更多的应用服务缓解一台应用的并发压力。
但这个时候,就会出现如下问题
- 用户访问进来到底分配到哪个服务器去
- 用户的session如何共享。
问题一:可以使用nginx的负载均衡策略
nginx共有多种负载请求调度策略
- 轮询(默认)
- 权重策略
- IP哈希策略
- 访问地址哈希策略
- 最少链接数策略
问题二:session共享可以使用数据库或缓存(redis等)
未完待续。。