其中第1部分架构为综述。第2-8部分各个端用到的技术,点到为止,没有详述。第9和10部分是监控和部署,排查问题和解决问题时配合使用。
一:服务器总体架构综述
经历的阶段:
1:应用服务和数据服务,应用专门的图片服务器,视频服务器。
2:缓存改善网站性能,redis,memcached缓存。
3:应用服务器集群改善网站的并发处理能力,这个时候就应该读写分离或双主读写分离。
4:使用反向代理和 CDN加速网站
5:分布式数据库系统,数据库分表分区阶段
6:NoSQL服务器,减轻应用程序管理诸多数据源的麻烦。
7:业务拆分,将一个网站拆分成许多不同的应用,每个应用独立部署。
经历上面七个阶段后,大体服务器架构如下图:
二:数据库技术
应用服务和数据服务分离;
数据库读写分离
分布式数据库系统
分库分表
数据库索引
数据库连接池
SQL优化
数据库相关设置
三:缓存技术
使用缓存改善网站性能;
提高缓存命中率;
redis集群相关设置;
四:后端技术
重定向
使用反向代理
DNS轮询,不能按服务器能力分配任务
CDN,而且按流量计费,价格也比较昂贵。
IP负载均衡:F5,VS/NAT(基于网络地址转换技术)、VS/TUN(基于IP隧道技术)和VS/DR(基于直接路由技术)
镜像(同学所在的教育行业在用)
五:业务拆分
将一个网站拆分成许多不同的应用,每个应用独立部署。应用之间可以通过一个超链接建立关系(在首页上的导航链接每个都指向不同的应用地址),也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系
六:前端
页面静态化
前端缓存
IOS,安卓自身数据库使用
IOS,安卓自身文件使用
八:其他
替换Apache为Nginx;
队列系统就出场了,就以RabbitMQ为例时
mysql硬件设置
九:监控软件
najios 监控服务运行状态和网络信息;
zabbix 监控服务运行状态和网络信息;
cactic 把机器信息和数据信息图表化地展现给用户。
十:部署软件
saltstack
chef
puppet
ansibel