6大问题是建设网站时需要考虑的

转载 2014年11月14日 15:19:21
因特网起源于美国国防部高级研究计划管理局建立的阿帕网。网站(Website)开始是指在因特网上,根据一定的规则,使用HTML(标准通用标记语言下的一个应用)等工具制作的用于展示特定内容的相关网页的集合。简单地说,网站是一种沟通工具,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的资讯或者享受网络服务。衡量一个网站的性能通常从网站空间大小、网站位置、网站连接速度(俗称“网速”)、网站软件配置、网站提供服务等几方面考虑,最直接的衡量标准是网站的真实流量。

 1.HTML静态化
 
我们都知道,效率最高、消耗最小的就是纯静态化的HTML页面,所以我们尽可能使网站上的页面采用静态页面来实现。
 
2.图片服务器分离
 
大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的、甚至很多台的图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃。   在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持、尽可能少的LoadModule,保证更高的系统消耗和执行效率。
 
3、数据库集群、库表散列
 
大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。   在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方案,您使用了什么样的DB,就参考相应的解决方案来实施即可。   上面提到的数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制,于是我们需要从应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。   我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。   sohu的论坛就是采用了这样的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后对帖子、用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。
 
4、缓存
 
缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。这里先讲述最基本的两种缓存。高级和分布式的缓存在后面讲述。   架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。   网站程序开发方面的缓存,Linux上提供的Memory Cache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存  模块和方法,PHP有Pear的Cache模块,Java就更多了,.net不是很熟悉,相信也肯定有。
 
5、镜像
 
镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。在镜像的细节技术方面,这里不阐述太深,有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。
 
6、负载均衡
 
负载均衡将是大型网站解决高负荷访问和大量并发请求采用的高端解决办法。
 
负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。
 
(1)、硬件四层交换   
 
第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。   第四层交换功能就像是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。   在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。“Yahoo中国”当初接近2000台服务器,只使用了三、四台Alteon就搞定了。
 
(2)、软件四层交换   
 
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说软件实现方式其实更灵活,处理能力完全看你配置的熟悉能力。   软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的强壮性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。   一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。   对于大型网站来说,前面提到的每个方法可能都会被同时使用到,这里介绍得比较浅显,具体实现过程中很多细节还需要大家慢慢熟悉和体会。有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大。
 

以上六大问题就是建站里需要考虑到的哦,不知道小伙伴们在建站的时候有没有用到这些呢,并考虑到这些因素呢;

文章来源于:http://www.alqsoft.com/xinwenzixun/qitaruanjiankaifazixun/2014/1114/176.html

设计数据库时需要考虑的因素

成功的管理系统=50% 的业务+(25%的数据库+25%的程序) 1、考察现有系统环境     大多数数据库项目都不是从头开始建立的,通常机构内总会存在用来满足特定需求的现有系统。显然,现有系统并...
  • dqswuyundong
  • dqswuyundong
  • 2011年08月19日 09:30
  • 2426

程序员要知道的TCP/IP知识

对于大部分的项目开发,可能用不到TCP/IP,但是作为一个做技术的人员,基本的TCP/IP知识是必备的,也有利于以后负责这方面的开发时不会无从下手。 TCP/IP协议是Internet最基本的协议、...
  • fengxuezhiye
  • fengxuezhiye
  • 2013年02月28日 10:32
  • 4108

建一个网站需要哪些费用?(硬件方面)

很多人都希望拥有自己的网站,但是对建站的过程却是非常模糊,大体都知道需要有个服务器,需要有代码。那么,建一个网站都需要哪些流程和费用呢?下面小编来为您解答一下。          建网站的费用主要是...
  • whitelee_pine
  • whitelee_pine
  • 2014年08月25日 23:29
  • 1281

在书写高效 CSS 时会有哪些问题需要考虑?

1.样式是:浏览器是从右向左来解析一个选择器的 2.ID最快,Universal最慢 有四种类型的key selector,解析速度由快到慢依次是:ID、class、tag和universal 3.不...
  • xujie_0311
  • xujie_0311
  • 2014年12月30日 21:03
  • 1238

创业投资决策需要考虑哪些因素

  创业投资者在对投资项目初步筛选后,开始对符合本身投资要求的少量项目开展尽职调查,即认真细致地对企业现状、成功前景及其经营团队开展调查,详细研究和考察产品市场、人员素质以及经济核算(核实和确定每一个...
  • jakee
  • jakee
  • 2004年10月14日 13:13
  • 1130

如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?

采用统一编码UTF-8方式编码 1- 应用字符集的选择;所以对提供了多语言版本的网站来说,Unicode字符集应该是最理想的选择。它是一种双字节编码机制的字符集,不管是东方文字还是西方文字,在Uni...
  • xujie_0311
  • xujie_0311
  • 2014年12月20日 22:00
  • 2863

网站内容建设需要考虑的seo维度

网站内容建设需要考虑的seo维度   网站内容建设应该是网站运营中最重要的部分,也是seo工作的重心,没有实质内容,靠其他手法一时把排名做上去,早晚会被搜索引擎处罚。在实际的seo工作中,根...
  • seoyyedu
  • seoyyedu
  • 2017年12月03日 14:32
  • 1688

作为大型网站架构必须考虑的十大问题

文章来源:PHP开发学习门户 地址: http://www.phpthinking.com/archives/489 这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家...
  • Ksly_Tkol
  • Ksly_Tkol
  • 2014年09月30日 13:35
  • 1794

建设数据仓库需要考虑的因素

1.系统分析,确定主题 建立数据仓库的第一个步骤就是通过与业务部门的充分交流,了解建立数据仓库所要解决的问题的真正含义,确定各个主题下的查询分析要求。 业务人员往往会罗列出很多想解...
  • qq_35686181
  • qq_35686181
  • 2016年10月09日 17:01
  • 523

写给自己的平时写代码要注意的地方

这些代码都是自己平时写代码的时候犯过错误的: // User u = new User(); 在这写就错了 while (rs.next()) { User u = new User(); // 在...
  • wuer0520
  • wuer0520
  • 2013年11月23日 22:53
  • 836
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:6大问题是建设网站时需要考虑的
举报原因:
原因补充:

(最多只允许输入30个字)