• 转载:大型网站系统架构


    大型网站系统架构

    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)--将应用服务器进行业务拆分

  • 相关阅读:
    spring读取properties配置文件
    WxCpMessageRouter SpringContextHolder
    Maven和Spring mvc下的页面的跳转与取值
    struts2里UI页面标签
    Struts2中集合收集表单数据
    struts2的集合标签
    Struts2的通用标签(数据标签和控制标签)
    多个XML文件的包含与继承关系
    当出现异常时跳转到指定页面
    关于Struts2的动态URL和动态参数
  • 原文地址:https://www.cnblogs.com/wihainan/p/6237590.html
Copyright © 2020-2023  润新知