网站架构

搜索引擎分类和基础架构概述

落花浮王杯 提交于 2019-12-02 17:06:41
搜索引擎的标准定义 :搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。从上述定义中我们可以获得几个有关 搜索引擎的关键步骤 ,分别为: 搜集信息;组织和处理信息;展示信息。 1. 搜索引擎分类 1)全文搜索引擎 全文搜索引擎是从网站提取信息从而构建网页数据库的。 全文搜索引擎的是如何搜集网站的呢?其实这里一般有两种方法:   1> 搜索引擎定期派出网络爬虫(也成为是蜘蛛或者机器人),对互联网中的网站进行检索,一旦发现有新的网站就会自动抽取其信息,然后加入到自己的数据库中;   2> 网站拥有者主动向搜索引擎提交自己的网站信息,但是主动提交网站并不能一定确保自己的网站会被搜索引擎收录,网站拥有者可以通过外链来提升自己网站的受关注度(这属于SEO的知识了)。   全文搜索引擎如何展示查询结果?   当用户输入查询词(query)查询时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度、出现的位置、频次、链接质量——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。 2)目录搜索引擎 目录搜索引擎主要是按类目对网站进行收录,而且在查询时也不需要输入关键词

大型网站核心架构要素

只愿长相守 提交于 2019-12-02 12:19:38
目录 大型网站核心架构要素 1.性能 2.可用性 3.伸缩性 4.扩展性 5.安全性 大型网站核心架构要素 软件架构需要关注的架构要素:性能、可用性、伸缩性、扩展性、安全性 1.性能 可优化性能的环节: 浏览器端: 浏览器缓存、使用页面压缩、合理布局页面、减少Cookie传输等 CDN,将静态内容存储在离用户最近的网络服务商机房,部署方向代理服务器,缓存热点文件,加快请求响应速度,减轻应用服务器负载压力。 应用服务器端: 使用服务器本地缓存和分布式缓存,加快请求处理,减轻数据库负载压力 异步操作 搭建应用服务器集群,提高整体处理能力,改善性能。 代码层面: 多线程,内存管理 数据库服务器端: 索引、缓存、SQL优化等,加入NoSQL数据库 衡量网站性能的一些指标: 响应时间 TPS:事务数/秒,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。 系统性能计数器 …… 还有其他一些指标作为日常监控,分析系统瓶颈,预测网站容量,还需要进行压力测试,知道整个系统的极限,还可以测试超出系统负载能力后,会出现什么问题。 2.可用性 一个大型网站通常需要全天无故障运行,一旦出现故障,造成的损失都是不可估量的。比如很多年前的12306买票系统故障 大型网站可用性4个9指标 99.99%。 高可用设计:保证服务器宕机时,应用依然可用。 网站高可用的主要手段就是冗余

关于大型网站架构整理

只谈情不闲聊 提交于 2019-12-01 22:50:21
1、大型网站架构的发展史(红字就是每一步发展历程的关键) (1)从一个小网站发展起来, 一台服务器,应用程序、数据库、文件等所有资源都在一台服务器上 (2)网站业务的发展,一台服务器逐渐不能满足需求,因此要将 应用和数据分离,应用和数据分离后使用三台服务器:应用服务器、文件服务器和数据库服务器 (3)网站进一步发展,数据库压力太大导致访问延迟,因此 使用缓存该改善网站性能(记住,使用缓存是改善网站性能的第一步) ,网站使用的缓存分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存 (4)使用缓存,数据库访问压力得到有效缓解,但是在网站访问高峰期应用服务器还是成为了整个网站的瓶颈。这种时候要理解, 不要企图去更换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求 ,因此可以 通过增加服务器的方式改善负载压力 ,再通过负载均衡调度服务器,将来自用户浏览器的访问请求分发到应用服务器集群中的某台服务器上 (5)虽然使用缓存可以使大部分数据不走数据库,但是缓存没有命中、缓存过期的数据还是会走数据库,网站达到一定规模之后,数据库读写压力还是会很大,成为网站的瓶颈。此时可以 使用数据库读写分离来改善数据库负载压力,应用服务器写数据走写库,应用服务器读数据走读库 ,目前大部分主流数据库都提供主从热备功能,通过配置两台数据库主从关系

企业网站架构之Nginx详解原理以及工作模块;源码Lnmp架构

元气小坏坏 提交于 2019-12-01 13:33:35
Nginx 详解及 lnmp 环境架构 一、 Nginx 详解以及优点 在当前互联网环境下 , 一般高端的服务前端都采用 nginx 作为 web 前端 , 而更多的都是采用 lnmp 架构 , 真正的后端服务器才会采用 apache. 为什么这么做 , 要取决于 nginx 和 apache 两者之间的优缺性 .: nginx 与 apache 相比有以下优势:在性能上 ,nginx 占用很少的系统资源 , 能支持更多的并发链接 , 达到更高的访问率 ; 在功能上 ,Nginx 是优秀的代理服务器和负载均衡器 ; 在安装配置上 , 简单灵活。 nginx 模块基本都是静态编译 , 同时对 Fast-CGI 支持比较好 . 在处理链接上 ,nginx 支持 epoll, 而且体积小一般只有几百 K 。 Nginx 的优点有以下几点: 1. 作为 Web 服务器, nginx 处理静态文件、索引文件以及自动索引效率非常高。 2. 作为代理服务器, Nginx 可以实现无缓存的反向代理加速,提高网站运行速度。 3. 作为负载均衡服务器, Nginx 既可以在内部直接支持 Rails 和 PHP ,也可以支持 HTTP 代理服务器,对外进行服务。同时支持简单的容错和利用算法进行负载均衡。 4. 在性能方面, Nginx 是专门为性能优化而开发的,在实现上非常注重效率。它采用内核 Poll

高并发高流量网站架构详解

喜你入骨 提交于 2019-12-01 11:12:34
镜像网站技术 镜像网站是指将一个完全相同的站点放到几个服务器上,分别有自己的URL,这些服务器上的网站互相称为镜像网站。镜像网站和主站 并没有太大差别,或者可以视为主站的拷贝。镜像网站的好处是:如果不能对主站作正常访问(如服务器故障,网络故障或者网速太慢等),仍能通过镜像服务器获得服务。不便之处是:更新网站内容的时候,需要同时更新多个服 务器;需要用户记忆超过一个网址,或需要用户选择访问多个镜像网站中的一个,而用户选择的,不一定是最优的。在用户选择的过程中,缺乏必要的可控性。 在互联网发展的初期,互联网上的网站内容很少,而且大都是静态内容,更新频率底。但因为服务器运算能力低,带宽小,网速慢,热门网站的访问压力还是很大。 镜像网站技术在这种情况下作为一种有效解决方案,被广泛采用。随着互联网的发展,越来越多的网站使用服务器端脚本动态生成内容,同步更新越来越困难,对可 控性要求越来越高,镜像技术因为不能满足这类网站的需要,渐渐的淡出了人们的视线。但有一些大型的软件下载站,因为符合镜像网站的条件——下载的内容是静态的,更新频率较低,对带宽,速度要求又比较高, 如国外的SourceForge (http://www.SourceForge.net, 著名开源软件托管网站),Fedora(http://fedoraproject.org,RedHat 赞助的 Linux 发行版)

《大型网站技术架构——核心原理与案例分析》目录

倾然丶 夕夏残阳落幕 提交于 2019-12-01 07:33:52
第1篇:概述 第1章:大型网站架构演化 第2章:大型网站架构模式 第3章:大型网站核心架构要素 第2篇:架构 第4章:瞬时响应:网站的高性能架构 第5章:万无一失:网站的高可用架构 第6章:永无止境:网站的伸缩性架构 第7章:随需应变:网站的可扩展架构 第8章:固若金汤:网站的安全架构 第3篇:案例 第9章:淘宝网的架构演化案例分析 第10章:维基百科的高性能架构设计分析 第11章:海量分布式存储系统Doris的高可用架构设计分析 第12章:网购秒杀系统架构设计案例分析 第13章:大型网站典型故障案例分析 第4篇:架构师 第14章:架构师领导艺术 第15章:网站架构师职场攻略 第16章:漫话网站架构师 来源: oschina 链接: https://my.oschina.net/u/2470917/blog/3011291

运维工作应该掌握哪些技能?

杀马特。学长 韩版系。学妹 提交于 2019-12-01 03:02:31
运维工作应该掌握哪些技能? 运维中关键技术点解剖:1 大量高并发网站的设计方案 ;2 高可靠、高可伸缩性网络架构设计;3 网站安全问题,如何避免被黑?4 南北互联问题,动态CDN解决方案;5 海量数据存储架构 一、什么是大型网站运维? 首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的;然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范、知名度、服务器 量级、pv量等考虑,其它因素不是重点;因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内排名前10),如sina、baidu、 QQ, http:// 51.com 等等;其它小型网站可能没有真正意义上的运维工程师,这与网站规范不够和成本因素有关,更多的是集合网络、系统 、开发工作于一身的“复合性人才”,就如有些公司把一些合同采购都纳入了运维职责范围,还有如IDC网络规划也纳入运维职责。所以,非常重要一定需要明白:运维对其它关联工种必须非常了解熟悉:网络、系统、系统开发、存储,安全,DB等;我在这里所讲的运维工程师就是指专职运维工程师。 我们再来说说一般产品的“出生”流程: 1、首先公司管理层给出指导思想,PM定位市场需求(或copy成熟应用)进行调研、分析、最终给出详细设计。 2、架构师根据产品设计的需求,如pv大小预估、服务器规模

分布式网站架构后续:zookeeper技术浅析

梦想的初衷 提交于 2019-12-01 00:24:37
 Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作用。   Zookeeper是针对大型分布式系统的高可靠的协调系统。由这个定义我们知道zookeeper是个协调系统,作用的对象是分布式系统。为什么分布式系统需要一个协调系统了?理由如下:   开发分布式系统是件很困难的事情,其中的困难主要体现在分布式系统的“部分失败”。“部分失败”是指信息在网络的两个节点之间传送时候,如果网络出了故障,发送者无法知道接收者是否收到了这个信息,而且这种故障的原因很复杂,接收者可能在出现网络错误之前已经收到了信息,也可能没有收到,又或接收者的进程死掉了。发送者能够获得真实情况的唯一办法就是重新连接到接收者,询问接收者错误的原因,这就是分布式系统开发里的“部分失败”问题。   Zookeeper就是解决分布式系统“部分失败”的框架。Zookeeper不是让分布式系统避免“部分失败”问题,而是让分布式系统当碰到部分失败时候,可以正确的处理此类的问题,让分布式系统能正常的运行。  

大型网站架构系列:电商网站架构案例

匆匆过客 提交于 2019-11-30 23:11:30
#0 系列目录# 大型分布式网站架构 大型分布式网站架构技术总结 大型网站架构系列:电商网站架构案例 #1 电商案例原因# 分布式大型网站,目前看主要有几类1.大型门户,比如网易,新浪等;2.SNS网站,比如校内,开心网等;3.电商网站:比如阿里巴巴,京东商城,国美在线,汽车之家等。 大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化 , 开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等 。电商网站具备以上两类的特点, 比如产品详情可以采用CDN,静态化,交互性高的需要采用NOSQL等技术 。因此,我们采用电商网站作为案例,进行分析。 #2 电商网站需求# 客户需求: 建立一个全品类的电子商务网站(B2C),用户可以在线购买商品,可以在线支付,也可以货到付款; 用户购买时可以在线与客服沟通; 用户收到商品后,可以给商品打分,评价; 目前有成熟的进销存系统;需要与网站对接; 希望能够支持3~5年,业务的发展; 预计3~5年用户数达到1000万; 定期举办双11,双12,三八男人节等活动; 其他的功能参考京东或国美在线等网站。 客户就是客户,不会告诉你具体要什么,只会告诉你他想要什么,我们很多时候要引导,挖掘客户的需求。好在提供了明确的参考网站。因此,下一步要进行大量的分析,结合行业,以及参考网站,给客户提供方案。 需求管理传统的做法

电商网站架构案例

北城以北 提交于 2019-11-30 23:09:02
一、电商案例的原因 分布式大型网站,目前看主要有几类1.大型门户,比如网易,新浪等;2.SNS网站,比如校内,开心网等;3.电商网站:比如阿里巴巴,京东商城, 国美在线,汽车之家等。大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存, 使用高性能的通信框架等。电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的需要采用NOSQL等技术。因此,我们采用电商网 站作为案例,进行分析。 二、电商网站需求 客户需求: 建立一个全品类的电子商务网站(B2C),用户可以在线购买商品,可以在线支付,也可以货到付款; 用户购买时可以在线与客服沟通; 用户收到商品后,可以给商品打分,评价; 目前有成熟的进销存系统;需要与网站对接; 希望能够支持3~5年,业务的发展; 预计3~5年用户数达到1000万; 定期举办双11,双12,三八男人节等活动; 其他的功能参考京东或国美在线等网站。 客户就是客户,不会告诉你具体要什么,只会告诉你他想要什么,我们很多时候要引导,挖掘客户的需求。好在提供了明确的参考网站。因此,下一步要进行大量的分析,结合行业,以及参考网站,给客户提供方案。 其他的略~~~~~ 需求功能矩阵 需求管理传统的做法,会使用用例图或模块图(需求列表)进行需求的描述。这样做常常忽视掉一个很重要的需求