解决方案:大型网站架构技术一览
优采云 发布时间: 2022-11-23 15:26解决方案:大型网站架构技术一览
点击上方“霍利斯”关注我,精彩内容第一时间呈现。
全字数:3000
阅读时间:6分钟
大型网站的挑战主要来自于庞大的用户量、高并发访问量和海量数据。任何一个简单的业务,一旦需要处理数PB的数据,面对上亿用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。更多内容还可以看两篇文章:各大互联网公司架构演进总结和大型网站架构演进。
本文大部分内容来自《大型网站技术架构》。这本书值得一读,强烈推荐。
网站系统架构层次如下图所示:
1. 前端架构
前端是指用户在到达网站应用服务器之前所经过的链接。它通常不收录
网站业务逻辑,也不处理动态内容。
浏览器优化技术
不是优化浏览器,而是通过优化响应页面来加速浏览器页面的加载和显示。常用的方法包括页面缓存、合并 HTTP 以减少请求数以及使用页面压缩。
内容分发网络
内容分发网络部署在网络运营商机房。通过将静态页面内容分发到距离用户最近的CDN服务器,用户可以通过最短路径获取内容。
动静分离,静态资源独立部署
静态资源,如JS、CSS等文件,部署在专用服务器集群上,与Web应用的动态内容服务分离,使用专用(二级)域名。
图片服务
图片不是指网站logo、按钮图标等,这些文件属于上面提到的静态资源,需要和JS、CSS一起部署。这里的图片是指用户上传的图片,如产品图片、用户头像等。图片服务同样适用于独立部署的图片服务器集群,使用独立(二级)域名。
反向代理
部署在网站机房,在应用服务器、静态资源服务器、图片服务器之前提供页面缓存服务。
域名系统
域名服务,将域名解析为IP地址,利用DNS实现DNS负载均衡。配置CDN还需要修改DNS,使域名解析后指向CDN服务器。
2. 应用层架构
应用层是处理网站主要业务逻辑的地方。
开发框架
网站业务多变。网站的大部分软件工程师都在加班加点开发网站业务。一个好的开发框架非常重要。一些开发框架应该能够分离关注点,这样美工和开发工程师就可以各司其职,轻松协作。同时,应该内置一些安全策略来防止Web攻击。
页面渲染
将分别开发和维护的动态内容和静态页面模板进行整合,形成一个完整的页面,最终展示给用户。
负载均衡
将多台应用服务器组成集群,通过负载均衡技术将用户请求分发到不同的服务器,以应对大量用户同时访问时产生的高并发负载压力。
会话管理
" />
为了实现高可用的应用服务器集群,应用服务器通常设计成无状态的,不存储用户请求上下文信息,但网站业务通常需要维护用户会话信息,需要特殊的机制来管理Session ,使得集群内甚至跨集群的应用服务器可以共享Session。
动态页面静态
对于访问量特别大,更新不频繁的动态页面,可以做成静态的,即生成一个静态页面,使用静态页面优化手段来加快用户访问速度,比如反向代理,CDN,浏览器缓存,等等
业务拆分
将复杂庞大的业务拆分成多个规模较小的产品,独立开发、部署和维护,不仅降低了系统耦合度,也有利于数据库业务的隔离。按业务拆分关系型数据库,技术难度相对较小,效果也比较好。
虚拟化服务器
将物理服务器虚拟成多态的虚拟服务器,对于低并发访问的业务来说,可以更容易地用更少的资源构建高可用的应用服务器集群。
3.服务层架构
为应用层调用完成网站业务提供基础服务。
分布式消息
利用消息队列机制实现异步消息发送和业务与业务、业务与服务之间的低耦合业务关系。
分布式服务
提供高性能、低耦合、易复用、易管理的分布式服务,在网站上实现面向服务的架构(SOA)。
分布式缓存
通过可扩展的服务器集群为*敏*感*词*热点数据提供缓存服务是网站性能优化的重要手段。
分布式配置
系统运行需要配置很多参数。如果需要修改这些参数,比如在分布式缓存集群中增加新的缓存服务器,则需要修改应用客户端的缓存服务器列表配置,并重启应用服务器。分布式配置在系统运行过程中提供配置动态推送服务,在不重启服务器的情况下,将配置变更实时推送到应用系统。
4.存储层架构
为数据和文件提供持久存储访问和管理服务。
分布式文件
网站在线业务中需要存储的文件大多是图片、网页、视频等比较小的文件。但是,这些文件的数量非常庞大,而且通常还在不断增加,需要具有更好扩展性设计的分布式文件系统。
关系型数据库
万丈的主营业务大部分是基于关系数据库开发的,但关系数据库对集群扩展性的支持较差。通过在应用程序的数据访问层增加数据库访问的路由功能,根据业务配置将数据库访问路由到不同的物理数据库,可以实现关系型数据库的分布式访问。
NoSQL 数据库
目前各种NoSQL数据库层出不穷,在内存管理、数据模型、集群分布式管理等方面各有千秋。但从社区活跃度来看,HBase无疑是目前最好的。
数据同步
在支持全球数据共享的分布式数据库技术成熟之前,一个拥有多个数据中心的网站必须在多个数据中心之间进行数据同步,以保证每个数据中心的数据完整。在实践中,为了减轻数据库的压力,将数据库的事务日志(或NoSQL写操作日志)同步到其他数据中心,根据日志重现数据,实现数据同步。
5. 背景架构
在网站应用中,除了处理用户的实时访问请求外,还有一些后台的非实时数据分析需要处理。
搜索引擎
即使是网站内部的搜索引擎,也需要增量和全量的数据更新、索引构建等,这些操作都是由后台系统定时执行的。
" />
数据库
提供基于离线数据的数据分析和数据挖掘服务。
推荐系统
社交网站和购物网站通过挖掘人与人之间、人与商品之间的关系,开发潜在的人际关系和购物兴趣,为用户提供个性化推荐服务。
6. 数据采集
和监控
监控网站访问和系统运行,为网站运营决策和运维管理提供支持。
浏览器数据采集
通过在网站页面中嵌入JS脚本,采集
用户浏览环境和操作记录,分析用户行为。
服务器业务数据采集
服务器业务数据包括两种,一种是采集
服务器端记录的用户请求操作日志;另一个是采集
应用程序运行时业务数据,例如要处理的消息数。
服务器性能数据采集
采集
服务器性能数据,如系统负载、内存使用、网卡流量等。
系统监控
将以上采集的数据以图表的形式展示出来,方便运维人员监控网站的运行状况。此步骤仅用于系统监控。更高级的做法是根据采集
到的数据进行自动化运维,自动处理系统异常,就是吸收自动化控制。
系统报警
如果采集到的数据超过了正常情况下预设的阈值,比如系统负载过高,则会通过邮件、短信、语音电话等方式发出告警信号,等待工程师介入。
7. 安全架构
保护您的网站免受攻击和敏感信息泄露。
网络攻击
以 HTTP 请求形式发起的攻击对 XSS 和 SQL 注入攻击危害最大。但只要措施得当,这两种攻击都比较容易防范。
数据保护
敏感信息加密传输和存储,保护网站和用户资产。
8、数据中心机房架构
大型网站需要几十万台服务器,机房的物理结构也需要注意。
机房结构
一个拥有10万台服务器的大型网站,每台服务器的耗电量(包括服务器本身的耗电量和空调的耗电量)每年需要2000元左右,所以机房一年的电费网站建设需要2亿元*敏*感*词*。数据中心的能源消耗问题越来越严重。谷歌和Facebook在选择数据中心选址时,往往会选择散热好、供电充足的地方。
机柜架构
包括机柜尺寸、网线布置、指示灯规格、不间断电源、电压规格(48V直流或220V民用交流)等一系列问题。
服务器架构
由于服务器采购规模大,大型网站多采用定制服务器,而非采购整机服务器。根据网站的应用需求,定制硬盘、内存,甚至CPU,去掉不必要的*敏*感*词*接口(显示输出接口、鼠标、键盘输入接口),让空间结构有利于散热。
解决方案:网页数据采集软件哪个比较好?
网络数据采集软件哪个好?
这类功能要求采集软件具备“平移搜索、自动分析”的能力,如站群软件。
但基本上都是通过很多大型网站的信息页内置的模板来实现的。
" />
官方采集软件会不断在自己的软件中添加新的网站模板,丰富模板库。显然,这类采集软件的“自动解析”能力是比较有限的,会有相当一部分(约60%)的内容无法解析出来。
在业界,唯一不使用内置模板方法解析任何页面文本的技术最好的是优采云
软件。
而有财云采集器
不仅具备自动分析新闻信息的能力,还包括对论坛文本的分析。
论坛文本长短不一,解析技术难度最大。
" />
自动采集
、上传文章用什么软件,如何即时建站?
当然是用国内知名的建站宝箱,免费的自助式建站系统;国内知名的建站宝箱还是卓天网络用的比较好,模板安装后可以直接使用,里面的功能也很多。网站随时更新发布,ExBox是卓天网络虚拟主机增值服务推出的建站系统,包括数千个精美网站模板,数百个网站功能,简体中文版,繁体中文版,同时支持英文版网站,拥有产品发布系统、新闻系统、会员系统、投票系统、广告系统、招聘系统等动态功能模块,页面可随意添加。
使用强大的管理平台,只需轻点鼠标,即可立即创建精美的网站。不仅周期大大缩短,而且可以免费使用,不需要额外的技术和成本投入,可以同步分享我们对产品的技术升级和功能改进。大大节省了用户拥有网站的成本。
谷歌“卓天网”