Internet
关于互联网应用的高可用性、可扩展性、高性能方面的一些实践和探索。
摘要: 网络访问时,通常要做超时控制,要实现的好其实还是有些挑战的,欢迎大家围观code show,并提供你的改进代码,:):http://bluedavy.com/?p=39
阅读全文
摘要: 摘自我那本6月份要上市的,但目前名字还没完全确定的书,由于书中涵盖的更多的为构建高性能分布式Java应用所需要的基础知识,也许改成了《通往高性能分布式Java应用之路》,主要是阐述下为什么大型应用需要SOA,以及eBay的例子,blog全文请见:http://bluedavy.com/?p=30
阅读全文
摘要: blog已转移至bluedavy.com,感兴趣的同学可以移步至此:http://bluedavy.com/?p=27
阅读全文
摘要: 3月30日Twitter在其engineering blog上写了一篇Unicorn Power的blog:http://engineering.twitter.com/2010/03/unicorn-power.html,写的挺经典的,按我的理解来讲下这篇blog吧,如有错误,请帮忙纠正,:),blog已迁移至bluedavy.com,感兴趣的同学可以访问这个地址来查看全文:http://bluedavy.com/?p=25
阅读全文
摘要: 由于blog开始转移到bluedavy.com,感兴趣的同学可到此围观:http://bluedavy.com/?p=23,本篇blog从看一个超市发展的过程中,收银碰到的问题以及解决方案来阐述互联网的技术。
阅读全文
摘要: 由阿里云龙浩同学牵头的杭州程序员圆桌交流,第一期主题为并发编程,把自己的经验也分享下,在活动结束后会公开此次交流的资料,具体PPT请见文中。
阅读全文
摘要: 在QCon SF 2009的SOA分会场上,eBay的架构师讲了一个SOA @ eBay的PPT,正好和我的工作有很多的交叉点,于是比较认真的看了下这个PPT,感兴趣的同学可以从这里下载:http://qconsf.com/sf2009/file?path=/qcon-sanfran-2009/slides/SastryMalladi_SOAEBayHowIsItAHit.pdf,在这个PPT中可以看到eBay对于SOA的看法以及他们目前的做法,自己也是做这方面工作的,就在这篇blog中介绍下这个PPT以及自己对于SOA的一些看法。
阅读全文
摘要: 本篇blog将讲述coroutine的一些背景知识,以及在Java中如何使用Coroutine,包括一个简单的benchmark对比,希望能借助这篇blog让大家了解到更多在java中使用coroutine的方法,本篇blog的PDF版本可从此下载:http://www.bluedavy.com/open/UseCoroutineInJava.pdf
阅读全文
摘要: 在HPTS大会上,Randy Shoup放出的eBay的PPT有所改变,在原有的5个Architectural Lessons上又增加了5个lesson,从这也可以一定程度的看出当访问量、数据量、功能不断上涨后,碰到的技术问题也将继续发展,想必这也是eBay增加5个lessons的原因,eBay在技术方面的发展对很多互联网公司都有一些参考意义,毕竟它已经经历过了国内很多网站目前的阶段甚至是几年后的阶段,在本篇blog中就完整的来看看eBay的这10个lessons、eBay的应对策略以及我个人的一些推测。
阅读全文
摘要: 架构师接龙是《程序员》杂志最近推出的一个活动,活动方式为:每期一个提问嘉宾,一个回答嘉宾,并由回答嘉宾提出新的问题给下期的架构师,形成接龙,之前第一期是支付宝的冯大辉提问,腾讯的研发总监王速瑜回答,我参与的是第二期,这期会登在《程序员》0909期上,内容转帖如下,原帖为程序员官方上的:http://www.programmer.com.cn/727/,呵呵,都只是个人的片面理解做出的回答,也欢迎大家在此帖中继续讨论,:)
阅读全文
摘要: 这篇文章中总结了一些构建可伸缩性系统的最佳实践,总结的不错,于是翻译了下,原文在此:http://akfpartners.com/techblog/2009/08/11/scalability-best-practices/,翻译内容如下。
阅读全文
摘要: 几年以来,eBay在几个不同的大会上先后分享过几次关于eBay技术的PPT,在这篇blog中,就以这些PPT来以旁观者的角度分析下eBay的技术发展历程,不论eBay现在的业绩如何,不可否认,他们的技术还是挺强的,因此还是值得学习,eBay的整个技术发展历程从一定程度上来说可以认为是互联网公司的典型技术发展历程,基本上各家互联网公司都在走着类似的路线,只是各家选择的语言不同、具体的实现方案不同、细节不同,当然,思路是一方面,实现又是另外一方面,只有两者结合才能实现一个高可用、高性能和高并发的有海量数据的系统。
阅读全文
摘要: 在这篇blog中放置了我收集的一些网站架构相关的PPT和文章,提供给大家下载,如果大家有相关的好的PPT、文章的话,也欢迎推荐给我,非常感谢,:),这篇blog的内容也会随着我收集的东西增加而变化,同时也会增加我对于这些PPT、文章的看法和评价。
阅读全文
摘要: 此次QCon北京大会为期三天,总体而言,精彩纷呈,尤其是第二天,完全将大会的精彩推至了高潮,让大家觉得值回票价,总结而言,这次大会是相当成功的,一次成功的大会不能缺少的有两个要素:知名的嘉宾和精彩的Topic,无疑QCon北京大会很好的把握了这两个要素。
知名的嘉宾,此次大会出现的嘉宾绝对足够重量级,看看Title就吓人了:Spring老大、ThoughtWorks首席科学家、Dojo creator、eBay搜索核心架构师、Amazon云计算战略师、淘宝首席架构师、支付宝首席架构师、豆瓣技术总监、优酷首席架构师、网易有道技术总监等等。
精彩的Topic,不是说嘉宾知名Topic就一定精彩的,不能不说,这次大会还是有些爆冷门的,嘉宾不是很知名,但演讲的Topic确实还不错,而且也不是说知名的嘉宾就一定能给出精彩的Topic,就像Martin Fowler这次的Topic,实在称不上精彩,总体而言,这次大会并不缺少精彩的Topic,来分享下我的收获。
阅读全文
摘要: 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,:),文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果。
阅读全文
摘要: 不是专职做压力测试这行当的,只能是以自己的经验来以外行人的眼光来说说压力测试,压力测试并不仅仅是个压力测试的过程,而是一个相当系统的工程,我认为压力测试是为了让系统达到所期望的运行效果以及承受所期望的压力,这也就要求压力测试应该帮助性能调优团队,为其提供一定程度的指导,在这里我不将压力测试和性能调优分的那么清楚了,在我看来,压力测试过程包括了:明确压力测试的目标、构建压力测试案例、进行压力测试、分析压力测试结果、寻找瓶颈并进行调优以达到目标,在这篇blog中来细看下这几个过程以及常用的方法。
阅读全文
摘要: 这篇文章的第二部分在昨天也发布出来了,于是抓紧时间把它给翻译了。在这篇文章的第一部分中,作者结合自己的经验对如何构建具备良好的垂直扩展能力的Java EE应用做了讲解,在这第二部分的文章中,作者则对如何构建具备良好水平扩展能力的Java EE应用来进行了详细的讲述,常见的session复制问题,水平扩展中经常需要涉及的分布式文件系统、分布式缓存、分布式并行计算,全文读下来,作者基本指出了构建可扩展的Java EE应用需要了解的知识体系(如需深入的话还有必要进一步的学习,例如集群技术、通讯协议、线程、并发等)和平时实践中的一些注意事项,应该说是篇十分难得的好文章,值得推荐。
阅读全文
摘要: 这是一篇从TheServerSide上翻译过来的文章,很自豪这篇这么好的文章是一个中国人(从作者名字上猜想应该是中国人吧,:))写的,原文地址为:http://www.theserverside.com/tt/articles/article.tss?l=ScalingYourJavaEEApplications,可以说,这篇文章写的是非常的不错的,这是文章的第一部分,探讨了如何构建可垂直扩展的Java EE应用,文中谈论到的让所编写的Java EE应用具备垂直扩展能力的几个关键要素,例如热锁问题、尽可能的缩短同步块、不要在static方法上加锁、多使用Atomic包、jvm内存不能设置的太大等,文中除了列了这几个关键要素外,还详细的解释了为什么不能做以及如何避免出现这样的现象,可以很明显的看出作者在这些方面是具备了非常丰富的经验的,因此这篇文章不仅仅讲述了可扩展性理论方面的知识,同时也很好的从实战角度进行了分析,之后我也会结合这篇文章来说说自己曾经碰到的垂直扩展场景的反例,同时也很期待这篇文章的第二部分,第二部分将探讨如何构建可水平扩展的Java EE应用,翻译的不好的地方还请大家多
阅读全文
摘要: 之前写了个简单的jsp做压力测试,没想到出现的一个问题是当压力比较大的情况,运行比较久的话会出现一个现象,就是jvm的内存几乎被耗尽,用 jprofiler查看会发现是有一个ConcurrentHashMap对象的内存一直在增长,而且没有释放的迹象,随后进入Debug模式,跟踪查找都有谁new了ConcurrentHashMap,因为测试场景中是个非常简单的jsp页面,发现只有jsp的Request session会创建这个ConcurrentHashMap,很久没写jsp了,猜测是request session的默认超时时间太长,所以导致高压力下(200并发,总共连续访问50万次,jvm内存1G)会出现内存一直没有回收的问题,后来打印了一下request session的默认超时(AS是jboss 4.2.2),是半小时,如果这样的话确实是会有造成上面内存一直被占用的现象。
阅读全文
摘要: 性能调优无疑是个庞大的话题,也是很多项目中非常重要的一环,性能调优的难做是众所周知的,毕竟性能调优涵盖的面实在是太多了,在这篇blog中我们蜻蜓点水般的来看看性能调优这项庞大的工程都有些什么过程,同时也看看这些过程中常见的一些做法。
阅读全文