一个大型的网站网站应该由如下6个子系统组成

负载均衡系统

反向代理系统

Web服务器系统

分布式存储系统

底层服务系统

数据库集群系统

为什么要做高并发系统设计?

事实上,针对于任何单一的网络服务器程序,其可承受的同时连接数目是有理论峰值的,通过C++中对TSocket的定义类型:word,我们可以判定这个连接理论峰值是65535,也就是说,你的单个服务器程序,最多可以承受6万多的用户同时连接。但是,在实际应用中,能达到一万人的同时连接并能保证正常的数据交换已经是很不容易了,通常这个值都在2000到5000之间,能达到上万已经很不错了。目前的门户网站动辄几千万的访问量,所以,高并发的系统架构在所难免。

整体架构

真实中的网站架构也许并不如此也可以实现高性能。但是高性能的网站莫不过如此。如下图所示。

第一 负载均衡系统

负载均衡系统分为硬件和软件两种。

硬件负载均衡效率高,但是价格贵,比如F5等。

软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统低,不过对于流量一般或稍大些网站来讲也足够使用,比如lvs。

第二 反向代理系统

目前普遍使用Squid或者nginx,或者Lighttpd,Varish。

这四者又各自有很大的差异。

Squid:主要用来做反向代理,使用内存+硬盘

Nginx:可以反向代理+负载均衡+WWW解析

Lighttpd:反向代理能力一般,处理FastCGI比较好,消耗内存很小

Varish:主要做内存的反向代理,性能最优

第三 Web服务器系统

由Apache负责解析PHP内容,也可以用Nginx,或者Lighttpd,相对来说Apache比较稳定。

第四 分布式存储系统

存储量很大,经常会达到单台服务器无法提供的规模,比如相册、视频等应用。因此需要专业的大规模存储系统。

第五 底层服务系统

根据各自需要由C/C++开发设计供上层CGI调用。

第六 数据库系统

1)使用MySQL数据库,考虑到Web应用的数据库读多写少的特点,我们主要对读数据库做了优化,提供专用的读数据库和写数据库,在应用程序中实现读操作和写操作分别访问不同的数据库。

2)使用同步机制实现快速将主库(写库)的数据库复制到从库(读库)。一个主库对应多个从库,主库数据实时同步到从库。

3)写数据库有多台,每台都可以提供多个应用共同使用,这样可以解决写库的性能瓶颈问题和单点故障问题。

高并发大型网站架构设计相关推荐

  1. 高并发大型互联网站架构设计

    每年进入3-4月所有的高等院校开始了一年一度的毕业生答辩准备阶段,现如今毕业论文或者毕业设计也更加的贴近了互联发展的趋势,很多学校开始做最热话题云计算openstack架构的实现以及云计算环境搭建,先 ...

  2. 高并发高流量的大型网站架构设计

    Web2.0的兴起,掀起了互联网新一轮的网络创业大潮.以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们.但Web2.0以用户为导向的理念 ...

  3. 大型网站架构设计系列总结

    大型网站架构设计系列-我的总结如下: 1. 数据结构和产品架构设计,这是基础! 2. 角色分开,各司其职(web服务器,缓存服务器,负载平衡,数据库等) 3. HTML静态化(用缓存服务器也可) 4. ...

  4. 徐雷FrankXuLei受邀为中国南方电网集团《分布式高并发Web网站架构》课程

    非常荣幸受邀为中国南方电网云电 讲授<分布式高并发Web网站架构>课程感谢大家,都是缘分,10年前我曾经随公司去云南大学校园招聘,现场同学们 学习新技术的热情很高,公司领导比较重视技术人才 ...

  5. 互联网大厂高并发抢购系统架构设计

    背景 大家好,这篇文章给大家介绍一个非常经典的去大厂面试经常被问的一个问题,就是瞬时 高并发抢购问题,通常来说,大厂开发的系统经常会遇到一些类似电商秒杀抢购.景点门票高并发抢购.特殊商品(比如口罩)高 ...

  6. 大型网站架构设计及技术总结

    一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统 架构.性能的要求都很简单,随着互联网业务的不断丰富,网 ...

  7. 互联网公司高并发图片存储服务架构设计一

    非常感谢http://blog.csdn.net/lizhitao/article/details/9323137 高并发图片存储服务架构技术学习 https://www.itkc8.com 互联网公 ...

  8. 高并发的大型网站架构设计

    最近在学习大型网站的架构设计,便想把学习过程中的一些东西总结记录下来,以便复习和巩固提高.先来看看大型网站架构图: 从左边开始,先是CDN服务器和反向代理服务器,都用于缓存一些用户需要请求的资源.两者 ...

  9. 微博技术:千万级规模高性能高并发的网络架构设计

    分享人:卫向军(毕业于北京邮电大学,现任微博平台架构师,先后在微软.金山云.新浪微博从事技术研发工作,专注于系统架构设计.音视频通讯系统.分布式文件系统和数据挖掘等领域.) 架构以及我理解中架构的本质 ...

最新文章

  1. 2022-2028年中国聚乳酸降解塑料行业市场运营格局及投资前景趋势报告
  2. 迭代法求解线性方程组的收敛问题总结
  3. python手机版怎么用-在手机上也可以优雅地进行python编程,你知道吗?
  4. Apollo后台配置:关联公共Namespace(类似与继承父类配置)
  5. html笔记(一)html4+css2.0、css基础和属性、盒模型
  6. namenode的元数据会被删除吗_欠阿里云0.01元,欠费15天后数据被删除了
  7. ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memor
  8. mm,mil,inch,um的转换关系
  9. Ubuntu下如何使用编译使用john-1.9.0源码
  10. c语言kbhit函数6,C语言中kbhit()函数怎么复位
  11. Linux系统的定时任务
  12. VSCode远程连接ubuntu服务器
  13. 编译安装php7.4
  14. 算数基本定理和代数基本定理
  15. 广州蓝景分享—Web前端开发培训机构如何选择
  16. python分行输入_python换行输入
  17. 如何在keil中将文件封装为lib库文件
  18. TP-Link wr703n 刷Openwrt始末
  19. kali安装水泽,进行简单换源
  20. 美国科技博客网:改变世界15种技术

热门文章

  1. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...
  2. mysql 字段必填 属性_如何判断数据库中的字段是否具有必填属性(50分)
  3. mongodb线程池_常用高并发网络线程模型设计及MongoDB线程模型优化实践
  4. 力扣(LeetCode)刷题,简单题+中等题(第20期)
  5. 单目深度估计与伪雷达点云、可视化
  6. keras 的 example 文件 deep_dream.py 解析
  7. 数据结构与算法(5)字符串(BF算法、KMP算法及KMP算法优化)
  8. php禁止网页抓取,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站 - 龙笑天下...
  9. 基于C++的二叉树的入门讲解
  10. 在CentOS 6.9上从源码安装Go 1.10