1.10 阿里巴巴中文站架构发展历程
##### 1.10.1 第五代网站架构
-
第四代网站架构解决了
- 性能和海量数据问题
- 大规模的Memcached集群,高性能应用服务器升级,KV,CDN,一定程度解决了网站的性能问题
- 数据切分和分布式存储解决了网站海量数据的问题。
- 安全问题
- 镜像站解决了网站的灾备问题
- 网站框架的安全特性升级透明的过滤了常见的网站安全漏洞,但到了2010年底,却不得开始实施第五代网站架构改迨
- 性能和海量数据问题
-
第五代网站架构的使命
-
方案落地:
##### 1.10.2 数据层面 -
面临挑战:多数据源多数据类型的存储问题
-
页面数据分析拓展:
----一个简单地网页背后的技术一定不是大家所想的那么简单!
1、商品的基本信息
名称、价格、出厂日期、商家信息:
关系型数据库就可以解决了!MySQL/Orac1e(拓展:淘宝早年就去I0E了!~王坚:推荐文章:阿里云的这群疯子:40分钟重要!)
淘宝内需的MySQL不是大家用的MySQL,mysql组件化集成,可以热拔插
为何去IOE:2008年,王坚加盟阿里巴巴成为集团首席架构师,即如今的首席技术官。这位前微软亚洲研究院常务副院长被马云定位为:将帮助阿里巴巴集团创建世界级的技术团队,并负责集团技术架构以及基础技术平台搭建。
在加入阿里后,带着技术基因和学者风范的王坚就在阿里巴巴集团提出了被称为“去IOE”(在IT建设过程当中,去除IBM小型机、Oracle数据库及EMC存储设备)的想法,并开始把云计算的本质,植入阿里IT基因。
王坚这样归纳“去IOE”运动和阿里云之间的关系:“去IOE”完全改变了阿里集团IT架构的基础,是阿里拥抱云计算,产出计算服务的基础。“去IOE”的本质是分布化,让随处能够买到的Commodity PC架构成为可能,使云计算可以落地的首要条件。
2、商品的描述、详情、评价信息(多文字类)
多文字信息描述类,IO读写性能变差
文档型数据库中,MongoDB
3、商品的图片
商品图片展现类
分布式文件系统FastDFS
-淘宝自己的 TFS
-Gooa1e GFS
-Hadoop HDFS
-阿里云的 OSS
-七牛云
4、商品的关键字(搜索)
-搜索引擎solr elasticsearch
-淘宝ISerach(多隆)
5、商品的波段性的热点高频信息
-内存数据库
- Redis 、Tair、Memcache...
6、商品的交易、价格计算、积分累计,外部的支付接口
-外部系统,调三方应用
-支付宝
总结:大型互联网应用(大数据、高并发、多样数据类型)的难点和解决方案
-
难点
- 数据类型多样性
- 数据源多样性和变化重构
- 数据源改造而数据服务平台不须要大面积重构
-
解决办法
- EAI和统一数据平台服务
- 阿里、淘宝:UDSL
-
UDSL解决方案:
(门面模式+策略模式)
-
NoSQL数据模型简介:以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库,传统的关系型数据库如何设计?
- ER图(1:1/1:N/N:N,主外键等常见)
- ER图(1:1/1:N/N:N,主外键等常见)
-
NoSQL如何设计:什么是BSON:BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON同样,支持内嵌的文档对象和数组对象
-
BSON数据模型面
{
"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":"111-222-333","txnid":"asdfadcd334","billingAddress":{"city":"beijing"}}],
}
]
}
}
-
二者对比,问题和难点
- 为何上述的状况能够用聚合模型来处理
- 高并发的操做是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询
- 分布式事务是支持不了太多的并发的
- 启发:想想关系模型数据库如何查?若是按照新设计的BSon,是否是查询起来很方便
- 为何上述的状况能够用聚合模型来处理
-
性能优化
##### 1.10.3 业务层面 -
问题1:
-
解决方案:
- 问题二:
- 解决方案:
1.10.4 展现层面
-
问题:
-
解决方案:
-
用户体验优化:
-
- 前端优化:前端资源的版本控制,资源合并,如独角兽设计
- 前端优化:前端资源的版本控制,资源合并,如独角兽设计
-
小结:
-
以上都是NoSQL入门概述,不仅能够提高大家的知识,还可以帮助大家了解大厂的工作内容!