专栏首页用户2442861的专栏大型网站架构演变过程、大并发服务器架构

大型网站架构演变过程、大并发服务器架构

大型网站架构演变过程:

[Step1]web server与数据库分离

web动静资源分离

静态请求:如html, js, css, img

动态请求:如jsp, php

[Step2]缓存处理

客户端(浏览器)缓存 前端页面缓存(squid) 页面片段缓存ESI(Edge Side Includes) 本地数据缓存

[Step3]web server集群+读写分离

负载均衡:

前端负载均衡

DNS负载均衡

在DNS服务器中,可以为多个不同的地址配置同一个名字,对于不同的客户机访问同一个名字,得到不同的地址。

反向代理

使用代理服务器将请求发给内部服务器,让代理服务器将请求均匀转发给多台内部web服务器之一,从而达到负载均衡的目的。标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

基于NAT的负载均衡技术 LVS F5硬件负载均衡

应用服务器负载均衡 数据库负载均衡

[Step4]CDN、分布式缓存、分库分表

分布式缓存

目前流行分布式缓存方案:memcached、membase、redis等,基本上当前的NoSQL方案都可以用来做分布式缓存方案

分库(垂直分区)

分表(水平分区shared)

[Step5]多数据中心+分布式存储与计算

技术点[DFS、Key-Value DB 、 Map/Reduce ]

DFS分布式文件系统,如:Lustre\HDFS\GFS\TFS\FreeNas等 Key-Value DB,也作为NoSQL解决方案,如:BigTable\Tair\Hbase\HyperTable等 Map/Reduce算法(计算框架),基本上现有NoSQL数据库中都支持此算法。 提供完整解决方案:

   Google(GFS|BigTable|Map/Reduce)    Apache Hadoop(HDFS|HBase|Map/Reduce) 

大并发服务器架构:

垂直分区:比如用户表、业务表、基础表各有各自的读写数据库。

水平分区:比如用户表、业务表、基础表各有1000条记录,则水平分割分布在10对读写库。

服务器性能杀手:

1、数据拷贝:(缓存,不是指分布式缓存,指的是服务器内部的,如从内核拷贝到应用层的缓存)

2、环境切换:(理性使用多线程)单核(使用状态机编程效果最佳),多线程能够发挥多核服务器最佳性能

3、内存分配:(内存池)减少向操作系统申请内存的次数

4、锁竞争:(通过逻辑尽量减少锁的使用,或者锁的竞争)

大型网站架构演变过程:

[Step1]web server与数据库分离

web动静资源分离

静态请求:如html, js, css, img

动态请求:如jsp, php

[Step2]缓存处理

客户端(浏览器)缓存 前端页面缓存(squid) 页面片段缓存ESI(Edge Side Includes) 本地数据缓存

[Step3]web server集群+读写分离

负载均衡:

前端负载均衡

DNS负载均衡

在DNS服务器中,可以为多个不同的地址配置同一个名字,对于不同的客户机访问同一个名字,得到不同的地址。

反向代理

使用代理服务器将请求发给内部服务器,让代理服务器将请求均匀转发给多台内部web服务器之一,从而达到负载均衡的目的。标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

基于NAT的负载均衡技术 LVS F5硬件负载均衡

应用服务器负载均衡 数据库负载均衡

[Step4]CDN、分布式缓存、分库分表

分布式缓存

目前流行分布式缓存方案:memcached、membase、redis等,基本上当前的NoSQL方案都可以用来做分布式缓存方案

分库(垂直分区)

分表(水平分区shared)

[Step5]多数据中心+分布式存储与计算

技术点[DFS、Key-Value DB 、 Map/Reduce ]

DFS分布式文件系统,如:Lustre\HDFS\GFS\TFS\FreeNas等 Key-Value DB,也作为NoSQL解决方案,如:BigTable\Tair\Hbase\HyperTable等 Map/Reduce算法(计算框架),基本上现有NoSQL数据库中都支持此算法。 提供完整解决方案:

   Google(GFS|BigTable|Map/Reduce)    Apache Hadoop(HDFS|HBase|Map/Reduce) 

大并发服务器架构:

垂直分区:比如用户表、业务表、基础表各有各自的读写数据库。

水平分区:比如用户表、业务表、基础表各有1000条记录,则水平分割分布在10对读写库。

服务器性能杀手:

1、数据拷贝:(缓存,不是指分布式缓存,指的是服务器内部的,如从内核拷贝到应用层的缓存)

2、环境切换:(理性使用多线程)单核(使用状态机编程效果最佳),多线程能够发挥多核服务器最佳性能

3、内存分配:(内存池)减少向操作系统申请内存的次数

4、锁竞争:(通过逻辑尽量减少锁的使用,或者锁的竞争)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis 缓存 + Spring 的集成示例 (不错的bolg)

    http://blog.csdn.net/defonds/article/details/48716161  

    bear_fish
  • java系统高并发解决方案之图片服务器分离

    http://blog.csdn.net/jimmy609/article/details/37909013

    bear_fish
  • java处理高并发高负载类网站的优化方法

        一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)...

    bear_fish
  • 大型网站架构演变过程、大并发服务器架构

    大型网站架构演变过程: [Step1]web server与数据库分离 ? web动静资源分离 ? 静态请求:如html, js, css, img 动态请...

    s1mba
  • 大型网站技术架构核心原理与案例分析(一)

    高并发,大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展;

    硬核项目经理
  • 面试不再怕,20行Python代码帮你搞懂LRU算法

    LRU算法在后端工程师面试中,是一个比较常出现的题目,这篇文章带大家一起,理解LRU算法,并最终用Python轻松实现一个基于LRU算法的缓存。

    simpleapples
  • 大型网站技术架构:核心原理与案例分析-李智慧(第一次看)

    CAP认为,一个提供数据服务的存储系统无法同时满足数据一致性、数据可用性、分区耐受性(系统具有跨网络分区的伸缩性),在大型网站中,通常会选择强化分布式存储系统...

    lin_zone
  • 高性能服务器架构思路(二)——缓冲清理策略

    虽然使用缓存思想似乎是一个很简单的事情,但是缓存机制却有一个核心的难点,就是——缓存清理。我们所说的缓存,都是保存一些数据,但是这些数据往往是会变化的,我们要针...

    凯哥Java
  • 高性能服务器架构思路(二)——缓冲清理策略

    虽然使用缓存思想似乎是一个很简单的事情,但是缓存机制却有一个核心的难点,就是——缓存清理。我们所说的缓存,都是保存一些数据,但是这些数据往往是会变化的,我们要针...

  • 关于浏览器后退键遇到的一些问题

    事情是这样的,用户登陆后进入首页,点击退出,然后使用浏览器的后退按钮进入了首页,这时候首页走本地缓存,并且一些动态内容和登陆页混在了一起,样式乱了(具体原因没有...

    小柒2012

扫码关注云+社区

领取腾讯云代金券