说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅

HTML文档下载 WORD文档下载 PDF文档下载
一叶知秋,回顾我的Java之路,最感谢还是阿里巴巴能够给我们这些技术人员创造出这样有挑战的业务场景和业务需要,也感谢有这样一群人能够为了这个目标一起努力到现在。

Java的不解之缘

看到这个专题名字的第一眼,真是感慨万千:Java已经有20年历史了啊,我竟然也用了这语言8年了,真是转眼一瞬。

王晶昱(花名:沈询)

回想起8年前的我,应该是正在大学宿舍里努力地从网上搜索C语言的各种教程,在“值传递和指针传递的区别是什么?”“如何避免引用计数循环引用?”等问题中东突西撞不得要领吧。然后在某天,我偶然间看到了一门据称比C++简单的Java语言,恰巧还碰上一个好老师——莫倩老师,自然而然地激发起我去了解和学习Java的兴趣。现在还记得当时在学习《ThinkinJava》时,我还不是特别理解BruceEckel介绍Java与C++的差别时提到的一句话:“Java是一种生产力语言”。当时我看着这句话,心里一直在想:语言嘛,应该大同小异,能有什么生产力提升?一个解释型语言怎么可能超越编译语言呢?

转眼,我使用Java已有8个年头了,现在想想,Java真的带给了我很多:它尽可能地避免我写出错误的代码。它不需要我去计算指针偏移量,也不需要我去关心垃圾回收问题,连Collection类都有DougLea这样的大神做好了封装。这些语言内建机制和类库极大地减轻了我的头脑负担,让我能够更加专注地完成业务逻辑。而最让我惊喜的是,Java一直不懈地追求JVM虚拟机的持续优化,各种眼花缭乱的锁优化、动态字节码编译调优、GC新算法等JVM优化层出不穷。

在最近的几年,我也可喜地看到,在Oracle的带领下,Java语言的演进变得非常迅速。当我还在熟悉Java7的forkJoin框架的时候,支持Lambda的Java8已正式发布了。

现在,我也想从我个人角度,给Java点个赞。确实,对我而言,这是一门生产力语言,而Java也成功地帮助阿里巴巴、淘宝走过了高速发展时期,并造就了我们阿里的一支明星团队:阿里巴巴-共享业务-中间件和稳定性平台。

说起这个团队,其实它在内部的名字一般称为Java中间件。你看把Java放在了团队的名字里,这就是真爱啊!从2007年开始,我们就逐渐发现,外部企业级中间件并不是非常适合我们互联网业务的实际发展需要。面对着每年翻番的用户量和用户请求,我们不得不开始进行分布式应用体系的探索。当时可真是没什么能够参照的,全都得靠自己去探索,经过了三年多不断摸索,我们彻底地将系统进行了服务化、分布式改造。


目前,整个阿里集团几乎所有的应用都在使用这些中间件。我想,这也是阿里技术体系的精华所在吧。

最近这几年,阿里的核心技术体系架构已经非常稳定可靠了。我们又在这些核心中间件的基础上,不断地深入细化运维体系,尽可能地做到自动化、智能化,为集团节省了比较多的设备成本和运维成本。在2015年,Java中间件更是响应了阿里集团上云的梦想,将阿里集团七年的技术积累,一股脑地搬到了云上,目前所提供的主要产品有:企业分布式应用服务(EDAS)、分布式关系数据库(DRDS)、分布式消息服务(ONS)。它们都是使用Java编写的,为大家量身定做的分布式中间件,与互联网应用体系相结合,能够非常轻松地实现企业IT架构的随需定制和可线性扩缩。如果大家有需求,可以按照自己的需要来进行选择。

Java一起成长

能够取得这样的成绩,Java功不可没。除了我上面提到语言特性对我们的帮助之外,在团队之中,我们也非常关注整个Java的生态体系。基本上,无论我们有什么新的想法,都可以立刻在Java的开源世界中找到对应的一些实现,里面有很多还非常靠谱,Netty、Tomcat、Ibatis、Hibernate、Spring、Struts、ZooKeeper、Hadoop、Mahout、Cassandra……我能举出无数的开源软件,它们都对我们的平台积累起到了非常大的作用。

同样的,我们也在积极尝试将自己系统的积累反馈回到社区里,大家可以在github.com/alibaba下面找到很多我们开源出来的软件,在这里面我想特别的提几个:RocketMQ(消息队列)、Druid(连接池)、FastJson(JSON解析引擎)、Dubbo(RPC框架)等等。这些开源软件与其他友商的各种开源、闭源的Java软件一起丰富了Java生态体系,也让我们解决问题变得更加轻松。

对我个人而言,Java的生态体系之所以能够这样丰富,主要原因在于它编写一次、多点运行的特性,以及一直坚持着的向下兼容能力。这些都非常有利于Java生态体系的积累和演进,也造就了现在如此丰富的Java开源软件环境和体系。

提到Java的向下兼容能力,我也想稍微聊一下我的看法。我经常能看到很多人谈到,Java的历史包袱太重了,为了兼容这些历史遗留的包袱,Java的演进已经非常困难,这会导致Java语言的崩溃。针对这个问题,我个人的看法是:首先,Java作为一个被这么广泛的使用的语言,有着这么深厚的系统积累,完全不考虑系统的兼容性而演进整个系统,这其实是比较危险的,对其他革新进行兼容并包可能才是它最好的发展方向。就目前而言,我几乎没看到过哪个语言能够比较好地解决这种语言升级所导致的软件断层问题,所以,更多的只是两害取其轻的过程吧。同时,我也非常高兴地看到,依托于JVM,我们有了大量的新的语言实现,这里面有Groovy,Scala,JPython等等。它们都非常优秀,这些新生的语言与Java一起,进一步丰富了整个Java的生态体系,也更加坚定了我对Java生态体系的信心,它一定还能再战十年!

寄语现在,展望未来

一叶知秋,回顾我的Java之路,最感谢还是阿里巴巴能够给我们这些技术人员创造出这样有挑战的业务场景和业务需要,也感谢有这样一群人能够为了这个目标一起努力到现在。

能够跟这些大牛们一起工作,耳濡目染,不断提高,是我的工作生涯中最为宝贵的一笔财富。而如果能够回到过去,我最想告诉8年以前的自己:“要买房!”

笑~~

其实是:“还是要特别注重基础,操作系统、网络、算法数据结构、离散数学、数据库原理与实践,这些看起来枯燥而无味的基础科学,是我目前感到知识最为匮乏,但却最为急需的部分,要了解它们是必须付出非常多的时间才有可能理解通透些。而这些基础的扎实程度,就直接决定了你的高度”。可惜,我没办法在21天内学会C++,这些建议,也就只能提供给还有机会实践的各位做参考了。

作者简介:王晶昱花名沈询,阿里高级专家,来自阿里巴巴中间件和稳定性平台。目前主要负责阿里的分布式数据库DRDS(TDDL)和阿里的分布式消息服务ONS(RocketMQ/Notify)两个系统。


本文选自程序员电子版2015年5月B刊,该期更多文章请查看这里。2000年创刊至今所有文章目录请查看程序员封面秀。欢迎订阅程序员电子版(含iPad版、Android版、PDF版)。

VB用DAO打开Excel文件 VB用DATA控件绑定报表控件打印报表 VB用EXCEL来打印报表并生成折线图 VB用EXCEL组件简化VB编程的一种方法 VB用MDB文件做密码库 VB用ODBC API访问ODBC数据库 用VB 实现类电子表格的数据录入 用VB5直接控制Excel 97 用VBA编制Access的查询程序 用VB和RDO访问SQL Server 用VB开发多通道仪表数据采集程序 用VB实现关闭所有数据库对象 用VB实现类电子表格的数据录入 VB用代码创建数据库,表,字段 VB用类来编写数据库程序 优化OLE的调用频率-VB资料 语言选择引起的查询错误 -VB资料 远程数据库的访问-VB资料 运用ADO进行数据库表数据互导 -VB资料 在 VB5.0中编辑数据库和电子表格 在Access 2000中用ADO-VB资料 在Access数据库中实现密码管理的另一种方式 -VB资料 在VB6.0中使ACCESS数据库在网络使用中保持同步 在VB中更改SQL Server数据库结构 在VB中兼容非ACCESS数据库的技巧 在VB中引用dbf及索引文件 在VB中运行Microsoft Access报表的好方法 在VB中直接用ODBC API访问数据库 在数据库应用中, 经常要动态生成 Select 语句,典型的情况:-VB资料 在运行时修改DataEnvironment的连接字符串-VB资料 在抓取資料庫之資料前先計算資料總筆數 -VB资料 求救,菜单问题!!! 哪位大侠能告诉我怎么用vc修改浏览器代理,非常感谢 vs.net调试的时候出错信息不全,怎样能显示更详细的错误细节? 继续那个PING不通的问题。 请教我的一个程序的窗口最大化没有把显示屏幕铺满,请问怎么处理? global.asa里面的问题 有谁知道winxp将浏览网页时的临时文件放在哪一个目录下了???? 请教sql server2000的问题,thanks!thanks! qq探密!!! 统计一下:有多少位程序员在用VB系的开发工具 关于ACCESS的两个问题,热心大虾请进! 数据恢复问题,答对即给分(在线) 做过进销存系统的高手们,请谈谈经验 asp 与 dreamweaver有联系吗? 请教如何设置WIN2000的时间服务? 怎么样判别时间字段为空 ? 如何实现类适于IE浏览器的图片旋转功能 如何在FileListBox中弹出系统对该文件的右键菜单 如何更改MFC程序生成文件的默认图标? 我是ASP初学者,请大家帮忙? 英语真的那么重要吗? 一个JS的简单问题,但是我还是给100分 怎么透明显示一张bmp图片(急,在线等待) 急,两个问题,帮帮忙(其中一个关于ActiveSkin) 查询出的报表内字段值为空的单元格,显示不出单元格框线,为什么? Java论坛 急!在LINUX下,配置内核时Intel corporation|82801AB AC'的声卡应该先哪项,我用的是2.4.16的内核。 世界杯——蓝色的忧郁 使用异步socket通信,服务器端在OnReceive消息函数中能否获得客户端IP地址? 菜鸟学JAVA送分 怎样用delphi实现EDI? 两到汇编题。麻烦大家帮我做一下。。我实在做不出来 今天去面世了~~~结果他们………… 举报 哪里有.net源程序下载?? : 两到汇编题。麻烦大家帮我做一下。。我实在做不出来 莱鸟问题:如何字符变量str的值赋给EDIT控件, : 两到汇编题。麻烦大家帮我做一下。。我实在做不出来 哪里有2001年的中程的试卷? 第一次来CSDN,以后希望大家多多帮助!! 在VB中获取和修改计算机名字 用什么软件能把扫描仪扫的文章变位文本文档?? 终止线程出错! VB中远程数据库的访问 如何实现使textbox中只能输入带两位小数的内容?即保证其中内容为*.XX(*代表任意数字串),凡不合要求的输入都被过滤? 如何在IIS的DefaultWEB Site的属性的HTTP Header中加入新的File type?? 怎样读jpeg的头文件,用C语言,谢了 为什么我远程连接sql server总不成功呢?我已经把1433端口开了啊 西游记 如何判断一个大整数是素数,如何找出整数的模逆 家里忽然出现些小虫子 尾巴长得跟螃蟹钳子似的 黑嘿的看到的都打死了 这是什么东西啊 怎么清除预防控制啊 有只猫掉到水里,老鼠救了它,猫对老鼠说了什么? 这就是非洲英文怎么写英文歌 世界杯 那女的唱的 那是桔色的桔子怎样翻译 小明爬山,上山每小时3千米,下山沿原路返回每小时5千米,小明往返共用了4小时.小明上山路程是多少? SHE HAS TO WASH CLOTHES EVERY WEEK(改为一般疑问句) 动物有性格吗?比如生活在非洲大草原上的狮子,有内向的狮子吗? 鼠科动物包括哪些动物像袋鼠、松鼠、老鼠、荷兰猪、仓鼠等等等神马的…… They need a lot of things this week. 什么昆虫背上也长脚 桃花源翻译 We need a lot of things>(否定句)We_ _ _things 哪种虫子背上长脚 桃花源的翻译 I do a lot of things last week,哪里错了 合唱队有八十人,的人数比合唱队少十六分之十三.乐队比合唱队的五分之三多两人花束队的人数比乐队多二分之一求乐队花束队舞蹈队的人数 英语翻译开头是:三十六洞别有天,渊明记. 40克糖放入400克水中溶解后,浓度为( ).有选择:A 10% B1/11 C 11% D约9.09% 学习合唱队有60人,舞蹈队比合唱队少1/5,乐队人数比舞蹈队的3/4多4人.乐队有多少人? 桃花源记得翻译 小明去爬山,上山时每小时行3千米,原路返回时每小时行5千米.求小明往返的平均速度. 学校合唱队有44人,舞蹈队人数是器乐队的2倍,合唱队人数比舞蹈队多18人.舞蹈队有多少人?.器乐队有多少人? 要给一边长为a米的正方形桌子铺上正方形的桌布,桌布的四周均超出桌面0.1米,问需要多大面积的桌布? She did housework three times a week last year three划线,用一般疑问句,_he_times did she do上面写不下了,后面是housework,还有一句是Dogs can guard our homes 后3个单词划线,也是一般疑问句,_can dogs 桔子是什么生长的啊?求大神帮助 观察与实验:把家里的梨子放入冰箱冷冻两天.1.拿出后观察到...与之有关的物理知识是...2.放在空气中两分钟观察到...与之有关的物理知识是...3.把这个冻梨放入水中(梨子浸没在水中),15分 请结合语境,选择恰当的词语填在下面横线上请结合语境,选择恰当的词语填在下面横线上(填序号)吃水的时候,感激挖井的人,——,我们更加珍惜甜美的泉水;收获的时候,感激播种的人,—— 地球上一共有几种狮子?如题 放在冰箱冷藏室两天的螃蟹能吃吗?我在微波炉里转过了,只吃蟹脚没事吧?我说有可能有毒可我爷爷不听啊, 如何检验鸡蛋能否孵出小鸡大型养殖场怎么样检验鸡蛋能否孵出小鸡? 英语中狮子有几种表达法?有何区别? 哪些事物适合放在冰箱冷藏室?哪些又适合放在冷冻室? 怎么识别鸡蛋能不能孵出小鸡 狮子的种类有几种? 将几个放在冰箱冷冻室内冻透了的梨取出后放在一大盆0摄氏度的冷水中,问有什么现象?请说得准确一点,这是一道物理题。还有就是梨与水之间内能的转移 袁中道的美在哪里 背上长脚的昆虫科学类,要对! 翻译 桃源盖此比也欤 请结合文中内容谈谈袁中道的《再游桃花源》美在哪里? 老鼠是什么动物 “害虫是人类的天敌”这句话对不对 登舟皆踞坐 的意思 桃可千余书,夹道如锦幄 的意思 结合文中的内容谈谈袁中道的《再游桃花源》美在哪里 《 形容某人很鲶鱼或者说你真的是个鲶鱼是什么意思呢? 什么动物吃老鼠 如图 ,长方形桌面长4m 宽2m,一块长方形台布的面积是桌面面积的3倍.问长和宽各是多少? 家里有一种虫子张的很象蝎子~肚子平的可是没有钳子尾巴是一根很细的须~而且很臭怎么消灭啊 某水果商用150元批发了150千克的橘子,定价2.5元,其中60%的橘子一定价出售,25%的橘打六折出售,剩下的橘子烂了.这个水果商做这笔买卖是赚了还是亏了?赚或亏多少 写两句关于友谊的诗句 鲶鱼是什么样子的 (1)某水果商用150元批发了150千克桔子,其中百分之60的桔子以每千克2.5元的价格出售,百分之25的桔子打六折出售,剩下的烂了.这个水果商做这笔买卖是赚了,还是亏了,赚亏或了多少钱?(2)某商店 描写友谊的诗歌 家里发现一种虫子 很小很小 大概只有2至3毫米 有两个像蝎子一样的钳子,但是后边却没有尾巴 某水果商用150元批发了150千克的橘子,定价2.5元,其中60%的橘子以定价出售,25%的橘子打6折出售,剩下的橘子烂了,这个水果商做这笔买卖是赚了,还是亏了?盈利率或亏损率是多少? 为什么天敌少,害虫多?如题.为什么呢?尽量详细一点 请问“鲇鱼”是什么意思啊? 要给一边长为a米的正方形桌子铺上正方形桌布,桌布的四周均超出桌面0.1m,问需要多大面积的桌布,如a=1.2m,桌布面积是多少平方米 Mrs Tomson needs lot of meat this week 改错 这是什么虫子,尾巴的钳子会攻击 小明家的餐桌面是圆形的,妈妈要给餐桌配一块正方形桌布,量得桌面的直径是1.5米,桌子高1.2米,要使正方形桌布的四个角刚好接触地面,正方形桌布的对角线应是多少米 此接上因为不够写 1 This is Mary.This is ___ ___ 2 She needs to get plenty of rest.She __ __ get __ __ of rest.3 Who's calling,please?Who's __,please?4 What's wrong with her?What's __ __ with her?5 Miss Green is busy now.Miss Green __ __now.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘