大型系统架构
来源:互联网 发布:windows远程终端工具 编辑:程序博客网 时间:2024/04/20 09:39
http://blog.csdn.net/chinalinuxzend/archive/2007/10/04/1811514.aspx
http://blog.csdn.net/Diogin/archive/2007/07/25/1707806.aspx
http://highscalability.com/
http://blog.csdn.net/Diogin/archive/2007/06.aspx
http://blog.csdn.net/Diogin/archive/2007/07/25/1707806.aspx
负载均衡有两种,
精度:统计转向
大约的轮询
架构高负载,高并发的网站的根本和趋势就是负载均衡,或者叫做分布式,利用多个小型的服务器来替代单一的大型的服务器。在WEB服务器方面的负载均衡很简单,复杂的是如何在数据库方面做负载均衡,现在大部分公司的做法还是使用传统的数据库集群或者简单的库表散列。在这里给大家提供一种新的思路:借助成熟数据库产品的一个分布式数据库中间件, 把数百台机器组织起来,既有库表散列,又有负载均衡,最终达到高性能,高扩展性,高可用性。 详细信息请见:
=================================================
程序开发是一方面,系统架构设计(硬件+网络+软件)是另一方面。
中国的网络分南北电信和网通,访问的ip就要区分南北进入不同的网络;
然后是集群,包括应用服务器集群和web服务器集群,应用服务器集群可以采用apache+tomcat集群和weblogic集群等,web服务器集群可以用反向代理,也可以用NAT的方式,或者多域名解析都可以;Squid也可以,反正方法很多,可以根据情况选择;
软件架构方面,做网站首先需要很多web服务器存储静态资源,比如图片、视频、静态页等,千万不要把静态资源和应用服务器放在一起;
页面数据调用更要认真设计,一些数据查询可以不通过数据库的方式,实时性要求不高的可以使用lucene来实现,即使有实时性的要求也可以用lucene,lucene+compass还是非常优秀的;
不能用lucene实现的可以用缓存,分布式缓存可以用memcached,如果有钱的话用10来台机器做缓存,>
然后很重要的一点就是数据库,大型网站要用oracle,数据方面操作尽量多用存储过程,绝对提升性能;同时要让DBA对数据库进行优化,优化后的数据库与没优化的有天壤之别;同时还可以扩展分布式数据库,以后这方面的研究会越来越多;
新闻类的网站可以用静态页存储,采用定时更新机制减轻服务器负担;首页每个小模块可以使用oscache缓存,这样不用每次都拉数据;
最后是写程序了,一个好的程序员写出来的程序会非常简洁、性能很好,一个初级程序员可能会犯很多低级错误,这也是影响网站性能的原因之一。
今天面试题目
1.百度,GOOGLE,搜狐,网易,新浪使用什么数据库?
2.如何更有效处理百万级数量,用数据库还是XML直接存储在硬盘上?
google用的google file system,存储的是big table,有很多论文是关于这个的
搜索直接从索引中拿
百万级的数据用数据库,比如oracle效率就很好啊,建立索引,视图来优化
我觉得xml浪费内存,效率不见得多好
google的存储为GFS(Google file system)分布式存储文件系统,多读少写的数据如大索引文件,google map地图文件,静态网页等采用bigtable来存储,bigtable是一种弱关系型存储系统,建立在GFS之上,字段并不满足关系数据库范式中的原子性等,而是可根据时间戳来存储单个数据的多版本,列分为列簇(column family),可把一系列相关的列定义为一个列簇。GFS的数据存储是分块(block)存储的,一个文件被分成
GFS适合海量数据存储,而bigtable适合弱关系型数据的存储。
至于百度,百度在数据操作上,网站方面用的mysql,但百度在mysql的源码基础上做了一些特定的优化。
在数据存储介质上,百度有些地方用的是SD卡,但SD卡同样只适合于多读少写的应用场合,否则SD卡寿命很快耗尽,这样比物理操作的磁盘要高效很多。
任何东西要看具体应用来讲,关系型数据库适合于逻辑,业务复杂的企业级系统。对稳定性,可扩展性,安全性,容错性,事务性要求比较高的场合采用oracle,sqlserver等绝对没错。
XML是一种自描述文件格式,并非适合高效,高性能系统,应用在企业级系统上的消息传递比较适合,另外作为配置文件而用绝对是首选。
万事万物都是适度的。
通常,系统的灵活性是要付出性能代价的。
http://subject.csdn.net/sd2-1.html
http://blog.csdn.net/Diogin/archive/2007/07/25/1707806.aspx
http://blog.csdn.net/diogin/
============================================
- 大型系统架构
- 大型系统架构演化
- 大型系统架构演化
- 大型分布式系统架构
- 大型网站系统架构
- 大型网站系统架构
- 大型网站系统架构
- 大型网站系统架构
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- 大型网站系统架构分析
- ff下为什么父容器的高度不能自适应
- 项目管理视频系列讲座
- 上传图片并生成缩略图
- 我的程序人生开始纪念 2008-01-25
- Finalize 方法和析构函数
- 大型系统架构
- 10个在线检测病毒和恶意软件网站
- 如何带新人视频讲座
- 那些情况finalize发放会被调用
- 给图片加水印
- 文件DES加密解密
- 查询数据中重复的记录
- 为Struts 2.0做好准备
- 网站