【分布式架构的原理】淘宝的演进过程
目录结构
- 一、分布式架构的原理:
- 1. 高并发,大流量
- 2. 高可靠,高可用
- 3. 海量数据存储
- 4. 用户分布广,网络情况复杂
- 5. 网络安全环境恶劣
- 6. 需求变更频繁,版本迭代快
- 二、大型网站的发展演变过程(淘宝)
- 1. 原始阶段
- 2. 应用服务和数据分离
- 3. 加入缓存 提升网站访问速度
- 4. 使用服务器集群避免单点故障
- 5. 使用数据库集群
- 6. 使用cdn加速网站响应
- 7. 使用分布式文件系统
- 8. 使用分布式搜索引擎
- 9. 业务拆分
- 10. 使用分布式框架解决服务治理问题
一、分布式架构的原理:
1. 高并发,大流量
google的日平均pv(35亿),page view,日平均独立访问(ip),3亿。qq/wx的最大在线用户数2019年春节8亿。
2. 高可靠,高可用
系统全年365天不间断运行。阿里云服务器提供99.9999%,一年不超过32秒的服务中断。
集群备份,异地容灾
3. 海量数据存储
facebook每天上传照片10亿张。腾讯每天8亿张。海量数据存储需要硬件和软件支持。(磁盘阵列,HDFS(mapreduce),分布式文件系统,TFS 阿里和腾讯自建的分布式文件系统。)
服务器的部署场景:
- 本地部署 (自己建机房,自己买机房的配套设备,安全性高)
- 公有云 (普通的中小型企业和普通用户)
- 私有云(通过专线访问,安全性高于公有云)
- 入住酒店,房间就是公有云,弹性扩展,不需要自己维护。
- 租房相当于私有云,房间是专属你。
- 本地化部署。自己买房,自己装修,安全自己负责。
4. 用户分布广,网络情况复杂
用户分布在全世界,每个国家的网络情况不同。针对不同的网络,提供不同的服务。
5. 网络安全环境恶劣
互联网是开放性的,大型的知名网站每天都在遭受网络攻击。
6. 需求变更频繁,版本迭代快
用户达到5000W经过了多少时间(获客):
名称 | 时间 |
---|---|
电话 | 75年 |
广播 | 38年 |
电视 | 13年 |
互联网 | 4年 |
3年 | |
Google+ | 88天 |
王者荣耀 | 24天 |
版本更新
好的系统不是设计出来的,是改出来的。
二、大型网站的发展演变过程(淘宝)
1. 原始阶段
淘宝网站诞生在马云家里,去国外买了一个电商网站(php+mysql),只有一台服务器。
2. 应用服务和数据分离
随着业务扩展,用户量上升,一台服务性能不够,需要把数据库和文件存储拆分。
3. 加入缓存 提升网站访问速度
在互联网有个规律,二八定律,经常访问的数据只占20%,80%的数据不经常访问,一般将20%的数据放入到缓存中。提高缓存的命中率。
4. 使用服务器集群避免单点故障
软件的负载均衡使用的是nginx
有钱的企业,购买硬件的负载均衡(F5)
5. 使用数据库集群
mycat实现数据库的读写分离,和分库分表
6. 使用cdn加速网站响应
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
7. 使用分布式文件系统
文件服务器存在单点故障,并且存在容量限制
使用hdfs分布式文件系统,理论上没有容量限制,并且提供附件副本的备份。
8. 使用分布式搜索引擎
解决海量数据的快速搜索,例如淘宝的商品搜索,github的代码搜索,百度的新闻搜索,Lucene,slor,ES(elasctic search)
9. 业务拆分
之前的垂直架构项目,修改一个模块,整个项目需要重新打包部署,并且各个模块相互依赖。存在资源浪费。
每个业务独自建立一个工程,修改单个业务的时候,只需重新编译上线单独的服务器,对其他服务器不影响。
10. 使用分布式框架解决服务治理问题
上面的业务拆分,后果就是出现了一大堆的各种服务,没有一个人能够理清。
【分布式架构的原理】淘宝的演进过程相关推荐
- 通过京东技术演进和淘宝技术演进,探察未来技术和架构
通过京东技术演进和淘宝技术演进,探察未来技术和架构 我们从京东和淘宝技术架构演进,可以看出电商在发展过程中的必经之路:Mysql->Oracle->分布式计算和分布式存储->???未 ...
- 极客日报:阿里再度调整组织架构:天猫淘宝大融合,新设三大中心;苹果M1首席芯片设计师跳槽至英特尔
一分钟速览新闻点! 腾讯接入数字人民币,微信支持数字人民币支付 阿里再度调整组织架构:天猫淘宝大融合,新设三大中心 七成清华毕业生进入体制内就业 北京最受欢迎:华为腾讯等科技企业也受青睐 钉钉近期将推 ...
- 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...
数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...
- 【商品架构day5】淘宝:TOP1的商品系统长什么样子
本文来自阿里范围老师的分享. 1.淘宝体系架构的演进 2.淘宝商品架构 3.元数据在淘宝商品中的运用 (可关注微信公众号回复"商品架构"获取完整版资料.) =>更多文章请参考 ...
- 大型系统架构设计-阿里淘宝天猫双十一数据库核心技术介绍
目录 零.双十一是什么? 一.2013 双十一数据库指导思想 1.知己知彼,百战不殆 (1)如何做到知己 (2)如何做到知彼 2.平时多流汗,战时少流血 (1)真实环境压测之缓存穿透 (2)MetaQ ...
- es分布式架构和原理分析
es的分布式架构 前言 这篇初识ElasticSearch文章中,说明了es的集群的核心概念,回顾一下. 关于节点: 一个运行中的 es实例称为一个节点,而集群是由一个或者多个拥有相同cluster. ...
- 软件系统架构质量属性——淘宝网分析
一.可用性 可用性与系统故障及其相关后果有关 所关注的方面:如何检测系统故障,系统故障发生的频度,出现故障会发生什么情况,允许系统有多长时间非正常运行,什么时候可以安全地消除故障,如何防止故障的发生以 ...
- 一次投诉淘宝卖家的过程
昨天,同事请假去石家庄了,受他委托,让我帮忙充100元话费. 本来想在京东上充的,一想想我用淘宝也挺方便,毕竟自己在淘宝上进行过70多笔购物交易,挺熟悉的. 于是进了淘宝,找到了一个卖家,简单看了一下 ...
- 淘宝技术架构演进之路--精华版
基本概念 IOE ioe指以ibm小型机.oracle数据库和emc存储设备为代表的it基础体系,这三个海外巨头从软硬件上垄断了商业数据库领域,中国企业尤其是大型企业如金融等命脉企业,大都采用ioe架 ...
最新文章
- Android Studio 编译单个module
- Grpc+Grpc Gateway实践二 有些复杂的Hello World
- nyoj_518_取球游戏_201404161738
- linux下netty接收不到服务,Netty 发送消息失败或者接收消息失败的可能原因
- lex 词法分析 linux,lex语言词法分析
- 【语义分割】ICCV21_Self-Regulation for Semantic Segmentation
- Maven项目配置、检出、运行
- 多对一(一对多)的双向关联
- objective-c 关键字和概念
- 用element-ui的走马灯carousel轻松实现自适应全屏banner图 解决el-carousel默认高度300问题 组件代码
- git-bisect last updated in 2.19.1【转】
- 自动化框架应该具备的要点
- define定义的函数如何引用_3分钟短文:Laravel 编程中优雅地添加定义常量
- 石川:股票多因子模型的回归检验
- Win11怎么关闭开机自启动软件
- qpython3h_QPython3H安卓运行Python神器
- b-spline学习-系数计算及程序实践
- pycharm中TODO注释
- ubuntu远程无法连接到服务器配置,解决ubuntu无法远程连接
- 地图无限放大服务器软件,BIGEMAP离线地图服务器