《淘宝技术这十年》读书笔记

SilentDev
• 阅读 4496

看了目录就把这本书买下来了,由于每天加班,只有早晨8点到10点两个小时的时间,算是每天阅读一点点吧~
买这本书,主要想了解淘宝的技术/业务发展过程,遇到了哪些问题,怎么解决的。在阅读的过程中有很多不懂的地方,纯属拓展视野,的确如书中所说,不同阶段的读者会有不一样的收货,我也会不止一次的读下去的。

2014年9月23日(第1、2章)--起步
好的架构不是设计出来的,而是进化出来的。
淘宝网第一版:LAMP,MySql拆分主从库,读写分离(据说写更加消耗资源,分开后互不干扰)↓
MySql换为Oracle,容量大、稳定、安全、性能高,连接池(SQLReplay连接池代理服务),php开始换为Java↓
NAS作存储设备 → EMC的SAN存储↓
Oracle RAC实现负载均衡 → 使用小型机。

2014年9月24日(第3、4章半)--围绕性能、容量和成本的进化
数据库必须换Oracle,php→Java的过程 ↓(04年)
MVC框架-WebX,控制层-EJB,持久层-ibatis,搜索引擎iSearch(把数据库中的数据dump成结构化的文本文件后,放在硬盘上,提供Web应用以约定的参数和语法来查询这些数据)↓
Oracle扩展-分库分表 → 数据库路由框架 DBRoute(统一处理了数据的合并、排序、分页等操作,让程序员像使用一个数据库一样操作多个数据库里的数据)↓
一步一步把IOE(IBM小型机、Oracle、EMC存储)去掉,Spring替换EJB(05-06年)↓
CDN-从ChinaChahe到搭建自己的CDN网络(LVS的创始人章文嵩博士)↓

创造技术
TFS淘宝文件系统(07年)

2014年9月25日 (第4章下)--淘宝KV缓存系统——Tair
新技术Ajax、prototype框架的尝试,改变用户个人信息管理后台操作页面--受挫(06年)
新业务“招财进宝”(类似竞价排名)--受挫,但对技术的探索更加深入,其中用到了用户行为追踪,Ajax等。
经典技术细节——详情页商品被浏览数必须实时更新,而缓存是异步更新(所以没把这个数据放入缓存),导致数据库字段频繁更新,多隆大神的解决办法:在Apache上写了一个模块,将这个数字直接写入一个集中式的缓存区(根本不经过下层的WebApp容器),这个缓存区的数据再异步更新到数据库。
淘宝的缓存技术:
ESI(EdgeSideIncludes)数据缓冲/缓存服务器 04年
TBstore--多隆,基于BerkeleyDB的缓存系统,TBstore的分布式算法实现:根据保存的Key,对key进行Hash算法,取得Hash值,再对Hash值与总Cache服务器数据取模,然后根据取模后的值,找到服务器列表中下标为此值的Cache服务器。由JavaClientAPI封装实现,应用无需关心。由于TBstore是基于BerkeleDB的,而它在数据量超过内存时,就会往磁盘上写数据(可以做持久化存储),但是这样会导致缓存的性能大幅下降。
TDBM--多隆,专门为UIC(UserInformationCenter,为了系统扩展,07年淘宝用户信息独立为UIC)写的缓存系统,抛弃BerkeleyDB的持久功能,数据全部放在内存中;09年,多隆,参考memcached的内存结构,改进了TDBM的集群分布方式,在内存利用率和吞吐量方面又做了大幅提升,推出TDBM2.0。
TDBM+TBstore——Tair(TaoBao Pair,Pair即KV数据对)。
同时,搜索引擎iSearch也进行了一次升级,从每份数据单独存储到多份存储,整个系统从一个单行的部署变成了矩阵,能够支撑更大的访问量,并且做到很高的可用性。


前三天意外借到了另一本书,导致现在才继续~
2014年9月28日(第5、6章)
下午没啥活干,于是完全沉浸在淘宝的技术长河中,服务化、中间件、高性能服务框架HSF、消息中间件Notify、分布式数据访问层TDDL、Session框架、开放平台,虽然这些我现在接触不到,更无力企及,但我作为读者与初学者,从中感受着技术的魅力与现实生活中技术带给我们生活的遍历,也乐在其中啊。技术的探索与进步支持着业务的发展,业务的需求又刺激着技术的改革,每个组件、架构都是淘宝人的辛勤与智慧。
第六章讲了作者在淘宝的工作历程,我虽然刚刚参加工作,却也从中深有体会,之前自己因为工作上的原因非常浮躁,整个人周围都是不稳定分子,别人随意的一句话都可能引爆这浮躁的小心脏~~现在安稳了许多,作为新人,还是要脚踏实地的努力。

2014年9月29日(完结)
终于读完啦,不知道什么破习惯,每读完一本书都有唏嘘感叹的感觉,这本也这样,匆匆十年,在我参加工作之前的十多年前,淘宝如此如此,这般这般,变成了与我们日常生活息息相关的一部分,当然在这背后是所有人的努力,读书之前,我一点都不了解,现在,我算是了解了一点,算是管中窥豹吧哈哈。每天都觉得好忙,如果不是昨天那么好的机会,还不知道要看到什么时候~ 书中将的技术基本都不懂啦,但我仍非常享受这个过程,感受淘宝技术的发展、业务的创新、作者的经历、还有淘宝各位牛P的访谈,最后更有扫地僧多隆大神压阵,读到感动之处,更是从心底佩服。大家一路走来,每一步都凝聚着各位前辈的智慧与汗水。
继续努力,坚持到底。

点赞
收藏
评论区
推荐文章
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
Karen110 Karen110
3年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
3年前
AssemblyScript 入门指南[每日前端夜话0xEB]
每日前端夜话0xEB每日前端夜话,陪你聊前端。每天晚上18:00准时推送。正文共:2459 字预计阅读时间:10分钟作者:DannyGuo翻译:疯狂的技术宅来源:logrocket!(https://oscimg.oschina.net/oscnet/b880277c594152a503
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
Node.js 12中的ES模块[每日前端夜话0x9E]
每日前端夜话0x9E每日前端夜话,陪你聊前端。每天晚上18:00准时推送。正文共:2552字预计阅读时间:10 分钟作者:BrianDeSousa翻译:疯狂的技术宅来源:logrocket!(https://oscimg.oschina.net/oscnet/2ccaf94cecd3
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
3年前
Designing Data
!(https://oscimg.oschina.net/oscnet/4f7ecc1326e9f8a27f8653d4bf53888c201.jpg)_下面是这本书序言中的大部分内容__,本人的英文水平有限,有理解不到位的地方还请大家指教,这算是自己对这本书的读书笔记和总结。_数据是当今系统设计中许多挑战的中心,一些难以解决的问
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
SilentDev
SilentDev
Lv1
因为给不了你要的所以放开了手让你远走。
文章
5
粉丝
0
获赞
0