大型网站系统架构
dubbo+ssh+nginx负载均衡/动静分离+数据库主从+缓存+分布式存储+队列
1、缓存--利用缓存改善网站性能
a.缓存包含本地缓存和分布式缓存;本地缓存如OSCache,分布式缓存如Memcached、Redis。
b.本地缓存和分布式缓存的特点
本地缓存的特点是速度快,但是本地空间有限所以缓存数据量也有限。
分布式缓存的特点是,可以缓存海量的数据,并且扩展非常容易,响应速度没有本地缓存快。
2、服务器集群--使用服务器集群改善应用服务器性能
应用服务器作为网站的入口,会承担大量的请求,我们往往通过应用服务器集群来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将请求分发到多个应用服务器节点。
常用的负载均衡技术硬件的有F5,软件的有LVS、Nginx、HAProxy。
F5:价格比较贵;
LVS:四层负载均衡,根据目标地址和端口选择内部服务器
Nginx:七层负载均衡
HAProxy:支持四层、七层负载均衡,可以根据报文内容选择内部服务器
因此LVS分发路径优于Nginx和HAProxy,性能要高些,而Nginx和HAProxy则更具配置性,如可以用来做动静分离(根据请求报文特征,选择静态资源服务器还是应用服务器)。
3、数据库读写分离和分库分表
随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行读写分离以及分表。
读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。
分库分表则分为水平切分和垂直切分,水平切换则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务不同来切换,如用户业务、商品业务相关的表放在不同的数据库中。
4、CDN、反向代理--使用CDN和反向代理(nginx)提高网站性能
5、使用分布式文件系统
6、SOA服务化(dubbo)--将应用服务器进行业务拆分