大型网站系统的特点
- 1、高并发,大流量
- 2、高可用:7*24小时不间断服务,不宕机
- 3、海量数据储存及管理
- 4、网络复杂
- 5、安全性
- 6、易扩展,可伸缩:需求快速变更,发布频繁
- 7、渐进式发展:脸谱网是宿舍,谷歌是斯坦福大学实验室,淘宝是马云家
一句话,高可用,高性能,易扩展,可伸缩且安全的网站。
大型网站架构演化发展历程
1、初始阶段
单机服务器:应用程序+数据库+文件都在一台服务器上。
- 2、应用服务和数据服务分离
应用服务器,文件服务器和数据库服务器。
中间通过通信的是:HTTP/Socket
- 3、缓存
二八定律。核心集中在百分之20
缓存分两种:应用服务器上的本地缓存 和 缓存在专门分布式缓存服务器的远程缓存。
其中Ehcache 简介:(通过RMI、JGroups或JMS进行的异步或同步的缓存复制、支持的通过RMI、JGroups或JMS进行的异步或同步的缓存复制、可靠的分发:使用TCP的内建分发机制、面向资源的RESTful,还有就是SOAP)
- 4、应用服务器集群
集群是常用手段,实现系统的可伸缩性。
通过负载均衡调度服务器,将请求分发任何一台服务器。
- 5、数据库读写分离
读部分(缓存不命中或者过期) 和 全部写操作要访问数据库
主从热备-数据库同步
- 6、反向代理nginx 、CDN加速网站响应
原理:缓存
CDN:就近的网络提供上机房。反向代理缓存这用户请求的资源。
- 7、分布式文件系统、分布式数据库系统
单表数据规模很大的情况,常用手段是业务分库。
8、NoSQL 、 搜索引擎
数据存储及大规模数据的检索
NoSQL场景: 场景:储存用户信息,比如会话、配置文件、参数、购物车等等。这些信息一般都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。
- 9、业务拆分
分而治之,业务分成各个产品线。然后各个应用服务器。
应用之间通过超链接或者消息队列进行数据分发。
10、分布式服务
SOA、云服务
小结
云计算服务,可以让一切技术资源:计算,存储,网络按需购买即可。