跳转至

阿里巴巴是怎么做的

  1. 商品基本信息
  2. 名称,价格,出厂日期等
  3. 关系型数据库:mysql/oracle目前淘宝在去O化(也即拿掉Oracle),
  • 注意,淘宝内部用的Mysql是里面的大牛自己改造过的
  • 为什么去IOE 其本意是,在阿里巴巴的IT架构中,去掉IBM的小型机Oracle数据库EMC存储设备,代之以自己在开源软件基础上开发的系统
  1. 商品描述
  2. 多文字信息描述类,IO读写性能变差
  3. 文档数据库MongDB中

  4. 商品图片

  5. 商品图片展现类
  6. 分布式的文件系统中
    1. 淘宝自己的TFS
    2. Google的GFS
    3. Hadoop的HDFS
  • TFS(Team Foundation Server)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。
  • GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。
  • Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的
  1. 商品关键字
  2. 搜索引擎,淘宝内用
  3. ISearch

ISearch

  • 应用介绍   iSearch一款基于android平台具有多重搜索功能的软件,它目前支持的中文引擎有:谷歌中国、百度、雅虎易搜、新浪爱问、微软必应、京东商城、淘宝网、卓越亚马逊、维基百科、中关村在线、17173、爱卡汽车等。  
  • 应用特点  
  • 允许用户同时搜索国内外数百个站点(搜索引擎、音乐站点、BBS、新闻组等、mp3)。  
  • 自动剔除重复的搜索结果。  
  • 自动校验搜索结果的有效性。  
  • 加密保护存储的结果文件。  
  • 支持自由编辑模式。  
  • 允许注册用户搜索无限多结果。  
  • 允许自由编辑搜索模板,设定使用的引擎。  
  • 提供无限引擎包升级。  
  • 允许6种线路类型,满足不同用户的需求。  
  • 允许搜索局域网的共享资源。  
  • 允许操纵目标对象对非注册用户则限制返回的搜索结果数量,每次搜索最多返回不超过100条结果。
  1. 商品波段性的热点高频信息
  2. 内存数据库
  3. tair、Redis、Memcache

  4. 商品的交易、价格计算、积分计算

  5. 外部系统,外部第3方支付接口
  6. 支付宝

大型互联网应用的解决方案

难点

  • 数据类型多样性
  • 数据源多样性和变化重构
  • 数据源改造而数据服务平台不需要大面积重构

解决办法

  • 给学生画图介绍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技术的水平。但目前这一技术只处于开发阶段,并没有进行实质应用,要实现真正的高速传输,目前证实最长传输距离只有几十米。

  1. 映射
  2. API
  3. 热点缓存
  4. ......

# NoSQL数据模型简介

例:

1. 如一个电商客户,订单,订购,地址等信息

  • **sql**的设计
    1. 1:1
    2. 1:N
    3. N:N
    

  • **NoSql**的设计

  • 什么是BSON

       * BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象
    
    1. 例如模型

      { "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" } }] }] } }

      两者对比

      1. 为什么上述的情况可以用聚合模型来处理
      2. 高并发的操作是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询
      3. 分布式事务是支持不了太多的并发的

聚合模型

  1. KV键值

  2. bson

  3. 列族

  4. 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

  5. 图形