企业大型网站建设的系统架构及注意事项
随着企业的发展,很多企业的网站也是越做越大,对于大型网站建设的系统架构需要有系统性的分析和策划。
1、缓存缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。这里先讲述最基本的两种缓存。高级和分布式的缓存在后面讲述。架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。网站程序开发方面的缓存,Linux上提供的Memory Cache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存模块和方法,PHP有Pear的Cache模块,Java就更多了,.net不是很熟悉,相信也肯定有。2、负载均衡
负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。硬件四层交换第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。 第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。
在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了。软件四层交换
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说软件实现方式其实更灵活,处理能力完全看你配置的熟悉能力。软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。这样的架构我准备空了专门详细整理一下和大家探讨。
对于大型网站来说,前面提到的每个方法可能都会被同时使用到,我这里介绍得比较浅显,具体实现过程中很多细节还需要大家慢慢熟悉和体会,有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大,希望大家一起讨论,达到抛砖引玉之效。
4、数据库集群和库表散列
大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方案,您使用了什么样的DB,就参考相应的解决方案来实施即可。
上面提到的数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制,于是我们需要从应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。sohu的论坛就是采用了这样的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后对帖子、用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。
5、图片服务器分离
大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃,在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的 LoadModule,保证更高的系统消耗和执行效率。6、镜像
镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和 EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。在镜像的细节技术方面,这里不阐述太深,有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。7、HTML静态化
其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。
同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。大型企业网站建设问题;
1、页面缓存
将访问生成的response缓存起来 定时更新 下次访问直接返回缓存的response2、数据库压力过大
利用数据库主从数据复制的特性进行数据库读写分离添加nosql中间件存放热点数据用搜索引擎存放部分要读的数据根据业务拆分数据或者分表需要考虑分布式主键的问题3、多个服务器集群后session同步问题
可以通过算法计算使同一个ip访问同一台服务器可以复制sessio各个服务器(不推荐开销大)session存在第三方中间件如redis中4、拆分应用
做到服务化,各个服务可能会出现重复代码,注意分布式事物,需要消息中间件支撑大型网站建设需要注意事项;网站所选择的网络提供商:网通电信两个交叉通信很慢,考虑那些两个都接入速度很快的,比如网信通(我以前公司的网站和游戏都在上面)1).不停的监控在监控性能及运行状态
2).代码优化(算法真tmd的很重要)3).数据结构及数据算法(数据库结构一定要优化,如果表太大,请用分表设置模式,如果能分数据库参考petshop)4).缓存(大网站不能没有缓存:数据库缓存、数据缓存、页面缓存、图片缓存)5).测试测试再测试6).压力测试(没有这个测试的大网站表搞笑了)7).开发架构(架构扩展性一定要考虑,很多时候架构能解决很多问题)8).网站架构体系(WEB服务器?多少、数据库服务器多少?、缓存服务器、图片服务器、备份服务器)具体的来说涉及到:
1. 网站运行技术框架要求技术范围 说明.net2.0MSSQL2005JMAILIIS6.0SERV-UAJAXHTMLW3CJAVASCRIPT2. 网站浏览速度要求(10月份速度、页面大小要求)
网页的加载速度与网页内容大小成正比,网页越大,加载越慢,网页越小加载越快1) 网页加载速度标准 6秒慢 > 10秒非常慢 > 20秒快 <5秒非常快 <2秒2) 网页大小
标准 350k大 > 400k非常大 > 500k小 <250k非常小 <150k3) 首页加载速度必须小于6秒
4) 订餐网页加载速度必须小于8秒5) 网页服务器缓存6) 网页图片缓存7) 减少页面图片大小说明:此要求为10月份网站速度、页面大小要求。3. 网站兼容性要求兼容浏览器 说明IE6 完全兼容Ie6补丁打全后 完全兼容IE7 完全兼容FIREFOX 完全兼容TT 完全兼容遨游 流畅订餐流程4. 网站安全性要求1) 无SQL注入点1. 字符注入2. 数字注入3. 其他注入2) 敏感Cookie必须加密
1. 用户数字id2. 订单信息3) 过滤cookie欺骗程序
4) 无错误明细输出给客户,返回我们定义好的错误信息给客户5) 权限受限严格验证5. 稳定性要求
1) 程序无明显错误,如:不定期出现某些乱码问题2) 并发用户达到500人/秒正常运行6. 可靠性要求
1) 保证安全性能2) 保证稳定性7. 搜索引擎优化需求
1) 页面TITLE要求显示不同页不同TITLE,并显示名称关键字2) 页面内关键字3) 网站遍历功能各大门户网站都用了CDN. 你们可以考虑自己做.
3台Linux服务器,1台Windows服务器. 或者更多. windows服务器放主站点,URL静态化.linux1做电信squid服务器. 缓存整个站点的电信访问.linux2做网通squid服务器. 缓存网通访问.linux3做DNS服务器,做个智能DNS解析.这样做,电信用户访问站点,则访问电信缓存服务器. 网通用户访问站点,则访问网通缓存服务器.
当缓存没有查询内容的时候,才由缓存服务器去windows服务器取数据,并缓存.当然你也可以架设铁通的服务器. 或者搞缓存服务器队列.以上是嘉纪商正为您提供的信息,希望对您有帮助!嘉纪商正是具有十年行业经验的北京网站建设公司,专业从事各类高端网站建设、移动端应用(APP开发应用、手机站、响应式网站)、网上购物商城开发、微信开发(微商城、微信公众号、小程序开发)、品牌营销推广(SEO优化,关键词排名推广,软文推广),网站托管及维护等一系列互联网应用服务等业务。我们坚持以客户为中心,具创新求发展,树诚信致长存。精益求精,尽善尽美,用心服务每一个客户,为您提供综合化互联网一站式服务。
1、十年行业专注 。经验丰富。高端产品,低端价格。2、标准合作流程 。3、专业设计团队。4、几千家成功案例。5、完善的售后服务。6、建站送域名服务器,免费技术支持,免费维护,出现任何问题免费处理。如果您有建站、网站排名优化、微信开发、app开发等方面的需求,请联系我们,我们的价格合理,服务完善,期待和您的合作。
相关阅读
-
win10怎么快速关闭屏幕?win10快速关闭屏幕方法
估计很多用 Win10 的人都会想要快速锁屏来保护个人隐私,但是也有人不知道怎么快速关掉屏幕。其实很简单,你可以直接按 Win + L 快捷键,或者右键点击桌面上的空白地方,然后选择快捷方式就可以啦。下面我们就来详细说一下 Win10 快速
-
苹果iOS 17.4 Beta版开放侧载功能,但iPad不在列
1月27日消息,苹果公司近日针对欧盟《数字市场法》作出了响应,上线了iOS 17.4 Beta版,向欧盟用户开放了侧载功能。然而,尽管iPadOS与iOS在本质上并无太大差异,但iPad并不支持侧载功能。这意味着,安装第三方应用商店以及从第
-
极氪20万台新能源汽车里程碑达成
1月8日消息,国内新能源汽车市场再传捷报。极氪汽车今日欣喜公布,经过26个月的不懈努力,其累计交付汽车数量已突破20万台大关。这一成就不仅彰显了极氪在新能源领域的强劲实力,更使其持续刷新着新势力品牌的最快交付纪录,同时保持着全球唯一的新能源
-
Win11系统intel核显控制面板怎么打开-打开intel核显控制面板的方法
你晓得吗?有些小伙伴想开自己电脑的intel核显控制面板来看显卡驱动信息。里面可以检查更新驱动。但是,他们不知道怎么开这个面板。如果也想试试看的话,可以看看下面的操作方法哦!打开intel核显控制面板的方法1. 右键桌面空白处,就能打开英特
-
Windows10玩GTA5闪退怎么解决?Windows10玩GTA5闪退解决方法
Windows10玩GTA5闪退怎么解决?GTA5是一款非常知名的游戏,很多的玩家都在畅玩,但是很多的用户们在玩耍这一款游戏的时候,遇到了自己电脑玩GTA5会闪退,这个问题我们怎么解决呢?下面小编为大家带来详细的解决方法介绍,快来看看吧!
-
极氪第二款MPV车型“CM2E”谍照曝光,或于2024年上半年亮相
1月17日消息,近日,知名汽车博主@SugarDesign在社交媒体上发布了极氪品牌旗下第二款MPV车型——内部代号“CM2E”的谍照。据推测,新车可能为小型MPV,有望于2024年上半年与大家正式见面。 从曝光的谍照中可以看出,极氪CM