提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容

记得自己在没有进入互联网行业之前,对于互联网行业并不怎么感冒,总觉得互联网行业的技术含量不高,没什么意思,值得进入互联网行业了,才明白,原来互联网行业的技术是这么的复杂,这么的困难,而构建一个拥有巨大用户量的系统无疑也会给自己带来更多的成就感,记得自己刚进入互联网行业的时候,才发现构建一个高并发、高性能、承受高压力、高度可伸缩以及高可用性的系统要掌握的知识体系是在太多了,而且这些知识体系根本就不是在学校或是google、网络中能够学习到的,于是当时就想,如果能有一本书全面的介绍构建这”五高“特性的系统需要掌握的知识体系,那将是多么的美好呀,毕竟很多的知识体系都是靠经验积累出来的,甚至可是说,是痛苦的教训等得出来的,但当然,要在一本书中完全讲清楚所有的知识体系,自然是不靠谱的,但我想我会尽量在书中表达出自己的一些观点、看法以及少少的经验吧,希望能够让更多的同学即使没有大型系统的实际经验,也能掌握到一些大型系统所需的知识体系,那么我心甚慰了,由于本书需要写的东西非常的多,预计在9月底完成写作,估计要到明年春节后上市,:),以下先揭秘下本书的大概内容,也请大家多多提出意见,目录的信息我在随后的blog中再行贴出,同时在以后的blog中也会不定期的放出一些写好的草稿以及做进度的预告。
  
   本书围绕着构建大型分布式
Java应用系统的知识体系来进行编写的,包括会出现哪些方面的难点和挑战,对于这些难点和挑战有什么办法来解决,需要掌握些什么知识体系(例如第一章中的分布式Java应用的通讯技术、远程调用技术也都是大型分布式Java应用所必须掌握的知识体系)

1、  众多子系统构成

当系统由众多子系统构成时,想想100多个子系统构成的应用系统,如何管理好这些子系统就很重要了,例如子系统之间是如何调用的、每个子系统对外提供了哪些功能、子系统之间的依赖关系是怎么样的、当发生调用时调用路径是怎么样的、这些子系统在运行期的状况如何(例如有多少访问量)等等。

要管理好这些子系统,首先第一个需要解决的问题是标准化子系统之间交互的方式,这一方面要求标准化每个子系统对外提供功能的方式,另一方面要求标准化每个子系统调用其他子系统提供的功能的方式,只有在这些标准化了以后才有可能管理好这些子系统,SOA无疑是非常匹配的一种架构级的选择,除了软件角度外,如何运维、管理好这么众多的子系统也是难点。

对于众多子系统构成的应用而言,如何管理并不是全部,还有其他很多相伴而来的问题也是需要解决的,例如跨子系统的调用时,如何保证整个调用过程的事务、雪崩效应等。

标准化是管理好众多子系统的根本,并且它要求的是架构级的全局支持,因此在本书中首先讲解这个形容词定语的解决方案以及所需的知识体系,也就是本章节的重点。

2、  承受高压力

大型企业应用或互联网应用,都有众多的使用者,众多的使用者也就意味着系统需要并发的被众多的用户访问,而这通常很容易暴露出系统中很多并发场景中罕见的现象,因此在编写此类应用时需要非常仔细的考虑系统对于高并发的支持,同时,由于每台机器上的应用能够支撑的用户量必然是有限(例如某网站的服务器,单台支撑500WPV已经是业界佳话了),如何支撑巨大的用户访问量就成为了关键,而这里面如何在尽量不改变现有程序的基础上来支撑不断增长的用户访问量就是更为重要的关键了。

要承受高压力首先要求系统具备高性能,只有系统是高性能的,才有可能支撑足够的压力,其次是系统需要具备高度可伸缩的能力(包括垂直伸缩和水平伸缩),要让系统具备这两点,对于系统的软件结构以及硬件体系都有很高的要求,在本书的第七章和第八章中将来重点讲解从软件结构角度如何保障系统具备高度可伸缩的能力。

除了上述的点之外,要让系统能够更好的承受高压力,其实还需要由合理的评估,以事先对系统的结构进行改造或进行硬件上的扩充等,这属于非常专业的容量规划的领域,就不在这本书中进行讲述了,如感兴趣的话可以参阅相关的容量规划的书籍。

3、  具备高性能

无论是大型企业应用还是互联网应用,都要求在短时间内响应用户的请求,如电话计费系统、淘宝网,怎么样才能让系统具备高性能呢,这在大型分布式系统中就更为的复杂了,因为在大型分布式系统中通常一个请求需要经过好几个子系统才能完成。

要编写高性能的应用,这就要求应用设计人员能够充分掌握实现需求的可选的技术方案,并对技术方案中的所有细节都非常的精通,例如jdk的实现、操作系统的实现以及底层的原理,除了软件方面的深刻理解外,对于硬件也是要求有深刻的理解的,但本书只涵盖软件方面的内容,因此对于硬件相关的原理就不进行描述了,只有在充分掌握这些原理的情况下才能根据系统的需求以及性能要求选择最为合适的技术,除了编写高性能的程序外,另外需要具备衡量系统性能的指标以及方法,只有这样才能知道系统的性能到底如何,瓶颈在什么地方,最后还需要具备系统调优的能力,而这通常需要从硬件角度、软件环境角度(例如操作系统、jvm等)以及程序角度来进行调优,以使系统能够到达所要求的性能,在本书的第三、四、五以及六章中将来重点讲述编写高性能的Java应用所需掌握的知识体系。。

4、  具备高可用性

大型企业应用和互联网应用,都要求系统7 * 24小时不间断的稳定运行,如何才能保证系统在各种各样的访问情况下都不宕机,这对于系统的实现人员来说是个巨大的挑战。

   要让系统在各种情况下不宕机,首先要求的是软件本身具备很好的稳定性,要编写稳定性高的程序要求对所采用的技术具备非常深刻的理解,这点和编写高性能程序是一样的,从这点也是互联网公司都强调核心的技术都需要自己编写的原因之一。

   除了软件本身需要具备很好的稳定性外,也还需要采用其他很多的防范来保障系统的可用性,例如常用的方法为集群(即多台提供同样功能的服务器,这样即使其中的几台出问题也仍然可以服务)、容灾,还有更为复杂的方法像异地容灾、异地分流以及多数据中心的建设等等,这些方法并不是直接按照理论就可以实现的,对于软件本身的结构也提出了很高的要求,在本书的第九章中将来详细讲述如何构建高可用性的java应用。


posted on 2009-03-06 09:15 BlueDavy 阅读(6334) 评论(20)  编辑  收藏 所属分类: Java

评论

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容[未登录] 2009-03-06 09:26 EricFan

严重期待!  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-03-06 10:07 sxy

对我的工作很有借鉴意义,真希望现在就能看到  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-03-06 10:28 hyde

超级严重期待!  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容[未登录] 2009-03-06 12:48 Titan

期待尽快看到!  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-03-06 13:32 lbom

从楼主介绍来看,本书是一篇非常有价值且大而全的东东。但是,具体问题还是需要要具进行体分析的,你的书是不是能够满足架构师的需要,并对他们提供有效且可行的解决方案,哪就要让事实来说话了!
总之,值得期待,但不报太大希望!  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-03-06 16:15 BlueDavy

@lbom
非常同意lbom的话,不过本书的目的不是为架构师提供成熟的解决方案,只是讲解在构建这类系统上会涉及到的知识体系,只是想通过这本书能够让没有大型系统环境的开发人员、技术人员们能够对这些知识体系有所了解,我还不敢对架构师们提出指导,没那么强...  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-03-06 17:46 杨一

期待,出版时一定要提醒大家一下  回复  更多评论   

# wdmcln 2009-03-12 23:52 wdmcln

这本书的标题很震奋人心啊!对于大型分布式的应用知识范围确实很广,一直没有一本全方位的介绍,都是零星点点的介绍!对于具体应用场景还得具体分析,就拿简单的来说: 生产机和开发机的环境,在本质上是相同的东西,但应用具体环境不同,生产机出现的问题经常会是稀奇古怪的问题,期待哟.............................  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-03-13 17:52 qingxiaohua

顶,期待中~~~  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-03-17 16:35 动物园的猪

大侠出手,一定不同凡响,Java的服务器编程很少有人讨论,这下子终于可以有个参考的书目了,使劲顶你。  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容[未登录] 2009-05-09 22:07 steeven

等你出来方案就过时了吧? just joking  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-05-15 11:41 geoconst

期待,大家都有类似的困惑,你是先行者了!  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-07-30 13:15 于堡舰

朋友这本书还在写么,别停啊 一定要出来啊   回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-07-30 13:37 BlueDavy

@于堡舰
呵呵,当然在写的,会如期上市的,多谢关注。
  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-09-09 10:32 xiaoleigood

BlueDavy 能透露一下 目前此书的进展么 很期待的说 ~~~~~~~  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-09-09 13:13 BlueDavy

总共九章的内容,目前完成了四章,正在进行第五章的编写,:),由于这本书涵盖的面很广,所以写作的进度上稍微有所延迟了,大概需要在11月底完成初稿,不过应该还是会在明年三月左右上市。  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-10-07 03:48 lxa

淘宝和阿里出来的好书越多越好 很实在,阿Q一句,IT世界是迟早中国的  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2009-10-10 10:21 wzjin

不要泛泛而谈,需要真的可以指导工作才行。  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2010-01-28 15:33 Jose

什么时候出版啊?不会跳票了吧?  回复  更多评论   

# re: 提前N久的揭秘:《构建高性能的大型分布式Java应用》书的大概内容 2010-01-28 23:20 BlueDavy

@Jose
呵呵,不会跳票,也许会稍有推迟,:)  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜