第二个灵魂 发表于 2015-1-18 11:29:30

JAVA网页编程之淘宝手艺开展(Java时期:坚若盘石)仓酷云

比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。已有读者在刻不容缓的问怎样往失落了IOE,别急,在往失落IOE之前另有很长的路要走。行癫他们买返来小型机以后,我们用上了Oracle,七公带着一帮DBA在优化SQL和存储,行癫带着几个架构师在研讨数据库的扩大性。Oracle自己是一个关闭的体系,用Oracle怎样做扩大?用如今一个时兴的说法就是做“分库分表”。
我们晓得一台Oracle的处置才能是有下限的,它的毗连池无数量限定,查询速率跟容量成正比。复杂的说,在数据量上亿、查询量上亿的时分,就到它的极限了。要冲破这类极限,最复杂的体例就是多用几个Oracle数据库。但一个关闭的体系做扩大,不像散布式体系那样轻松。我们把用户的信息依照ID来放到两个数据库内里(DB1/DB2),把商品的信息随着卖家放在两个对应的数据库内里,把商品类目等通用信息放在第三个库内里(DBcommon)。这么做的目标除增添了数据库的容量以外,另有一个就是做容灾,万逐一个数据库挂了,全部网站上另有一半的数据能操纵。
数据库这么分了以后,使用程序有贫苦了,假如我是一个买家,买的商品有DB1的也有DB2的,要检察“我已买到的宝物”的时分,使用程序怎样办?必需到两个数据库内里分离查询出来对应的商品。要定时间排序怎样办?两个库内里“我已买到的宝物”全体查出来在使用程序内里做兼并。另有分页怎样处置?关头字查询怎样处置?这些工具交给程序员来做的话会很悲催,因而行癫在淘宝的第一个架构上的作品就来办理了这个成绩,他写了一个数据库路由的框架DBRoute,这个框架在淘宝的Oracle时期一向在利用。厥后跟着营业的开展,这类分库的第二个目标——容灾的效果就没有到达。像评价、赞扬、告发、保藏、我的淘宝等良多中央,都必需同时毗连DB1和DB2,哪一个库挂了城市招致全部网站挂失落。
上一篇说过,接纳EJB实际上是和Sun的工程师让步的了局,在他们走了以后,EJB也渐渐被热闹了上去。在05、06年的时分,spring年夜放异彩,恰好使用spring的反射(IoC)形式替换了EJB的工场形式,给全部体系精简了良多代码。
上一篇还说过,为了削减数据库的压力,进步搜刮的效力,我们引进了搜刮引擎。跟着数据量的持续增加,到了2005年,商品数有1663万,PV有8931万,注册会员有1390万,这给数据和存储带来的压力仍然山年夜,数据量年夜,功能就慢。亲,另有甚么举措能提拔体系的功能?必定另有招数能够用,这就是缓存和CDN(内容分发收集)。
你能够设想,九万万的会见量,有几是在商品概况页面?会见这个页面的时分,数据全都是只读的(全体从数据库内里读出来,不写进数据库),假如把这些读操纵从数据库内里移到内存里,数据库将会何等的感激不尽。在谁人时分我们的架构师多隆年夜神,找到了一个基于BerkeleyDB的开源的缓存体系,把良多不太变化的只读信息放了出来。实在最后这个缓存体系还对照弱,我们并没有把全部商品概况都放在内里,一入手下手把卖家的信息放内里,然后把商品属性放内里,商品概况这个字段太年夜,放出来受不了。说到商品概况,这个字段对照可怕,有人统计过,淘宝商品概况打印出来均匀有5米长,在体系内里实在放在那里都不招人待见。笔者分明的记得,我来淘宝以后担当项目司理做的第一个项目就是把商品概况从商品内外面给移出来。这个字段太年夜了,查询商品信息的时分良多都不必要检察概况,它跟商品的代价、运费这些放在一个内外面,拖慢了全部表的查询速率。在05年的时分,我把商品概况放在数据库的别的一张内外面,再今后这个年夜字段被从数据库内里请了出来,这也让数据库再一次感激不尽。
到如今为止,全部商品概况的页面都在缓存内里了,眼尖的读者大概会发明如今的商品概况不满是“只读”的信息了,这个页面上有个信息叫“扫瞄量”,这个数字每革新一次页面就要“写进”数据库一次,这类高频度及时更新的数据能用缓存吗?假如不必缓存,一天几十亿的写进,数据库会怎样?必定会挂失落。那怎样办?亲……先不回覆你(下图不是告白,让你看看扫瞄量这个数据在那里)

<br>
CDN这个事情绝对对照自力,跟其余体系一样,一入手下手我们也是接纳的商用体系。厥后跟着流量的增添,商用的体系已撑不住了,LVS的开创人章文嵩博士带人搭建了淘宝本人的CDN收集。在本文的弁言中我说过淘宝的CDN体系支持了800Gbps以上的流量,作为对照我们能够看一下国际专业做CDN的上市公司ChinaCache的先容——“ChinaCache……是中国第一的专业CDN服务供应商,向客户供应全方位收集内容疾速散布办理计划。作为首家获信产部允许的CDN服务供应商,今朝ChinaCache在天下50多个年夜中乡村具有近300个节点,全网处置才能凌驾500Gbps,其CDN收集掩盖中国电信、中国网通、中国挪动、中国联通、中国铁通和中国教导科研网等各年夜运营商。”——如许你能够看得出淘宝在CDN下面的气力,这在全球都是首屈一指的。别的由于CDN必要大批的服务器,要损耗良多动力(损耗几?在前两年我们算过一笔帐,淘宝上发生一个买卖,损耗的电足以煮熟4个鸡蛋)。这两年章文嵩的团队又在研讨低功耗的服务器,在绿色盘算范畴也做了良多创始性的事情。淘宝CDN的开展必要专门一个章节来说,想先睹为快的能够看一下笔者对章文嵩的专访:http://qing.weibo.com/1866752224/6f4460e033000jme.html
回忆起刚用缓存那段工夫,笔者仍是个小菜鸟,有一个典范的毛病经常犯,就是数据库的内容更新的时分,健忘关照缓存体系,了局在测试的时分就发明我悔改的数据怎样在页面上没变更呢。厥后做了一些页面上的代码,修正CSS和JS的时分,用户当地缓存的信息没有更新,页面上也会乱失落,在论坛上被人说的时分,我告知他用ctrl+F5革新页面,然后赶忙修正剧本文件的称号,从头公布页面。学会用ctrl+F5的会员对我信服的心悦诚服,我却内疚的厚颜无耻。
有些手艺的开展是天真烂漫的,有些倒是突如其来的。到2007年的时分,我们已有几百台使用服务器了,这下面的java使用服务器是weblogic,而weblogic长短常贵的,比这些服务器自己都贵。有一段工夫多隆研讨了一下jboss,说我们换失落weblogic吧,因而又省下了很多银两。那一年,老马举行了第一届的“网侠年夜会”,会下去的年夜侠中有一名是上文提到的章文嵩,另有一名已经在jboss团队事情,我们也把这位年夜侠留下了,如许我们用起jboss加倍有底气了。
这些杂七杂八的修正,我们对数据分库、保持EJB、引进Spring、到场缓存、到场CDN、接纳开源的Jboss,看起来没有章法可循,实在都是环绕着进步容量、进步功能、勤俭本钱来做的,因为这些不算年夜的版本变迁,我们临时叫它2.1版吧,这个版本从构图下去看有3只脚,是否是不乱了良多?
架构图以下:

<br>
下集预报:制造手艺散布式文件体系TFS、散布式kv缓存tair、搜刮引擎晋级

java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.

冷月葬花魂 发表于 2015-1-21 07:49:44

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

柔情似水 发表于 2015-1-23 21:55:45

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

精灵巫婆 发表于 2015-1-31 20:06:56

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

谁可相欹 发表于 2015-2-2 22:31:14

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

老尸 发表于 2015-2-16 23:58:14

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

莫相离 发表于 2015-2-26 23:20:37

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

金色的骷髅 发表于 2015-3-8 18:27:21

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

简单生活 发表于 2015-3-9 00:23:19

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

admin 发表于 2015-3-16 19:03:12

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

因胸联盟 发表于 2015-3-22 23:40:49

是一种为 Internet发展的计算机语言

透明 发表于 2015-6-27 04:53:58

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

再现理想 发表于 2015-6-27 06:40:51

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。

仓酷云 发表于 2015-7-18 08:18:39

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

飘灵儿 发表于 2015-12-7 01:51:54

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

第二个灵魂 发表于 2015-12-13 05:19:37

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

海妖 发表于 2015-12-16 00:03:10

是一种使用者不需花费很多时间学习的语言

再见西城 发表于 2015-12-16 14:20:58

是一种为 Internet发展的计算机语言

若相依 发表于 2016-3-13 23:15:14

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

山那边是海 发表于 2016-4-12 22:07:26

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
页: [1]
查看完整版本: JAVA网页编程之淘宝手艺开展(Java时期:坚若盘石)仓酷云