大型网站架构设计

大型网站的架构设计,涉及到的面非常多,并不像大家想象的那样,就是一个网站这么简单,今天抛砖引玉,希望能给想从事互联网行业的同学一点初步的概念。

架构设计,其实就要清楚整个大型网站技术架构的演变历程,知道每个阶段的瓶颈在哪里,以及对应的解决方案。很多公司都是小做到大,特别是创业公司,如果一步步发展起来,网站架构演变都会经历这些步骤,请重点注意顺序。

大型网站架构演变过程

架构演变第一步:物理分离webserver和数据库

架构演变第二步:增加页面缓存

架构演变第三步:增加页面片段缓存

架构演变第四步:数据缓存

架构演变第五步: 增加webserver(集群)

架构演变第六步:分库(首先考虑)

架构演变第七步:分表、DAL和分布式缓存

架构演变第八步:增加更多的webserver

架构演变第九步:数据读写分离和廉价存储方案

架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代

由于篇幅的关系,今天不重点讲如何一步步演变的历程,我们倒序来查看,先看森林,再看树木。

大型分布式应用架构组件

分布式缓存

高并发环境下,大量的读写请求涌向数据库,磁盘的处理速度与内存显然不在一个量级,从减轻数据库的压力和提高系统响应速度两个角度来考虑,一般都会在数据库之前加一层缓存。由于单台机器的内存资源以及承载能力有限,并且,如果大量使用本地缓存,也会使相同的数据被不同的节点存储多份,对内存资源造成较大的浪费,因此,才催生出了分布式缓存。

大型网站架构设计


分布式缓存系统

memcached ,redis,动态、静态数据的缓存,这里会涉及到:一致性hash算法、分布式session、数据复制多份、单台缓存失效、集群间能够自动复制和备份等知识点。


CDN

大型网站架构设计

全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络基本。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

现在大型互联网公司都建立由属于自己的CDN基站,也有第三方专注于CDN的基站等。


持久化储存

大型网站架构设计

具体说就是以IBM为代表的主机、以ORACLE为代表的关系型数据库,以及以EMC为代表的高端存储设备,被新型的云计算技术所替换,也就是我们常说的“云化”,也就是廉价存储方案。

IBM的产品,在我国的金融行业中占据着绝对的优势,Oracle的数据库,在电信、证券行业占着相当大的份额,EMC的存储,在银行、电信、证券等垄断行业,都占据着较大的份额,要知道,EMC是全球最大的存储公司。

由于互联网技术发展日新月异,扩展速度十分迅速,这是传统的电信、金融、证券、保险、电力等行业所不能比的。因此互联网企业的后台架构,需要具备很强的可扩展性。比如,假设一个网站,今年的活跃用户数量只有10万,明天就有可能上升到1000多万,这就需要后台架构具有很强的扩展性,可以根据用户的数量进行灵活的扩展。


所以才有了阿里从2008年开始的轰轰烈烈的去IOE事件。


数据库拆分

大型网站架构设计

一般先分库,如果分库后查询仍然慢,于是按照分库的思想开始做分表的工作数据库采用分布式数据库(所有节点的数据加起来才算是整体数据),文件系统采用分布式文件系统任何强大的单一服务器都满足不了大型系统持续增长的业务需求,数据库读写分离随着业务的发展最终也将无法满足需求,需要使用分布式数据库及分布式文件系统来支撑。

分布式数据库是系统数据库拆分的最后方法,只有在单表数据规模非常庞大的时候才使用,更常用的数据库拆分手段是业务分库,将不同的业务数据库部署在不同的物理服务器上。

比如淘宝中期开始的数据库端按照业务垂直拆分:按照业务交易数据库、用户数据库、商品数据库、店铺数据库等进行拆分。

还有就是水平扩展,分库分表,再结合读写分离一起。当然,分库分表需要涉及到对应的SQL路由规则主库备库等,淘宝设计了一套TDDL来解决这些问题,应用端只需配置对应的规则即可,对应用端的没有任何侵入的设计。


消息系统


大型网站架构设计

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。

目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。


消息系统使用场景


典型的异步处理,应用解耦,流量削锋和消息通讯四个场景。

除了以上还要设计运维(掌握分布式并行计算、报表、监控技术以及规则策略),安全、运营、服务、存储、业务拆分、机房容灾等等,要做好一个大型的网站真的很不容易。


money.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强化学习之原理与应用

PaddlePaddle原创2019/02/20 17:23强化学习之原理与应用强化学习特别是深度强化学习近年来取得了令人瞩目的成就,除了应用于模拟器和游戏领域,在工业领域也正取得长足的进步。百度是较早布局强化学习的公司之一。这篇文章系统地介绍强化学习算法基础知识…

论文浅尝 | 基于多原型mention向量的文本-实体联合学习

链接:http://anthology.aclweb.org/P/P17/P17-1149.pdf概述在知识库和文本的联合表示中,歧义是个困扰的难题。同一个 mention 可能在不同的语境下表述不同实体,同一个实体又有多种 mention 表示,如下图。本文提出了一个新的表示方…

NLP预训练模型综述:从word2vec, ELMo到BERT

目录 前言 word2vec 模型 负采样 char-level与上下文 ELMo BERT 深层双向的encoding 学习句子与句对关系表示 简洁到过分的下游任务接口 前言 还记得不久之前的机器阅读理解领域,微软和阿里在SQuAD上分别以R-Net和SLQA超过人类,百度在MS MARCO…

一篇文章了解架构设计的本质

“ 大型网站的架构设计,涉及到的面非常多,并不像大家想象的那样,就是一个网站这么简单,今天抛砖引玉,希望大家正确看待架构设计。 什么是架构设计的本质? 任何系统,自然情况下,都是…

看完这篇Linux基本的操作就会了

只有光头才能变强这个学期开了Linux的课程了,授课的老师也是比较负责任的一位。总的来说也算是比较系统地学习了一下Linux了~~~ 本文章主要是总结Linux的基础操作以及一些简单的概念~如果不熟悉的同学可下个Linux来玩玩(或者去买一个服务器玩玩【学生版的不是很贵】…

论文浅尝 | 基于知识图的问答变分推理

Zhang Y, Dai H, Kozareva Z, et al. Variational Reasoning for Question Answering with Knowledge Graph. Proceedings of 32th AAAI 2018动机传统的知识图谱问答主要是基语义解析的方法,这种方法通常是将问题映射到一个形式化的逻辑表达式,然后将这个…

阿里P8架构师谈:分布式架构设计(文章合集)

Docker容器 阿里P8架构师谈:Docker简介、组成架构、使用步骤、以及生态产品 阿里P8架构师谈:Docker容器的原理、特征、基本架构、与应用场景 消息中间件 阿里P8架构师谈:消息中间件介绍、典型使用场景、以及使用原则 阿里P8架构师谈:分布…

NLP史上最全预训练模型汇总

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&…

论文浅尝 | 基于迭代的概率规则约束的知识图谱分布式表示

Citation:Shu Guo, Quan Wang, Lihong Wang, Bin Wang, Li Guo.Knowledge Graph Embeddingwith Iterative Guidance from Soft Rules. AAAI 2018. 动机知识图谱的分布式表示旨在将知识图谱中的实体和关系表示到连续的向量空间中,本文考虑的问题是如何将知识库的分布…

笔记:毫米波雷达传感器,优势、应用和产业规模

信息来源:https://www.sohu.com/a/314806539_465219 优势 非接触式传感,可检测物体的距离、速度和角度信息,唯一可以“全天候全天时”工作的传感器系统组件(比如天线)的尺寸可以做到很小穿透性:穿透塑料、墙板和衣服等特殊材料高…

「优知学院」淘宝架构的前世今生(下)

“ 淘宝技术架构前世今生就是一部架构活教材,今天仍然由陈睿mikechen为大家解读淘宝架构。 我稍微把前面淘宝架构的三个阶段简短总结: 淘宝1.0 采用LAMP mysql读写操作 淘宝2.0 把mysql替换为oracle,为了使用oracle的连接池,php采用代理连…

学习排序 Learning to Rank:从 pointwise 和 pairwise 到 listwise,经典模型与优缺点

Ranking 是信息检索领域的基本问题,也是搜索引擎背后的重要组成模块。本文将对结合机器学习的 ranking 技术——learning2rank——做个系统整理,包括 pointwise、pairwise、listwise 三大类型,它们的经典模型,解决了什么问题&…

论文浅尝 | 从 6 篇顶会论文看「知识图谱」领域最新研究进展 | 解读 代码

本文内容源自往期「论文浅尝」,由 PaperWeekly 精选并重新排版整理,感谢 PaperWeekly。ISWC 2018■ 链接 | http://www.paperweekly.site/papers/1912■ 源码 | https://github.com/quyingqi/kbqa-ar-smcnn■ 解读 | 吴桐桐,东南大学博士生&a…

互联网(IT)大厂面试技巧(面经)

目录 前言 面试的正确姿势 实战 最后的总结 前言 虽然资历尚浅,但是也面过不少试,有Google、微软等外企大佬,也有BAT等国内巨头,工作的这几年也有幸当过几次面试官,小鹿这里呢就结合自己的亲身经历,聊…

「优知学院」淘宝技术架构的前世今生(上)

“ 淘宝技术架构经历从最初的LAMP架构,到IOE架构,再到分布式架构,再到去IOE,最后到现在的云计算平台架构这一变化过程在不断解决上面的技术问题,可以说淘宝技术架构的演变就是活生生的一本架构教科书。 这次为大家带…

十大双跨平台整体发展情况盘点

在2019年国家级双跨平台发布一年之际和新一轮遴选开场之前,相关媒体“从战略演进、平台发展、资源汇聚及行业应用四个维度九个细分指标”,对十大双跨平台整体发展情况通过“一张图”的形式做了一次盘点(图略)。 我们通过对图中指…

机器学习中的范数规则化之(一)L0、L1与L2范数

机器学习中的范数规则化之(一)L0、L1与L2范数 zouxy09qq.com http://blog.csdn.net/zouxy09今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化。我们先简单的来理解下常用的L0、L1、L2和核范数规则化。最后聊下规则化项参数的选择问…

模型训练慢和显存不够怎么办?GPU加速混合精度训练

目录 混合精度训练 理论原理 三大深度学习框架的打开方式 Pytorch Tensorflow PaddlePaddle 混合精度训练 一切还要从2018年ICLR的一篇论文说起。。。 《MIXED PRECISION TRAINING》 这篇论文是百度&Nvidia研究院一起发表的,结合N卡底层计算优化&#x…

陈睿:架构设计之数据库拆分六大原则

架构设计之数据库拆分原则 数据拆分前其实是要首先做准备工作的,然后才是开始数据拆分,我先讲拆分前需要做的事情: 第一步:采用分布式缓存redis、memcached等降低对数据库的读操作。 第二步:如果缓存使用过后&#xf…

模式识别之特征提取算法

说明:此处暂时简单介绍下各种特征提取算法,后续完善。 前言:模式识别中进行匹配识别或者分类器分类识别时,判断的依据就是图像特征。用提取的特征表示整幅图像内容,根据特征匹配或者分类图像目标。常见的特征提取算法…