设计高可用和高负载的网站系统

news/2024/5/1 15:47:03/文章来源:https://blog.csdn.net/cjssimei527/article/details/5795303


随着网站的运营,用户访问量和数据存储量会随着时间发生几何级变化,很快整个系统不堪重负,频繁出现问题。其实要设计一个高可用、高负载的系统还是有一定的规矩可循的,其手段无外乎向上扩展(Sacle Up 硬件扩展)或者向外扩展(Scale Out 软件扩展),这两种方案在某一阶段时期,会显著改善网站的性能,但不久之后,问题依旧。本文参考网上相关资料,试图提供一个可行的 "有限" 解决方案。

早期

1. 对业务应用进行垂直分割,将不同的业务边界划分出来。程序员常说的 "多层体系" 只是纵向解决了不同编程层次的划分,相对于业务而言,并没有做出什么处理。现在 SOA 大行其道,除了人们认识到面向服务带来的互联、扩展性以外,它也将不同服务的变化区分开来,各自拥有独立的实现和存储机制。每个服务使用不同的数据库或数据表,从一定程度上减轻了以往单个数据库频繁造成的 "锁" 和 I/O 瓶颈问题。

2. 将网站系统中的动态内容和静态资源分离出来,使用单独的更加高效的服务器(诸如 Apache + Linux)提供静态信息。多数情况下,流量的极大部分来源于图片、视频等,用多台服务器同时提供页面显示除了可以提高页面响应和现实速度外,同时他将流量分解到多台服务器上。另外,我们应该避免使用动态解析 (ASPNET_ISAPI.dll / HttpModule / HttpHandler) 来处理静态数据的过滤和路径重写。

3. 使用缓存机制,包括使用诸如 ASP.NET Cache、PageCache、创建静态页面等手段。设计良好的缓存机制能极大提高系统性能和响应速度。

4. 使用 64 位数据库系统。SQL Server 2005 在 64 位系统上可以使用更多的内存(最高64GB),而且在多 CPU 下也拥有更好的性能。有了更大的内存,我们甚至可以将某些常用且极少变化的表(比如分类目录表等)设置为内存表以提高响应速度。

5. 关闭操作系统的某些安全设置,比如 Windows 2003 预防 DDOS 攻击的一些设置,也可以避免一些意外的访问瓶颈。

运行期

6. 建立多数据库体系。使用单个或多个用于数据更新的数据库服务器,然后利用数据库的复制和订阅功能同步到其他多台专门用于显示的数据库服务器上,这样可以有效减少因为更新带来的数据库访问等待。当然,这种体系并不适用所有的业务。

7. 对大数据表进行分区。现在的主流数据库基本都支持数据表分区功能,我们可以横向分区,将不同时期的数据存放到多个分区表中;也可以纵向分区,将不常用的字段放到其他分区表中。分区表并不会影响到我们的开发模式,无须对代码进行调整,但数据表尺寸从 TB 减小到 GB 所带来的好处是无法忽略的。

8. 使用负载均衡等手段提升性能。包括DNS负载均衡、代理服务器负载均衡、地址转换网关负载均衡、协议内部支持负载均衡、NAT负载均衡、反向代理负载均衡等,负载均衡作为最常用的上扩手段,其效果也非常明显。

9. 使用 SAN 等专用的存储系统来提高 I/O 性能。SAN 使用光纤通道连接多个存储设备,可以改善多个服务器硬盘之间使用网线传输数据的性能问题。此外,SAN 还可以动态调整存储容量,更加有利于系统备份和恢复。

10. 电力备份。如果是自主机房,除了配置 UPS 电源外,最好拥有独立的发电设备。当然,对中小型网站而言,这过于奢侈了些。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/21aspnet/archive/2008/11/12/3279343.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_899930.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站压力测试

网站压力测试 互联网的普及,宽带的流行,使得越来越多的个人和单位都架设了自己的网站。而充当网站的服务器的大多是普通的PC或者低档服务器, 这样访问者人数一多或者遭受DDos攻击,很容易造成瘫痪。因此我们需要网站在真正发布前对…

12306.cn网站的思考 (整理篇)

针对12306.cn网站应用架够的一些看法 背景 针对最近比较热点的列车网上订票系统频繁出现的系统问题,提出了一些自己的看法。 分析 几经分析考虑,认为可能存在几个系统瓶颈。 1.关联系统的系统负载能力比较弱。 2.网上支付的负载能力不够 3.网站本身…

很好用的壁纸网站源码分享,仅供学习,请勿商用。

分享一个壁纸网站源码,无需安装,修改之后就可很好使用。 集合360壁纸,百度壁纸,必应壁纸,简单好用。 演示地址:http://www.toqia.com/bizhi/ 好用的话,记得点赞哦。 百度网盘:链…

每天访问量至少达100万的29个社交网站

尽管Facebook目前是第一大社交网站,但是在社会化网络领域里面的其他网站同样也不可小觑。为了一窥各个知名社交站点的活跃状况,我们采用Google Trends对一些主流的社交站点进行了流量分析,并列出29个每天独立访问量达到100万的网站。虽然独立…

浏览量比较大的网站应该从哪几个方面入手

作者: 游戏人间 时间: 2007-6-15 04:23 PM 标题: 浏览量比较大的网站应该从哪几个方面入手?当然,提问前先将个人的一些理解分享。大家有的也请不吝共享,偶急切的需要这方面的经验....下面所提到的主要是针对一般的网站,不包…

高负载、高并发网站架构知识汇总-大型互联网网站架构

我们知道,对于一个大型网站来说,可伸缩性是非常重要的,怎么样在纵向和横向有良好的可伸缩性,就需要在做架构设计的时候考虑到一个分的原则,我想在多个方面说一下怎么分: 首先是横向的分:1. 大…

使用 PHP 搭建自己的视频点播网站,第 1 部分:基础工作

现在注册或者使用您的 IBM ID 和密码登录。 搭 建您自己的视频点播网站并不复杂。上传一些视频,然后供人们观看。就这么简单。但是如果您想要做很多视频,则必须将它们组织起来。这个 “使用 PHP 创建自己的视频点播网站” 教程系列包括三部分&#xff0…

Linux建立网站LAMP Aache

概念 firewalld 简介: 保护互联网对服务器的影响cat selinux简介: 保护服务器内部程序(ftp)对内部文件(/var/ftp)的访问 firewalld 临时关闭 : systemctl stop firewalld firewalld 状态查看方法:systtemctl status firewalld firewalld…

Linux 域名服务及阿里云搭建网站

概念理论 搭建阿里云服务器 DNS 解析

理论+实验:LAMP网站服务器部署(超详细版本)

目录 一、 LAMP介绍二、Apache 简介三、Apache 的主要特点四、搭建YUM仓库五、编译安装HTTP服务六、站点部署6.1 基于域名主机的6.2 基于IP地址的6.3 基于端口的 七、安装mysql八、安装PHP环境九、安装phpMyadmin 一、 LAMP介绍 LAMP 架构是目前成熟的企业网站应用模式之一&…

为SharePoint网站创建自定义导航菜单

相信不少人都希望把SharePoint网站内置的那个顶部导航菜单,换成自己希望的样式。由于SharePoint 2007/2010的网站导航基本上基于标准的ASP.NET SiteMap模型,所以只要你对ASP.NET SiteMap有一些了解,就能创建一个自定义的导航菜单。 在开始之…

Hexo+Github/Gitee搭建静态网站博客

前言 Hexo是一个快速,简单,功能强大的开源博客框架。 GitHub/Gitee Pages 是一个国内外静态资源网站。 两者结合可以搭建用户自己的静态网站。 搭建hexo 安装node.js 根据操作系统,在官网下载对应的安装包,地址为:node.js。 下…

响应式Web设计帮助移动终端访问网站

2012年被称为智能手机年。根据最近一份调查显示,美国的智能手机覆盖率已达50%。现在确实是提升移动终端用户体验的大好时机。如果你正运营一个网站,那就必须有一个响应式的Web设计,以便可以从移动终端上很好地访问你的网站。如果你还没意识到…

循序渐进BootstrapVue,开发公司门户网站(6)--- 门户网站后端内容管理

我们在做门户网站的时候,如果网站的内容可以动态从后端进行管理,那么调整网站内容就非常方便,有时候如一些公司新闻、产品信息、轮播广告信息等都需要动态调整的,有一个方便的后端内容管理是非常方便的。本篇随笔介绍门户网站的后…

python3.6爬虫案例:爬取某网站所有PPT(上)。

写在前面 这次实现之前的flag:爬取第一ppt网站的所有PPT,当然网站中有其他很多的学习资料,这次只爬取PPT。不仅可以平时做模板演示用,还可以练习爬虫,岂不美滋滋。闲话不多说,进入正题。 先来说下网站&am…

python3.6爬虫案例:爬取某网站所有PPT(下)。

上篇博客:python3.6爬虫案例:爬取某网站所有PPT(上)给大家介绍了爬取(http://www.1ppt.com/)网站中的ppt文件,爬下来的文件如下: 所以,我们就要考虑将其名称修改为其在网…

利用Python爬取妙笔阁小说网站的小说信息并保存为txt和csv格式

本次爬取的是妙笔阁小说网仙侠系列中所有小说的信息,打开网页会看到如下图所示的小说列表。 根据列表,选择爬取小说的书名、作者、最新更新、简介这四项信息。 在爬取之前,为了防止网站禁止爬取,需构造访问的请求头&#xff0…

仿360网站广告实现换肤特效

1、新建一个web项目&#xff0c;index.jsp同级目录下放jquery插件和top_right.png图片 2、index.jsp页面代码 <% page language"java" import"java.util.*" pageEncoding"utf-8"%> <% String path request.getContextPath(); String b…

仿360小说网站的源码设计实现

360首页检索小说效果如下&#xff1a; 个人完成编写的schoolnet校园网主页如下 在小说模块中&#xff0c;包括&#xff1a;小说类别编号&#xff1a;a、校园爱情 b、动漫同人 c、校园魔法 d、轻小说 e、校园励志 f、校园修真 g、名人传记 h、古典小说 …

基于仿360小说网站(校园网)的源码设计实现(升级版)

基于博文仿360小说网站的源码设计实现对小说网站的源码更新升级&#xff08;动漫小说网&#xff09;。 网站PC电脑端效果截图&#xff1a; APP手机端效果截图&#xff1a; 数据库相关表设计&#xff1a; 主要包含小说id,章节id,类型ID,小说名称,章节名称,作者,缩略图,图片地址…