- 浏览: 42603 次
- 性别:
- 来自: 广州
文章分类
最新评论
随着网站的运营,用户访问量和数据存储量会随着时间发生几何级变化,很快整个系统不堪重负,频繁出现问题。其实要设计一个高可用、高负载的系统还是有一定的规矩可循的,其手段无外乎向上扩展(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 电源外,最好拥有独立的发电设备。当然,对中小型网站而言,这过于奢侈了些。
发表评论
-
职场观察:高薪需要什么?
2014-04-01 21:07 326http://xjsunjie.blog.51cto.com ... -
毕业五年来的回顾
2014-04-01 20:59 303http://luogangan.blog.51cto.co ... -
深处跳槽热浪中,跳与不跳该如何抉择?
2013-03-20 13:02 616深处跳槽热浪中,跳与不跳该如何抉择? 跳槽有哪些技巧和注意事项 ... -
面试 需要注意三种公司
2013-03-20 12:55 563来源:http://cuisuqiang.iteye.com ... -
面试 需要警惕三个问题
2013-03-20 12:54 518来源:http://cuisuqiang.ite ... -
离职 需要注意三个问题
2013-03-20 12:53 559来源:http://cuisuqiang.ite ... -
最具争议的10个编程观点
2013-02-12 22:21 595你认为最具争议的编程观点是什么?C#专家Jon Skeet曾 ... -
Java枚举的七种常见用法
2013-01-06 12:19 599http://blog.jobbole.com/31597/ ... -
大型互联网网站架构心得
2012-12-10 12:52 597大型互联网网站架构心 ... -
世界最大的PHP站点 Facebook后台技术探秘
2012-12-10 12:49 674在今年举行的Facebook F8开发者大会上,51CTO带您 ... -
13条职场新人最需要的建议
2012-11-18 18:00 544很多新人刚步入职场,觉得很茫然,带着理想来,带着失望走,磕 ... -
为程序员量身定制的12个目标
2012-11-18 15:44 611http://justjavac.iteye.com/b ... -
FusionCharts:宽高自适应浏览器
2012-10-20 17:36 1771FusionCharts:图形大小随窗口大小改变: 若 ... -
FusionCharts:Div层被Flash遮住
2012-10-20 17:34 614http://www.zihou.me/html/201 ... -
FusionCharts V3图表导出图片和PDF属性说明
2012-10-20 17:29 755http://www.cnblogs.com/ATree/ar ... -
FusionCharts的中文乱码问题
2012-10-20 17:20 629原文地址:http://wangyaobeijing.b ... -
如何提高自己的编程能力
2012-10-14 20:48 6181. 扎实的基础。数据结构、离散数学、编译原理,这些是所有 ... -
12 个有效的提高编程技能的方法
2012-10-14 19:17 496来源于:http://www.oschina.net/news ... -
JAVA MVC框架性能比较
2012-09-09 17:28 669来源:http://www.blogjava.net/p ... -
低级别工具 —— 锁定和原子
2012-09-09 17:26 686Lock Java 语言内置了锁定工具 —— sync ...
相关推荐
目录: 负载均衡技术介绍 ...高可用的系统设计 什么是系统高可用性? 高可用的模式 系统高可用设计 高可用设计案例 高可用方案及实践 Apache+Tomcat 高可用WEB集群 Keepalived +LVS 高可用应用集群
LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉...为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。
1、部署环境架构设计2、安装与配置说明2.1 Apache与PHP-FPM2.2 Varnish与Apache2.3 Nginx反向代理2.4 LVS负载均衡3、环境测试3.1 Apache与PHP-FPM3.2 Varnish与Apache3.3 Nginx3.4 LVS负载均衡
通过LVS+Keepalived搭建高可用的负载均衡集群系统
java面试题_高并发、高可用、分布式(9题)
一种提高小流量负载均衡业务系统可用性的网络设计.pdf
《基于docker容器的高并发web系统架构设计与实现》随着互联网迅速发展,社交、媒体以及电商等web网站用户数量 越来越大,并发流量也越来越高,这对于传统web系统架构设计提出 新的挑战。本文基于...
1 交易型系统设计的一些原则 2 1.1 高并发原则 3 1.1.1 无状态 3 1.1.2 拆分 3 1.1.3 服务化 4 1.1.4 消息队列 4 1.1.5 数据异构 6 1.1.6 缓存银弹 7 1.1.7 并发化 9 1.2 高可用原则 10 1.2.1 降级 10 1.2.2 限流 11...
这里主要介绍几种常见的架构设计理论和原则,常见于大中型互联系统架构设计。1、什么是CAP著名的CAP理论是由Brewer提出的,所谓CAP,即一致性(Consistency)、可用性(Availability)和分区容错性...
基本需求:1、高可用性:将停止服务时间降低到最低甚至是不间断服务2、可扩展性:随着访问的增加,系统具备良好的伸缩能力3、可视性:系统、服务的状态处于一个实时的监控之下4、高性能高可靠性:经过优化的体系结构...
高可用:是指系统经过专门设计减少停工时间,保持服务高度可用。正常工作时间/单位时间(一般一年),比率达99.99%以上,也就是停工一小时。可以算高可用。 可伸缩:是指增加或减少硬件实现软件性能上的加大或减少的...
随着网站的运营,用户访问量和数据存储量会随着时间发生几何级变化,很快整个系统不堪重负,频繁出现问题。
通过对集群系统性能、体系结构及其网络负载平衡技术的研究,提供了一种使用大量商用服务器构建具有良好可扩展性和高可用性网络服务的基本构架。通过对Linux内核的TCP/IP协议栈的功能扩充来实现IP层负载平衡技术,它...
本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...
实用的负载均衡技术-系统架构设计 - 负载均衡和高可用 负载均衡技术介绍 高可用的系统设计 高可用方案及实践
本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做JAVA职业规划、技术提升的可与我联系,交个朋友~ 本人十余年JAVA从业经验,精通JAVA高可用、分布式、高并发系统架构设计。有志于做...
5.5 连接优化和长连接负载均衡 15 5.6 带宽管理 16 5.7 API接口iControl 17 5.8 系统安全性 20 5.8.1 提高服务器的高可用性 21 5.8.2 提高自身的高可用性 22 5.8.3 网络流量镜像 23 5.8.4 应用安全性 24 5.8.5 动态...
毕业设计可以包括文献综述、需求分析、方案设计、实施与测试等多个阶段,以确保整个过程的科学性和系统性。 其次,毕业设计的完成通常需要学生具备一定的独立思考和解决问题的能力。在研究过程中,学生可能需要采用...