系统架构性能优化思路

本身简单总结了一下这方面的东西,语言都比较简单,主要是为了看到可以想起来相关内容。
从持久层开始向展示层说:

持久层java

    一、存储选型
          存储器类型(IDE/SCSI/SSD磁盘、网络存储NFS等)
          数据库类型(MySql、Oracle、SQLServer等)
    二、数据拆分,垂直切分水平切分。垂直切分为按模块切分,不一样模块划分到不一样的存储单元,缓解单个存储单元的IO压力;水平切分为分布式数据库,可按数据的所属机构切分,减小每一个存储单元的数据量;
    三、读写分离
        主从模式,1主多从,主写从读。读写压力分开,也能够解决读写的锁冲突等
    四、数据库负载均衡
       如OracleRAC
    五、raid技术提速冗余容灾
        一份数据同时向多块存储写,存储器实现,对存储逻辑也是透明的。
    六、数据库调优
         数据库使用的存储量、内存缓存量、线程数、其余资源使用量配置。
    七、业务表结构优化
         表结构合适的拆分,以性能为目标的制定冗余信息,数据库索引优化等
业务层
     一、语言机制
          资源链接池
          异步处理
          多线程处理
          针对java,jvm参数调优
     二、通用高效组件
         全文检索nuts、lucene
         缓存框架memcache、redis
     三、业务代码优化
          语言改进(跨语言迁移方案:拆分模块、按模块逐步改进、新旧并行、新替换旧)
          逻辑改进 高内聚低耦合
     四、中间件负载均衡
          集群、F5等
     
展示层
     一、CDN内容分发网络
           提高不一样区域访问速度、解决网站流量限制,下降硬件门槛等
           CDN原理   
                   用户提交域名 ->浏览器解析域名 ->CDN-DNS-Server返回CNAME ->浏览器对CNAME解析 ->获得CDNServer的IP ->访问CDNServer -> CDNServer经过内部DNS缓存返回目的IP ->浏览器访问IP ->浏览器解析响应内容
     二、页面架构
          不易变内容使用静态页面、数据异步加载、页面缓存
     三、页面内容优化
          减少页面大小
          减小零碎小资源文件
          应用CSS定制样式
相关文章
相关标签/搜索