阿里巴巴是怎么做的
- 商品基本信息
- 名称,价格,出厂日期等
- 关系型数据库:mysql/oracle目前淘宝在去O化(也即拿掉Oracle),
- 注意,淘宝内部用的Mysql是里面的大牛自己改造过的
- 为什么去IOE
其本意是,在阿里巴巴的IT架构中,去掉<u>IBM的小型机</u>、<u>Oracle数据库</u>、<u>EMC存储设备</u>,代之以自己在开源软件基础上开发的系统
- 商品描述
- 多文字信息描述类,IO读写性能变差
- 文档数据库MongDB中
- 商品图片
- 商品图片展现类
- 分布式的文件系统中
- 淘宝自己的<u>TFS</u>
- Google的<u>GFS</u>
- Hadoop的<u>HDFS</u>
- <u>TFS</u>(Team Foundation Server)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。
- <u>GFS</u>是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。
- <u>Hadoop</u>分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的
- 商品关键字
- 搜索引擎,淘宝内用
- ISearch
ISearch
- 应用介绍
iSearch一款基于android平台具有多重搜索功能的软件,它目前支持的中文引擎有:谷歌中国、百度、雅虎易搜、新浪爱问、微软必应、京东商城、淘宝网、卓越亚马逊、维基百科、中关村在线、17173、爱卡汽车等。- 应用特点
- 允许用户同时搜索国内外数百个站点(搜索引擎、音乐站点、BBS、新闻组等、mp3)。
- 自动剔除重复的搜索结果。
- 自动校验搜索结果的有效性。
- 加密保护存储的结果文件。
- 支持自由编辑模式。
- 允许注册用户搜索无限多结果。
- 允许自由编辑搜索模板,设定使用的引擎。
- 提供无限引擎包升级。
- 允许6种线路类型,满足不同用户的需求。
- 允许搜索局域网的共享资源。
- 允许操纵目标对象对非注册用户则限制返回的搜索结果数量,每次搜索最多返回不超过100条结果。
- 商品波段性的热点高频信息
- 内存数据库
- tair、Redis、Memcache
- 商品的交易、价格计算、积分计算
- 外部系统,外部第3方支付接口
- 支付宝
大型互联网应用的解决方案
难点
- 数据类型多样性
- 数据源多样性和变化重构
- 数据源改造而数据服务平台不需要大面积重构
解决办法
- 给学生画图介绍EAI和统一数据平台服务层
阿里、淘宝干了什么?UDSL
UDSL(Ultrahigh bit-rate Digital Subscriber Loop,超高速数字用户环路)也是DSL技术的一种,与ADSL、VDSL类似。但它可在一条电话线路使上行和下行的总速率达到200Mbps。很显然它的主要优势就是传输速率高。
这一技术目前主要的开发商就是TI(德州仪器),TI公司开发的UDSL设备可支持现行的ADSL、VDSL,用户既可以单独选择UDSL技术,也可以与ADSL、VDSL等技术混合使用。因为UDSL技术兼容了ADSL和VDSL的标准,所以提供了介于二者之间的解决方案。比如,在传输距离超出1km时,UDSL的传输速率可以与ADSL相媲美,在短距离通信时,其传输速率又可达到或超出VDSL技术的水平。但目前这一技术只处于开发阶段,并没有进行实质应用,要实现真正的高速传输,目前证实最长传输距离只有几十米。
- 映射
- API
- 热点缓存
- ......
NoSQL数据模型简介
例:
1. 如一个电商客户,订单,订购,地址等信息
- sql的设计
1. 1:1
2. 1:N
3. N:N
- NoSql的设计
什么是BSON
* BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象例如模型
{
"customer": {
"id": 1136,
"name": "Z3",
"billingAddress": [{
"city": "beijing"
}],
"orders": [{
"id": 17,
"customerId": 1136,
"orderItems": [{
"productId": 27,
"price": 77.5,
"productName": "thinking in java"
}],
"shippingAddress": [{
"city": "beijing"
}],
"orderPayment": [{
"ccinfo": "111333",
"txnid": "asdfadcd334",
"billingAddress": {
"city": "beijing"
}
}]
}]
}
}
两者对比
- 为什么上述的情况可以用聚合模型来处理
- 高并发的操作是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询
- 分布式事务是支持不了太多的并发的
聚合模型
KV键值
bson
-
列族
-
顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。
-
-
图形