阅读淘宝架构

网址:https://mp.weixin.qq.com/s?__biz=MzAxNjAzMTQyMA==&mid=2648476063&idx=1&sn=882fb8584b82107d5af191af5b805d0e&chksm=83d3224cb4a4ab5a72e04dbaa6c6621cc866ab913bb7abb1aa8e6f7860e128501ca1a3c26d4a&scene=21#wechat_redirect

https://mp.weixin.qq.com/s?__biz=MzA4MjA0MTc4NQ==&mid=2651573322&idx=1&sn=2092e183f829ff2129e36b1b5487797b&scene=21#wechat_redirect

https://mp.weixin.qq.com/s?__biz=MzIxODQxMjc0MA==&mid=2247489229&idx=2&sn=187137fa783ba67b707433ce2a595991&chksm=97ebb566a09c3c70347eed50888069e5774f4df2b8184928b7bb0160ed4fca2c84c4461fb587&scene=21#wechat_redirect

首先介绍一下专有名词:

  量子统计:是指一种网站流量统计工具。2009年,量子团队在网站统计的基础上,开发出专门应用于淘宝店铺卖家的统计产品——量子店铺统计(V2.8.3版本),以全新的UI及更加强大的数据分析功能再次成为业界一大亮点。此次升级是在淘宝网开放数据的大背景下进行的,目标是更好的将淘宝拥有的海量数据服务于卖家店铺运营,所以V3.0版本在数据稳定性、分析准确性、运营指导性几方面均实现了质的提升。在后续计划中,量子店铺统计将允许卖家对自己的数据统计模块进行个性化调整,以实现满足不同商业领域、不同运营状态的店铺的多元化需求。量子恒道统计(淘宝官方出品)

  数据魔方:数据魔方是淘宝官方出品的一款数据产品。主要提供行业数据分析,店铺数据分析。其中包含了品牌、店铺、产品的排行榜,购买人群的特征分析(年龄、性别、购买时段、地域等等)

  淘宝指数:是淘宝官方的免费的数据分享平台,于2011年年底上线,通过它,用户可以窥探淘宝购物数据,了解淘宝购物趋势。而且产品不仅仅针对淘宝卖家,还包括淘宝买家及广大的第三方用户。同时承诺将永久免费服务,成为阿里巴巴旗下一强大精准的数据产品。

  缓存穿透:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询。查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。

  布隆过滤器:它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。

  SOA:面向服务的架构,面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

  

淘宝对数据的写入并非实时写入的,保证了数据库在一定时间内是只读的。

大量的数据肯定需要对系统进行切分,对数据进行划分,按照架构区分,数据源、计算层、储存层、查询层、产品层。

在产品层得到的数据一部分为对实时计算要求不是很高,那么将他们传输到分布式的存储数据库,利用mapreduce进行后台离线计算,对数据进行分析,另一部分是对实时性要求很高,那就推出了六十数据的实时计算平台“银河”,但是对于实时查询,这两个系统都不是很完美。

对于实时查询,还是传统的关系型数据库,淘宝推出了基于MySQL的MyFOX,用于对数据的实时查询。关系型数据库可以解决数据的查询速度问题,但是大量的数据储存也是问题,虽然建立的分布式的储存系统。那么对于数据可分为热数据和冷数据。热数据存放在热节点,硬件设施更好,使用频率高,对于冷数据,使用频率并不是很高,所以硬件要求不是很高。

但是在实际的使用环境中,MyFOX并不能完美解决所有问题,那就是遇到的全属性选择器:过多的属性分类和属性枚举导致查询难以分解,然后提出了解决方案

  解决方案:

    一、穷举。由于条件之间的组合有很多种,所以穷举法不适合

    二、因为属性可以分解为键值对,属性与属性值的组合,那么可以利用hbase来解决,同时利用mapreduce分布计算,达到实时计算,提高效率。

然后,不同的数据库之间的查询肯定会遇到查询问题。

解决方案:

  利用缓存glider,隔离前后端以及异构“表”之间的数据整合的作用,缓存管理:是数据库在一定时间内是只读的

使用缓存面临的问题是数据的一致性、

缓存穿透

缓存穿透是指查询一个一定不存在的数据

方案:可以利用布隆过滤器,但是阿里采用缓存失效方案,异常数据的缓存时间较小。

缓存失效时的雪崩反应

概念:大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。

方案:加锁或排队保证缓存的单线程

数据魔方中采用的是缓存过期机制理论,可以在一定程度上避免雪崩效应

原文地址:https://www.cnblogs.com/0710whh/p/10666598.html