JAVA网页设计曾宪杰谈Java在淘宝的使用仓酷云
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。在7月10日举办的淘宝手艺嘉光阴之淘宝手艺专场上,来自淘宝产物手艺部两头件团队的曾宪杰(混名华黎)为人人先容了近几年Java在淘宝的使用情形DD《Java@Taobao》。演讲之初,曾宪杰先分四个阶段先容了淘宝的建构变迁:
[*]2003年5月至2004年5月,小而快的复杂架构,基于LAMP,切合事先的需求。
[*]2004年2月至2008年3月,一个懵懂的阶段,入手下手分为多个条理。这个阶段必要一个可以支持百万到万万用户级的架构,必需简单扩大;体系从WebLogic迁徙至了JBoss;开辟了大批软件,比方TFS、iSearch、TDBM和CDN。
[*]2007年10月至2009年11月,入手下手有前瞻性,走向产物化及服务化。可以撑持年夜型团队的并行开辟,体系慢慢模组化、中央化,可疾速扩容,可用性年夜年夜提拔,基本软件也入手下手走产物化路途。非中心的数据由Oracle迁徙到了MySQL上,构建起了动静体系和服务框架,淘宝开放平台(TOP)正式上线。
[*]2009年8月至今的淘宝则更体系化、智能化及专业化,这是开展的一定偏向。常识履历渐渐融进工具当中,下降了门坎,削减误操纵概率;操纵从野生处置慢慢转为体系自立决议;在不乱性和功能方面有长足开展(在2010年之前eBay的不乱性要好过淘宝)。
曾宪杰指出所谓年夜型网站就是要同时满意高会见量和弄数据量的请求,中心是经由过程散布式体系办理数据的处置、存储及会见成绩。随后,他依据淘宝网站的布局表示图,分离先容了个中触及到的Java基本手艺产物。
起首是在阿里团体内被普遍利用的Turbine作风的MVC框架DDWebX,其中心代码由阿里巴巴18开创人之一的周悦虹(宝宝)编写,具有很好的条理化、模块化特性,高度可扩大,WebX还对Velocity模板做了编译优化,在一样平常情形下能有20%至50%的功能提拔。
其次是两头件中的服务框架,卖力服务的公布、查询、挪用和管理。该服务框架利用上复杂通明,撑持软负载(没有两头层,服务利用方间接毗连到服务供应方,利用服务注册查找中央举行办理),天真可控,便利扩大,为包管不乱性供应了无力撑持。
接上去是完成体系松耦合的动静两头件Notify,这是一个高功能、高牢靠、可扩大组件,撑持终极分歧性和定阅者集群。所谓定阅者集群,行将定阅动静的客户端分为多个集群,集群之间接纳Topic体例,让每一个集群都能收到动静,集群当中再依照Queue的体例,仅由一个客户端来处置动静。
在数据层上,为了更好地撑持分库分表和读写分别,也做了必定的封装,对下层使用而言仍是在操纵JDBC,实践则是在利用淘宝散布式数据层(TDDL),它能完成SQL剖析、划定规矩路由、数据兼并;既能够用jar的体例在客户端间接毗连数据库,也能够让客户端经由过程DBProxy服务器会见数据库;还撑持非对称数据复制。假如将浩瀚数据源当作一个矩阵,横向是统一数据库的主库与从库,纵向是分歧的数据库,TDDL将数据源分为三个条理DDTAtomDataSource,封装单个数据源,将设置举行会合办理;TGroupDataSource,封装横向的多个数据源,撑持权重和节点的增减;TDataSouce,办理全部数据源矩阵。在详细的场景中,体系能够选择设置的粒度。
在散布式存储方面,淘宝基于HBase0.90.2做了一些扩大,次要是供应了一个运维页面,修改了Master节点恢复工夫太长和备用Master没法主动接受的成绩,并做了一些优化。林昊鄙人午的iDataForum上就HBase做了更具体的分享。停止两周前的利用情形:
[*]一淘具有100台服务器,已利用60T。
[*]数据魔方具有10台服务器,已利用500G。
[*]买卖日记具有12台服务器,已利用360G。
[*]UDC具有8台服务器,利用600G。
[*]别的另有浩瀚使用,比方汗青库搜刮等。
搜刮方面,基于Lucene和Solr开辟了终搜,可举行中央化的设置办理,简单接进,撑持多种Dump机制。淘宝还具有国际最年夜的Hadoop集群(云梯I体系),总容量凌驾1400台服务器,约30PB,使用率55.2%。次要做了JobTracker的异步化,NameNode优化,存储优化和小功课优化。为了提拔不乱性,除哈勃(利用Cassandra存储数据,由云梯处置数据)对全网服务器基本数据举行收罗剖析之外,淘宝另有CSP监控,它次要监控中心使用,帮忙举行容量计划,和服务的依附于升级。今朝CSP一共有15台服务器,15个库,对200多个体系举行监控,逐日收罗数据凌驾5000万行。淘宝云云年夜范围的体系的运维也是由体系完成,今朝在体系的部署、公布、监控方面已做了良多事情,在运维办理方面稍有完善。演讲最初,曾宪杰枚举了浩瀚各有特征的营业体系,剖析了它们的架构,申明了各基本手艺产物在这些体系中的使用。
假如您没有列入淘宝手艺嘉光阴,大概错过了心仪的主题,官方网站上已连续放出了演讲的幻灯片,能够会见日程布置页面举行下载
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。 是一种使用者不需花费很多时间学习的语言 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 是一种语言,用以产生「小应用程序(Applet(s)) 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 是一种语言,用以产生「小应用程序(Applet(s)) Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
页:
[1]