zoukankan      html  css  js  c++  java
  • 《淘宝技术这十年》重读笔记

    序:《淘宝技术这十年》这本书在加入阿里之前就读过了,那时是以一种“仰视”的心态去读这本书,对书中描述的技术十分着迷(虽然不是全懂,但是感觉好厉害的样子)。如今再回过头重读这本书,里面每一个技术要点,可能都是如今实际工作中会碰到的问题。于是我抱着重新梳理和整理的心态,再次阅读这部“名著”。

    第0章:光棍节的狂欢

    1.《你刚才在淘宝上买了一件东西》:打开域名=》查询DNS(负载均衡)=》找到入口IP=》打开首页(负载均衡LVS)=》多域名加载静态资源(CDN)=》查看卖家发布的商品(TFS存储)=》查询框模糊查询(搜索服务器器)=>宝贝快照(tair)=》日志传输(TimeTunnel)=>分布式数据存储(Haddoop)=》数据挖掘

    2.不同阶段的业务应用不同的技术,相互促进作用

    第1章:个人网站

    1.网站最开始的构架:LAMP(Linux+Apache+MySQL+PHP),开源、免费,购买现成系统(PHPAuction)改造

    2.买来系统以后,修改数据库类型,增加后台管理功能,把数据库拆分,读写分离,有了备份,更安全、高效

    第2章:个人网站的升级

    1.数据库从mysql到oracle:效率的关键——连接池。找了一个PHP的连接池代理服务器SQL Relay。但是和mysql一样,经常锁死。

    第3章:企业级JAVA网站

    1.脱胎换骨的升级——更换开发语言:一个模块一个模块渐进式的替换。新模块使用临时域名,灰度发布替换

    2.使用自己的MVC框架webx代替当时难用的struts1

    3.初代的构架:webx+EJB+ibatis,另外包括搜索引擎(iSearch)和数据库

    4.iSearch原理简单,但是难点在于高并发大数据量上,也是一门很深的技术

    5.业务带来的压力更多的出现在数据和储存上面,DB这块一级级升级(硬件、软件),最终到IOE

    6.从IOE(IBM+ORACLE+EMC)到去IOE,也是业务发展所推动的,因为新业务,需要新技术

    7.当ORACLE满足不了上亿的查询数据时,需要做分库分表,系统需要一个DBRoute的框架合并数据库操作

    8.用spring替换掉了EJB,精简了系统(软件层面的优化)

    9.为了减少数据库压力,引入缓存和CDN,把页面中各个部分(浏览量,页面详情,商品信息)分别放入不同的存储中(数据库,TFS,CDN,Tair)

    10.淘宝2.1版本:数据分库、放弃EJB、引入spring、加入缓存加入CDN等,提高了容量、性能、节约了成本

    第4章:创造技术

    1.在2.1版本,把商品管理和交易管理分割了,系统更合理,功能更人性化了,但是存储成本上升了

    2.TFS的缘由:商业系统已经不能满足和适合淘宝业务,自主研发的投入收益比已经超过买/租模式了。自主开发的技术能针对业务做更好的优化,性能方便会比商业软件更好

    3.TFS还需要配合其它很多技术使用,比如实时缩略图,多级缓存技术等,目前TFS已经开源

    4.缓存的利用:静态页面内容的缓存(ESI),后台数据的缓存(memcached)

    第5章:分布式电子商务操作系统

    1.框架选择上可扩展性很重要(webx)

    2.模块要能独立和复用

    3.商品属性从树状的,改为自然属性+类目属性,随着业务的扩大,系统越来越强大

    4.当业务和数据达到容量上限以后,就得拆分。模块做成服务化

    5.中间件系统:实时的HSF和异步消息通知的Notify

    6.管理一个系统就和管理一个超市一样,有许多类似的技术:集群、分工、负载均衡、根据QoS分配资源

    7.通过心跳感应来保证分布式服务器的稳定

    8.在使用HSF之前,系统间调用方式五花八门,有JAR包打包,Hessian接口,webService,socket,http请求等。这些方式单一场景下还好,但是淘宝这么多业务就不适合了,要统一

    9.因为异步和多系统之间的消息通知的需求,产生了notify

    10.TDDL的三个主要特性:数据访问路由、多想非对称复制(一次写入、多点读取)、数据存储的自由扩展。另外TDDL经过4个年头,也是一步步形成现在的样子的,好的技术果然都是磨出来的

    11.TBsession,解决分布式session统一和访问的问题

    12.淘宝3.0,应用切分,服务切分,数据库切分,采用分布式的技术走向了更稳定的成更低更有效的系统

    13.开放平台:新业务推动新技术,出于给中小企业提供帮助的目的,做的开放平台的开发中,产生了Hadoop等技术的应用。开始技术与业务的互相推动。技术要实现价值必须结合业务的发展。

    第6章:我在淘宝这八年

    总结:机会有时候靠运气,努力要靠自己,失败肯定有的,机会也在下一个路口

    第7章:牛P列传

  • 相关阅读:
    试题 E: 迷宫
    对拍程序
    人群中钻出个光头
    HDU-魔咒词典(字符串hash)
    第八集 你明明自己也生病了,却还是要陪着我
    智力问答 50倒计时
    数据结构
    LeetCode刷题 fIRST MISSING POSITIVE
    LeetCode Best to buy and sell stock
    LeetCode Rotatelmage
  • 原文地址:https://www.cnblogs.com/xujanus/p/5458798.html
Copyright © 2011-2022 走看看